Что такое прокси-сервер: принцип работы, виды и отличие от VPN
Что такое прокси простыми словами: путь запроса через прокси-сервер, протоколы HTTP и SOCKS5, виды, отличие от VPN и то, чего прокси не скрывает.
Что такое прокси-сервер и как он работает
Что такое прокси? Это сервер-посредник: браузер или программа отправляет запрос не сайту напрямую, а ему, и уже он обращается к сайту от своего имени. Сайт получает IP-адрес прокси-сервера, а ответ возвращается к вам той же дорогой. Шифровать трафик посредник не обязан, а cookies и отпечаток браузера он не прячет, поэтому ниже разбираем и его устройство, и пределы.
Что такое прокси-сервер простыми словами
Представьте, что письмо уходит не адресату, а знакомому в другом городе, и он пересылает его, указав обратным адресом себя. Получатель знает только город знакомого. Обратное письмо тоже приходит знакомому, а он отдаёт его вам. Прокси-сервер делает то же самое с сетевыми запросами.
Слово пришло из английского: proxy — «доверенное лицо», «представитель». В сетях термин обозначает промежуточный узел, который принимает запрос клиента и выполняет его вместо клиента. Клиентом бывает браузер, мессенджер, скрипт для сбора данных или целая офисная сеть компании.
Полезно помнить с самого начала: прокси-сервер меняет маршрут, но трафик сам по себе не шифрует. Если сайт работает по незащищённому HTTP, владелец прокси-сервера способен прочитать содержимое запросов. При HTTPS ему известен адрес, к которому вы подключились, но не то, что открыто на странице.
Как работает прокси-сервер
Схема простая:
клиент → прокси-сервер → сайт
клиент ← прокси-сервер ← сайтВ параметрах программы или ОС вы указываете адрес сервера, порт и, если нужно, логин с паролем.
Программа подключается к прокси-серверу и сообщает, куда нужно попасть.
Прокси-сервер открывает отдельное подключение к сайту и отправляет запрос уже с собственного IP.
Сайт отвечает серверу, а тот пересылает ответ вам.
По дороге сервер может фильтровать запросы, вести журнал и добавлять служебные заголовки. Часто запрашиваемые файлы он кэширует, чтобы не скачивать их повторно. Набор функций выбирает администратор, а уровень, на котором работает прокси-сервер, и то, что он понимает в данных, зависит от протокола.
HTTP-прокси и метод CONNECT
HTTP-прокси понимает протокол HTTP. Когда вы открываете обычную незащищённую страницу, браузер отдаёт ему запрос целиком, а сервер сам загружает страницу и возвращает её. Он может прочитать запрос, изменить его и сохранить копию ответа.
С HTTPS иначе. Браузер отправляет метод CONNECT с адресом и портом сайта, например CONNECT example.com:443. Метод описан в стандарте RFC 9110: получатель запроса открывает туннель до сервера назначения и дальше гоняет данные в обе стороны, не разбирая их. Поверх туннеля браузер договаривается о шифровании прямо с сайтом.
Отсюда две частые проблемы. Поддерживать CONNECT сервер не обязан. А ещё он вправе пропускать туннели только на определённые порты, чаще всего на 443. Поэтому браузер через него работает, а программа с нестандартным портом подключиться не может.
SOCKS4 и SOCKS5
SOCKS действует уровнем ниже HTTP: сервер не разбирает, что идёт через канал, он просто пересылает байты. Приложение сообщает адрес назначения, после чего обменивается данными через созданный канал.
SOCKS4 рассчитан на TCP, адрес назначения в исходной версии передаётся только в формате IPv4. Пятая версия описана в RFC 1928 и умеет больше:
TCP-подключения через команду
CONNECT;пересылку UDP через команду
UDP ASSOCIATE;адреса IPv4, IPv6 и доменные имена;
выбор способа аутентификации.
Поддержка доменных имён полезна на практике. Если программа передаёт серверу имя сайта, а не готовый IP, адрес определяет уже сервер. Тогда DNS-запрос не уходит с вашего компьютера напрямую.
Проверка по логину и паролю для SOCKS5 вынесена в отдельный стандарт, RFC 1929. Логин и пароль служат проверкой доступа, а не шифрованием: если канал до сервера не защищён, учётные данные можно перехватить по дороге. И поддержка UDP в протоколе ещё не значит, что весь UDP-трафик программы пойдёт через прокси-сервер. Режим должны поддерживать и приложение, и сервер. Подробнее о протоколе — в материале о SOCKS5-прокси.
Для чего нужен прокси-сервер
Классическая задача — корпоративная сеть. Сотрудники выходят в интернет через один узел, администратор фильтрует запросы, ведёт журнал обращений и экономит канал за счёт кэширования: повторяющиеся файлы сервер отдаёт из своей копии и не скачивает заново.
Где применяют прокси-серверы сегодня:
дают сотрудникам один выход в интернет и контролируют исходящие запросы;
хранят копии повторяющихся HTTP-ресурсов;
публикуют внутренние веб-сервисы и распределяют нагрузку между серверами (об обратной схеме ниже);
тестируют сайт или приложение из нескольких сетевых точек;
проверяют региональную выдачу и то, что сайт показывает посетителям из других стран;
собирают общедоступные данные, соблюдая правила сайта и закон;
держат отдельный сетевой маршрут для каждой рабочей среды или аккаунта.
Прокси позволяют решать подобные задачи без перестройки всей сети. Корпоративный сервер обеспечивает единую точку выхода: через него проще применить политику доступа, получить статистику обращений и заметить подозрительный трафик. Разработчику прокси-сервер даёт способ проверить сайт, будто запрос пришёл из другой сети. Ещё его ставят для отладки: программа-перехватчик показывает запросы и ответы приложения целиком, с заголовками, а HTTPS — после установки её сертификата.
Обычный пользователь подключает сервер, когда задача требует другого IP-адреса. Например, чтобы посмотреть страницу глазами жителя другой страны, проверить рекламу в нужном регионе или развести рабочие профили по отдельным адресам. Гарантий здесь нет: выдача зависит ещё от cookies, языка браузера, часового пояса и аккаунта, а сбор данных не становится разрешённым только потому, что запросы идут через чужой IP.
Виды прокси-серверов
Единой классификации нет, есть несколько признаков, и они пересекаются. Один и тот же сервер бывает прямым, работает по SOCKS5 и выходит в сеть с резидентского IP. Основные признаки: направление, способ подключения и то, откуда взят адрес.
Прямой и обратный прокси
Вид | Кто стоит за сервером | Схема | Типичные задачи |
|---|---|---|---|
Прямой (forward proxy) | клиенты | клиент → сервер → интернет | выход сотрудников в сеть, фильтрация, кэширование |
Обратный (reverse proxy) | серверы и приложения | клиент → узел → внутренний сервер | публикация сайтов, балансировка, TLS-терминация, кэширование |
Прямой настраивают на стороне клиента: в ОС, в браузере или на шлюзе офиса. Если человек покупает адрес для своих программ, почти всегда речь именно о нём.
Обратный вариант стоит перед веб-серверами. Посетитель думает, что обращается к сайту, а попадает на промежуточный узел, который раскидывает запросы по нескольким машинам и прячет внутреннее устройство инфраструктуры. Пользователь с ним не взаимодействует сознательно и обычно не догадывается о нём.
Прозрачный прокси-сервер
Трафик перехватывается без действий в приложении: прозрачный прокси-сервер ставит оператор связи, администратор или шлюз. Вы ничего не включали, а запросы всё равно идут через него.
Слово «прозрачный» в этом случае описывает способ подключения, и на такой сервер легко наткнуться в офисной или гостевой сети. Оно не означает, что сервер ничего не меняет: он способен фильтровать запросы, вести журналы, переписывать заголовки, хранить копии ответов. И сообщить сайту ваш настоящий адрес тоже.
Заголовки, которые передают сведения о клиенте
Сайт узнаёт о промежуточном узле в том числе по служебным заголовкам HTTP:
Via: список промежуточных узлов, через которые прошло сообщение. По RFC 9110 HTTP-прокси добавляет его в пересылаемый запрос;X-Forwarded-For: распространённый, но исторически нестандартный заголовок с цепочкой IP-адресов клиента и промежуточных узлов;Forwarded: стандартный заголовок из RFC 7239 со сведениями о клиенте, хосте и протоколе.
Если сервер записывает ваш IP в одно из этих полей, сайт его получит. Отсутствие полей ничего не доказывает: сайт способен определить факт использования прокси и другими способами. Поэтому деление на «прозрачные», «анонимные» и «элитные» из описаний говорит о заголовках, а гарантий не даёт.
Тип прокси по происхождению IP-адреса
Эта классификация отвечает на вопрос, чей адрес получит сайт. Протокол от неё не зависит.
Серверные (дата-центр). Адрес из сети хостинга или облака, с домашним подключением он не связан.
Резидентские. Адрес из сети провайдера, который обслуживает обычных абонентов.
Мобильные. Адрес мобильного оператора.
ISP. Адреса, которые анонсирует интернет-провайдер, но оборудование размещено в серверной инфраструктуре. Единого технического определения у категории ISP нет.
Такой признак, как тип адреса, ничего не говорит о скорости, шифровании и анонимности. Не скажет он и того, пользуется ли адресом кто-то ещё. Отдельно выделяют персональные (выделенные) адреса и общие, которые делят несколько клиентов. Выбор зависит от задачи: где-то хватает серверного IP, где-то сайт ждёт адрес домашнего провайдера.
Прокси-сервер, VPN и NAT: в чём разница
Три технологии путают, потому что во всех случаях сайт получает не ваш адрес. Устроены они неодинаково.
Прокси-сервер | VPN | NAT | |
|---|---|---|---|
Что перенаправляет | обычно трафик одной программы | обычно весь трафик устройства или выбранных сетей | пакеты между внутренними и внешними адресами |
Принцип | открывает своё подключение к сайту или пересылает поток | создаёт виртуальный сетевой интерфейс и туннель | роутер подменяет адреса и порты |
Шифрование | не обязательно | обычно есть, зависит от протокола | нет |
Адрес для сайта | адрес выхода сервера | адрес выхода VPN | внешний адрес роутера |
На практике прокси-сервер удобно назначить одной программе или одному профилю браузера, а VPN обычно применяют ко всему устройству. От утечек VPN тоже не защищает автоматически: многое зависит от маршрутов, DNS и поддержки IPv6. NAT к этому классу не относится: он не понимает HTTP или SOCKS и только переводит адреса. Домашний роутер, например, занят именно переводом адресов.
Что прокси-сервер не скрывает
Подключение меняет только IP-адрес, который получает сайт. Остальные признаки остаются вашими, и по ним запросы легко связать между собой.
Cookies. Их хранит и отправляет браузер. Если вы вошли в аккаунт, сайт узнает вас по cookie независимо от адреса.
Отпечаток браузера. User-Agent, размер экрана, шрифты, часовой пояс и другие параметры сервер не меняет.
WebRTC. Браузер открывает WebRTC-соединения сам и может пустить их мимо сервера.
DNS. Если программа сама разрешает доменные имена, DNS-запросы уходят в обход прокси. Проверить маршрут поможет тест на утечку DNS.
Данные, отправленные вами. Логин, параметры в адресной строке, содержимое форм сайт получает в любом случае.
На самом устройстве сервер тоже бессилен: браузерное расширение или программа на компьютере читают данные раньше, чем те уйдут в сеть.
Чем опасен чужой прокси-сервер
Главный риск — сам сервер. Его владелец знает, куда вы подключаетесь, а при незащищённом HTTP получает и всё, что вы передаёте. Бесплатные открытые адреса неизвестного происхождения для рабочих аккаунтов лучше не использовать: неясно, кто их держит и что пишется в журналы.
Второй риск — ложное чувство защищённости. Смена IP не отменяет cookies и отпечаток браузера, поэтому для сайта вы по-прежнему тот же человек, если вошли в тот же аккаунт.
Как настроить прокси-сервер
Понадобятся адрес сервера (IP или домен), порт и, если требуется авторизация, логин и пароль. Всё это выдаёт тот, кто предоставляет доступ к серверу.
Windows 11
Откройте Параметры → Сеть и Интернет → Прокси-сервер.
В блоке ручной настройки нажмите кнопку настройки рядом с пунктом Использовать прокси-сервер.
Включите переключатель, впишите адрес и порт, сохраните.
В том же разделе настройки прокси есть автоматическое определение параметров и поле для адреса сценария — их используют в корпоративных сетях. Подробная инструкция с проверкой подключения — для Windows.
Chrome
Отдельной настройки у Chrome нет: браузер берёт параметры ОС. Путь: Настройки → Система → Открыть настройки прокси-сервера для компьютера, после чего откроется то же окно Windows. Названия пунктов могут немного отличаться в разных версиях и языках интерфейса. Если прокси используют только в браузере или в одном его профиле, нужны расширения или программы, которые назначают адрес отдельно.
Если сервер требует авторизацию, а логин и пароль не введены или введены с ошибкой, он вернёт код ответа 407 (Proxy Authentication Required). Подключение работает, не прошла только проверка доступа. Чтобы убедиться, что всё заработало, откройте любой сервис проверки IP: он должен показать новый адрес, а не ваш.
Ultra Proxy: где взять сервер под задачу
В Ultra Proxy можно купить серверные IPv4, ISP-адреса помесячно и резидентские с оплатой за трафик. Все тарифы работают по HTTP, HTTPS и SOCKS5, доступ — по логину и паролю или по белому списку до трёх IP. Данные для подключения появляются в личном кабинете сразу после оплаты.
Частые вопросы
Прокси и прокси-сервер — одно и то же? Да. «Прокси» — короткое название прокси-сервера. Иногда так называют и программу, которая пересылает запросы, смысл от этого не меняется.
Что такое прокси-сервер в параметрах Windows? Раздел параметров, где указывают адрес и порт сервера для подключения к интернету. Если вы его не включали и сайты открываются, менять там ничего не нужно.
Чем прокси отличается от VPN простыми словами? Он обычно обслуживает одну программу и не обязан шифровать трафик. VPN строит туннель для всего устройства и, как правило, шифрует его.
Узнает ли сайт, что я использую прокси? Может узнать. Сервер выдают заголовки Via и X-Forwarded-For, а ещё несовпадение признаков: например, IP из одной страны, а часовой пояс браузера из другой.
Делает ли прокси-сервер меня анонимным? Нет. Он меняет IP-адрес, но cookies, аккаунт и отпечаток браузера остаются прежними.
Что выбрать: HTTP или SOCKS5? Для браузера подходят оба. SOCKS5 универсальнее: работает с любыми TCP-подключениями, поддерживает UDP и IPv6. HTTP проще и встречается почти везде, где в программе есть поле для адреса сервера.
Почему после включения сайты не открываются? Чаще всего неверно указан адрес или порт, сервер ждёт логин и пароль либо не пропускает подключения на нужный порт. Начните с проверки данных подключения.
Можно ли пользоваться бесплатными прокси? Технически можно, но вы не знаете, кто владелец сервера и что он делает с трафиком. Для входа в аккаунты бесплатные адреса не подходят.