
Ответ на вопрос, что такое прокси, умещается в одну фразу: это промежуточный сервер, который принимает запросы вашего устройства, сам отправляет их сайту и возвращает вам ответ. Сайт при этом видит адрес прокси, а не ваш. Через прокси работают корпоративные сети, кэширующие шлюзы, балансировщики нагрузки и инструменты отладки.
Что такое прокси-сервер простыми словами
Английское слово proxy означает «доверенное лицо», «представитель». Отсюда и смысл термина: прокси-сервер действует от вашего имени. Вы не обращаетесь к сайту напрямую, а просите посредника сходить за страницей. Посредник делает запрос, получает ответ и отдаёт его вам. Для сайта собеседником выглядит именно посредник.
Бытовая аналогия — секретарь в офисе. Входящие звонки не идут сразу руководителю: секретарь принимает их, решает, кого соединить, а кому отказать, и записывает, кто звонил. Прокси-сервер делает то же самое с сетевыми запросами: пропускает или блокирует, кэширует, ведёт журнал, подставляет свой адрес.
Слово «прокси» встречается и вне сетей. Выражение «прокси-война» — термин из политологии: конфликт, в котором стороны воюют руками посредников. К компьютерным сетям он отношения не имеет, дальше речь только о серверах.
Как работает прокси
Когда в браузере или системе указан прокси, клиент открывает соединение не с сайтом, а с прокси по его адресу и порту. Дальше всё зависит от протокола.
Обычный HTTP. Клиент отправляет прокси запрос с полным адресом страницы, а не только путь:
GET http://example.com/page HTTP/1.1
Host: example.com
Прокси сам соединяется с example.com, забирает ответ и пересылает клиенту. Содержимое такого запроса прокси видит целиком и может его изменить, закэшировать или заблокировать.
HTTPS через метод CONNECT. Зашифрованный трафик прокси прочитать не может, поэтому клиент просит его просто проложить туннель:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection established
После ответа 200 прокси перекладывает байты между клиентом и сайтом, а TLS-рукопожатие идёт напрямую между браузером и сервером. Прокси знает, к какому хосту и порту вы подключились, но не видит адресов страниц, форм и cookie. Метод CONNECT описан в RFC 9110 — основной спецификации HTTP.
Исключение — корпоративные шлюзы с расшифровкой TLS. Они подменяют сертификат сайта своим, а на рабочие компьютеры заранее ставят корневой сертификат организации, чтобы браузер не ругался. Посмотреть, кто выпустил сертификат открытой страницы, можно в свойствах замка в адресной строке: если издатель — ваша компания, а не публичный центр сертификации, трафик проверяется шлюзом.
Если прокси требует логин и пароль, на первый запрос он отвечает кодом 407 Proxy Authentication Required, а клиент повторяет запрос с заголовком Proxy-Authorization.
Прямой и обратный прокси
Прокси бывают двух принципиально разных ролей, и в статьях их часто путают.
Прямой (forward) прокси стоит на стороне пользователей. Его настраивают в браузере или системе, он ходит в интернет от имени многих клиентов. Типичный пример — корпоративный шлюз на Squid, через который сотрудники выходят в сеть.
Обратный (reverse) прокси стоит на стороне сайта. Пользователь о нём не знает: он обращается к домену, а запрос принимает nginx, HAProxy или CDN и уже потом передаёт его одному из серверов приложения. Обратный прокси завершает TLS, кэширует статику, распределяет нагрузку и прячет внутренние адреса. Подробно эта схема разобрана в статье об обратном прокси.
| Признак | Прямой прокси | Обратный прокси |
|---|---|---|
| Кого представляет | Клиентов | Сервер или группу серверов |
| Кто настраивает | Пользователь, администратор сети | Владелец сайта |
| Знает ли о нём клиент | Да, прокси указан в настройках | Нет, клиент видит только домен |
| Типичные задачи | Фильтрация, журнал, кэш, контроль доступа | TLS, балансировка, кэш, защита приложения |
| Примеры ПО | Squid, 3proxy, Privoxy | nginx, HAProxy, Traefik, CDN |
Виды прокси-серверов
HTTP- и HTTPS-прокси
Работают на уровне протокола HTTP. Обычные запросы пересылают сами, для HTTPS используют туннель CONNECT. Могут кэшировать ответы и фильтровать адреса. Термин «HTTPS-прокси» двусмысленный: иногда так называют прокси, умеющий CONNECT, а иногда прокси, к которому само подключение шифруется TLS. Во втором случае между вами и прокси тоже нет открытого текста.
SOCKS4 и SOCKS5
SOCKS не разбирает HTTP, а просто пересылает TCP-соединения, поэтому подходит для любых протоколов: почты, SSH, баз данных. SOCKS5 (RFC 1928) добавил аутентификацию, IPv6, передачу UDP и возможность отдать прокси разрешение доменного имени. Последнее важно: если имя резолвит клиент, DNS-запросы идут мимо прокси через провайдера.
Прозрачный прокси
Клиента не настраивают вовсе: шлюз сети перехватывает трафик на порт 80 и сам заворачивает его в прокси. Так делают провайдеры, публичные точки Wi-Fi с экраном авторизации, школьные и офисные сети. Пользователь узнаёт о таком прокси обычно по неожиданной странице блокировки или по заголовку Via в ответе.
Анонимный и «элитный»
Это не стандарт, а маркетинговая классификация по тому, какие заголовки прокси добавляет. «Прозрачный» в этом смысле передаёт ваш реальный IP в X-Forwarded-For, анонимный скрывает IP, но выдаёт себя заголовком Via, «элитный» не оставляет ни того, ни другого. Анонимность при этом условна: оператор прокси видит все ваши соединения.
Типичные порты прокси-сервера
| Порт | Что обычно там работает |
|---|---|
| 3128 | Squid и многие корпоративные HTTP-прокси — порт по умолчанию |
| 8080 | Альтернативный HTTP-порт, популярный у прокси и отладочных инструментов |
| 1080 | SOCKS — порт, закреплённый за протоколом в реестре IANA |
| 8118 | Privoxy — фильтрующий прокси, порт по умолчанию |
| 8888 | Отладочные прокси вроде Fiddler и Charles |
Номер порта ничего не гарантирует: администратор может повесить прокси на любой. Как выяснить реальный порт в конкретной системе, показано в материале о том, как узнать порт сервера.
Зачем нужен прокси-сервер
- Контроль доступа в организации. Один шлюз решает, какие сайты доступны сотрудникам, и ведёт журнал обращений.
- Кэширование. Прокси хранит копии часто запрашиваемых файлов — обновлений, дистрибутивов — и отдаёт их из локальной сети.
- Изоляция серверов. Серверы без прямого выхода в интернет получают обновления пакетов только через прокси с белым списком адресов.
- Проверка на вредоносный код. Шлюз прогоняет скачиваемые файлы через антивирус до того, как они попадут на компьютер.
- Отладка и разработка. Fiddler, Charles и mitmproxy показывают все запросы приложения, позволяют подменить ответ или замедлить сеть.
- Защита и масштабирование сайта. Это уже роль обратного прокси: принять трафик, разгрузить приложение, скрыть его адрес.
Прокси и VPN: в чём разница
Оба инструмента ставят посредника между вами и интернетом, но устроены по-разному.
| Характеристика | Прокси | VPN |
|---|---|---|
| Уровень работы | Приложение: HTTP или SOCKS | Сеть: весь IP-трафик устройства |
| Какой трафик идёт через посредника | Только программ, где прокси указан | Весь, если не настроено иначе |
| Шифрование канала до посредника | Обычно нет, если это не прокси с TLS | Да, это основа протокола |
| DNS-запросы | Зависит от клиента и типа прокси | Обычно идут через туннель |
| Настройка | Адрес и порт в настройках | Отдельный клиент и профиль |
| Типичное применение | Корпоративный шлюз, кэш, отладка | Удалённый доступ к сети компании, связь офисов |
Практический вывод: прокси сам по себе не шифрует ваш трафик. HTTPS-сайты защищены своим TLS, но обычный HTTP через прокси без шифрования идёт открытым текстом и виден оператору прокси.
Что означают настройки прокси
В Windows, Android, на телевизорах и в роутерах поля называются похоже:
- Адрес или имя хоста прокси-сервера — доменное имя или IP посредника, например
proxy.company.ruили10.0.0.5. - Порт прокси-сервера — номер порта, на котором он принимает соединения, например 3128.
- Исключения — адреса, к которым нужно ходить напрямую: локальная сеть, внутренние сайты.
- Адрес сценария — ссылка на PAC-файл, в котором JavaScript-функция решает, через какой прокси идти к каждому адресу. Так настраивают прокси централизованно в компаниях.
- Автоматическое определение параметров — поиск PAC-файла по протоколу WPAD в локальной сети.
В Android это пункт настроек Wi-Fi-сети: «Прокси» со значениями «Нет», «Вручную» и «Автоконфигурация прокси». Если вам не выдавали адрес прокси администратор или провайдер, правильное значение — «Нет». Лишний прокси в настройках — частая причина того, что интернет «есть, но сайты не открываются».
Как узнать, используется ли прокси
Windows
Графически: «Параметры» → «Сеть и Интернет» → «Прокси-сервер». Там видно, включены ли автоматическое определение, сценарий настройки и ручной прокси. Системные приложения и службы могут использовать отдельные настройки WinHTTP, их показывает команда:
netsh winhttp show proxy
Ответ «Прямой доступ (без прокси-сервера)» означает, что для WinHTTP прокси не задан. Пользовательские настройки браузеров хранятся в реестре, их удобно прочитать в PowerShell:
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
Select-Object ProxyEnable, ProxyServer, AutoConfigURL
ProxyEnable = 1 и заполненный ProxyServer означают ручной прокси, непустой AutoConfigURL — PAC-сценарий.
macOS
«Системные настройки» → «Сеть» → нужное подключение → «Подробнее» → «Прокси». В терминале сводку по всем типам прокси даёт команда:
scutil --proxy
Значения HTTPEnable : 1, HTTPSEnable : 1 или SOCKSEnable : 1 указывают на включённый прокси; ProxyAutoConfigEnable : 1 — на PAC-файл. Для конкретного интерфейса: networksetup -getwebproxy Wi-Fi и networksetup -getsecurewebproxy Wi-Fi.
Linux
Консольные программы берут прокси из переменных окружения:
env | grep -i proxy
Переменные http_proxy, https_proxy и no_proxy понимают curl, wget, apt и многие другие утилиты. В GNOME системный режим показывает gsettings get org.gnome.system.proxy mode: значение 'none' — прокси нет.
Браузер
Chrome, Edge и Яндекс Браузер используют системные настройки. У Firefox есть собственные: «Настройки» → «Основные» → «Параметры сети» → «Настроить». Если адрес, который видят сайты, отличается от ожидаемого, сравните его с внешним IP роутера: как это сделать, описано в статье о способах узнать IP-адрес.
Прокси глазами владельца сайта
Если перед приложением стоит обратный прокси или CDN, сервер приложения видит в качестве адреса клиента IP прокси. Реальный адрес посетителя передаётся в заголовках: исторически в X-Forwarded-For, в стандартизированном виде — в Forwarded (RFC 7239). Прокси, изменяющие запрос, дописывают заголовок Via.
Главная ловушка — доверять этим заголовкам от кого угодно. Клиент может сам прислать X-Forwarded-For: 1.2.3.4, и если приложение безусловно берёт первый адрес из списка, ограничения по IP и журналы становятся бесполезны. В nginx правильный подход — модуль ngx_http_realip_module, где явно перечислены доверенные прокси:
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
Разбор формата заголовка и типичных ошибок — в статье о заголовке X-Forwarded-For.
Вторая проблема на стороне сервера — открытый прокси. Если Squid или другой прокси случайно принимает соединения из интернета без авторизации, его быстро находят и используют для рассылки спама и атак, а жалобы приходят на ваш IP. В Squid доступ задаётся правилами http_access, и последним должно стоять http_access deny all. Порты 3128, 8080 и 1080 не должны быть доступны снаружи без необходимости — подробнее в материале об открытых портах сервера.
Типичные ошибки прокси
- ERR_PROXY_CONNECTION_FAILED в Chrome — браузер не смог подключиться к указанному прокси: неверный адрес или порт, прокси выключен. Если прокси вам не нужен, отключите его в настройках системы.
- ERR_TUNNEL_CONNECTION_FAILED — прокси отказался открыть туннель CONNECT к сайту: адрес запрещён политикой или прокси не может достучаться до сервера.
- 407 Proxy Authentication Required — нужны логин и пароль от прокси, а не от сайта.
- 502 или 504 от прокси — посредник не получил ответа от сайта. Смотрите, кто прислал страницу ошибки: у Squid она подписана его именем.
Как проверить
Узнать, с какого адреса ваши запросы приходят на сайты, поможет проверка IP: если показанный адрес не совпадает с адресом вашего провайдера, трафик идёт через посредника. Чтобы убедиться, что на вашем сервере не торчит наружу открытый прокси, проверьте порты 3128, 8080 и 1080 сканером портов. А проверка HTTP-заголовков покажет, стоит ли перед сайтом обратный прокси или CDN: об этом говорят заголовки Via, Server и служебные заголовки кэша.
Частые вопросы
Что такое порт прокси-сервера?
Это номер TCP-порта, на котором прокси принимает соединения. Вместе с адресом он указывается в настройках: например, proxy.company.ru:3128. Типичные значения — 3128, 8080 и 1080 для SOCKS.
Что такое имя хоста прокси-сервера?
Доменное имя или IP-адрес компьютера, на котором работает прокси. Его выдаёт администратор сети или провайдер; самостоятельно придумывать значение не нужно.
Нужно ли включать прокси на телефоне или телевизоре?
Обычно нет. В домашней сети прокси не требуется, а неверно указанный адрес ломает доступ к сайтам. Оставьте значение «Нет», если вам не выдали конкретные параметры.
Почему через прокси вырос пинг?
Каждый запрос делает лишний крюк: до прокси и от него до сайта. Если прокси далеко или перегружен, задержка растёт. Измерить задержку до самого прокси можно командой ping по его адресу.
Безопасны ли бесплатные прокси?
Оператор прокси видит, к каким сайтам вы подключаетесь, а незашифрованный HTTP-трафик читает и может подменить. Доверять ему стоит не больше, чем любому постороннему узлу в середине соединения.
Прокси и VPN — одно и то же?
Нет. Прокси работает для отдельных приложений и сам не шифрует канал, VPN заворачивает весь сетевой трафик устройства в зашифрованный туннель.