Разбираем SOCKS5 по первоисточникам: как проходит рукопожатие, что значат сервер и порт, чем socks5 отличается от socks5h и почему прокси с паролем работает в Telegram, но не авторизуется в Chrome. В конце инструкции для Telegram, браузеров, Windows, macOS, Android, iPhone и Linux.
SOCKS5 прокси - это сервер-посредник, который открывает соединения к сайтам и сервисам от своего имени. Ваша программа говорит прокси: «соединись с таким-то адресом и портом», прокси устанавливает соединение, а дальше просто пересылает байты в обе стороны. Сайт видит IP прокси, а не ваш.
Главное отличие от обычного веб-прокси в том, что SOCKS5 не привязан к конкретному прикладному протоколу. В RFC 1928 он описан как прослойка между прикладным и транспортным уровнями: прокси не разбирает содержимое, а работает с TCP-соединениями и, при поддержке сервером, с UDP. Поэтому через SOCKS5 можно пустить почти любой TCP-трафик: браузер, мессенджер, почтовый клиент, SSH, парсер или торрент-клиент.
Протокол старый: RFC 1928 вышел в марте 1996 года. Сегодня его понимают curl, Telegram, Firefox, Chrome (без авторизации), большинство прокси-клиентов для Windows, macOS, Android и iOS, антидетект-браузеры и библиотеки для парсинга. Удобный побочный пример: команда ssh -D поднимает локальный SOCKS5-прокси, который туннелирует трафик через SSH-сервер.
Соединение с SOCKS5-сервером идёт в три шага. Сначала клиент сообщает версию протокола (5) и список методов аутентификации, которые он умеет. Сервер выбирает один из них. Затем проходит авторизация выбранным методом. И только после этого клиент отправляет запрос: какую команду выполнить и с каким адресом соединиться. Сервер отвечает кодом результата, и начинается передача данных.
Методы аутентификации в RFC 1928 закодированы одним байтом: 0x00 - без аутентификации, 0x01 - GSSAPI, 0x02 - логин и пароль, 0xFF - ни один из предложенных методов не подходит. Формально стандарт требует от совместимых реализаций поддерживать GSSAPI и рекомендует поддерживать логин и пароль. У коммерческих прокси на практике обычно используется либо вход без пароля по белому списку IP, либо логин и пароль.
Авторизация по логину и паролю описана отдельно, в RFC 1929. Клиент отправляет логин и пароль длиной от 1 до 255 байт каждый, сервер отвечает статусом: 0x00 означает успех, при любом другом статусе сервер обязан закрыть соединение. GSSAPI-вариант (RFC 1961) рассчитан на корпоративную инфраструктуру аутентификации (например, Kerberos V5) и может дополнительно защищать трафик на уровне целостности и конфиденциальности, но у коммерческих прокси-сервисов он встречается редко.
Команд три: CONNECT (0x01) - открыть исходящее TCP-соединение, этим пользуются почти все программы; BIND (0x02) - принять входящее соединение от сервера, RFC 1928 приводит в пример FTP, где данные могут идти по отдельному соединению; UDP ASSOCIATE (0x03) - передача UDP-датаграмм через прокси. UDP-связка живёт, пока открыто управляющее TCP-соединение, а поддержка UDP ASSOCIATE на конкретном сервере не гарантирована: её нужно уточнять у провайдера.
Адрес назначения можно передать тремя способами: IPv4-адрес (тип 0x01), доменное имя (0x03) или IPv6-адрес (0x04). Возможность отдать прокси именно домен, а не IP, - то, на чём построен удалённый DNS и режим socks5h, о котором ниже.
Методы аутентификации
0x00 без аутентификации
0x01 GSSAPI
0x02 логин и пароль
0xFF нет подходящего метода
Команды
0x01 CONNECT
0x02 BIND
0x03 UDP ASSOCIATE
Типы адреса
0x01 IPv4
0x03 доменное имя
0x04 IPv6
SOCKS4 - предыдущая версия протокола. Она умеет только TCP, только IPv4 и не поддерживает полноценную авторизацию. Адрес назначения клиент обязан передать в виде IPv4-адреса, то есть DNS-запрос всегда выполняется на вашем устройстве. Расширение SOCKS4a позволяет передать прокси доменное имя и перенести резолвинг на сторону сервера, но авторизации не добавляет, а IPv6-адрес напрямую передать всё так же нельзя (разве что прокси сам разрезолвит домен в IPv6).
RFC 1928 прямо перечисляет, что появилось в пятой версии по сравнению с четвёртой: поддержка UDP, механизмы строгой аутентификации и адресация по доменным именам и IPv6. Поэтому, если провайдер даёт выбор, почти всегда берут SOCKS5. SOCKS4 имеет смысл только для старого софта, который пятую версию не понимает.
Одна практическая ловушка: в некоторых программах поле называется просто «SOCKS», и по нему не видно, какая версия используется. Например, в Chrome при настройке через флаг --proxy-server запись вида socks=host:port без явной схемы интерпретируется как SOCKS4. Если прокси не работает, в первую очередь проверьте, что выбрана именно версия 5.
HTTP-прокси понимает протокол HTTP. Для обычных http-адресов он принимает запрос целиком и сам отправляет его на сайт. Для HTTPS браузер использует метод CONNECT: просит прокси открыть туннель к нужному хосту и порту, и после ответа 2xx прокси, по формулировке RFC 9110, работает как слепой ретранслятор. Содержимое HTTPS при этом зашифровано TLS, и прокси его не видит.
SOCKS5 изначально не привязан к HTTP. Он пересылает любой TCP-поток, а при поддержке сервером и UDP. Поэтому SOCKS5 выбирают для программ, которые не работают по HTTP: мессенджеров, почтовых клиентов, SSH, некоторых игр, а также для софта, где в настройках просто нет HTTP-прокси.
Для браузера и парсинга сайтов разница на практике небольшая: HTTPS-трафик в обоих случаях идёт туннелем, и сайт видит одинаковый IP. Выбор чаще определяется совместимостью. Chromium-браузеры не умеют авторизоваться на SOCKS5, поэтому прокси с паролем в них подключают как HTTP. Telegram, наоборот, поддерживает SOCKS5 и собственный протокол MTProto-прокси.
Про безопасность нужно сказать честно. Ни HTTP-прокси, ни SOCKS5 не шифруют канал между вами и прокси. В RFC 1929 прямо написано, что пароль передаётся открытым текстом и этот метод не рекомендуется там, где возможен перехват трафика. Защищено только то, что шифруется внутри: HTTPS-сайты, мессенджеры со своим шифрованием. Если нужно шифровать весь канал до прокси, используют VPN, SSH-туннель или прокси-протоколы с TLS.
SOCKS5 - это не VPN. Он меняет IP для тех программ, которые через него пущены, но не шифрует трафик. Разница между типами IP за прокси разобрана в сравнении мобильных, резидентских и датацентровых прокси. Источник о методе CONNECT: RFC 9110, раздел 9.3.6.
Прежде чем соединиться с сайтом, нужно превратить его домен в IP-адрес. SOCKS5 позволяет сделать это двумя способами: клиент резолвит домен сам и передаёт прокси готовый IP, либо передаёт прокси доменное имя, и DNS-запрос выполняет сервер.
В curl эти режимы разделены схемами. Для socks5:// имя резолвит сам curl на вашем устройстве, для socks5h:// имя отправляется прокси и локального резолвинга нет. То же самое делают опции --socks5 и --socks5-hostname. Схему socks5h понимают и многие другие инструменты, например библиотеки для Python, но проверяйте документацию своего софта.
Почему это важно: при локальном резолвинге DNS-запросы уходят вашему провайдеру или публичному DNS. IP на сайте уже чужой, но по DNS видно, какие домены вы открываете, и с какого IP-адреса. Это и называют DNS-утечкой.
Chrome при SOCKS5 всегда поручает DNS прокси-серверу, и изменить это нельзя. В Firefox за это отвечает галочка «Отправлять DNS-запросы через прокси при использовании SOCKS v5». Начиная с Firefox 128 для SOCKS5 она по умолчанию включена, но в старых профилях и при ручных изменениях настроек её стоит проверить.
# DNS резолвит ваше устройство curl -x socks5://login:pass@host:port https://example.com # DNS резолвит прокси (без утечки DNS) curl -x socks5h://login:pass@host:port https://example.com
Источники: Everything curl: SOCKS, документация Chromium о прокси.
Когда провайдер выдаёт SOCKS5, вы получаете четыре значения: сервер (IP или домен), порт, логин и пароль. Если доступ настроен по белому списку IP, логина и пароля нет, остаются только сервер и порт. Порт по умолчанию для SOCKS по RFC 1928 - 1080, но коммерческие прокси обычно используют свои порты, поэтому всегда берите порт из выданных данных.
Встречаются три основные записи. Первая - host:port, например 203.0.113.10:1080, это прокси без пароля. Вторая - host:port:login:pass, так прокси обычно выдают списком: строку нужно разложить на четыре поля настройки. Третья - URI вида socks5://login:pass@host:port или socks5h://login:pass@host:port; её напрямую понимают curl, многие библиотеки и некоторые клиенты. Иногда провайдеры используют порядок login:pass@host:port или login:pass:host:port, поэтому сверяйтесь с документацией.
Если в логине или пароле есть символы вроде @, : или /, в URI их нужно закодировать (например, @ превращается в %40), иначе программа неверно разберёт строку. Документация curl также предупреждает: логин и пароль, переданные в командной строке, могут на мгновение увидеть другие пользователи той же системы, поэтому такие данные лучше читать из файла.
Если прокси не подключается совсем, сначала проверьте, открыт ли порт и отвечает ли сервер. Для этого подойдут наш онлайн-чекер прокси и инструкция по проверке доступности портов.
Проверить прокси: онлайн-чекер прокси и как проверить доступность портов.
Telegram поддерживает в своих приложениях SOCKS5 с логином и паролем, а также собственный протокол MTProto-прокси. Для SOCKS5 у Telegram есть ссылки формата t.me/socks?server=...&port=...&user=...&pass=..., где логин и пароль необязательны. MTProto-прокси всегда требует сервер, порт и секрет, а оператор такого прокси, по данным Telegram, может показывать вам спонсорский канал, но не видит ваши чаты.
Chrome, Edge, Яндекс Браузер и Opera на движке Chromium поддерживают SOCKS4 и SOCKS5, но в документации Chromium прямо сказано: для SOCKSv5 в Chrome не поддерживается ни один метод аутентификации. Кроме того, в Chrome SOCKS5 используется только для TCP и не проксирует UDP. Прокси с паролем в этих браузерах подключают как HTTP. Firefox в своём окне настроек умеет SOCKS 4 и SOCKS 5 без полей логина, а SOCKS5 с паролем работает через расширение FoxyProxy.
В Windows полей логина и пароля для SOCKS в системных настройках нет. Отдельное поле Socks есть в старом окне «Свойства: Интернет» (Настройка сети → Дополнительно), остальные поля в этом окне Chromium трактует как HTTP-прокси, а учётные данные из системных настроек, по документации Chromium, не использует. К тому же многие программы системный прокси вообще игнорируют. Для SOCKS5 с паролем на ПК используют проксификаторы и прокси-клиенты: они принимают прокси с авторизацией и направляют через него выбранные приложения.
На Android и iPhone ручной прокси в настройках Wi-Fi работает как HTTP и только для этой сети. SOCKS5 для всего телефона, включая мобильный интернет, подключают через приложения, которые создают локальный VPN-туннель. На Linux SOCKS5 используют через curl, переменные окружения и системные клиенты, а на роутере прокси можно поднять для всех устройств сети сразу.
Источники: Telegram: ссылки на прокси, Telegram: MTProxy, Chromium proxy.md.
Запросы «socks5 прокси бесплатно» и «socks5 прокси список» ведут на сайты с перечнями открытых прокси. Часто это серверы, которые открыты случайно из-за ошибки настройки или специально поставлены неизвестными людьми. Кто владелец, что он логирует и как долго сервер проживёт, вы не знаете.
Помните, что SOCKS5 не шифрует трафик. Владелец бесплатного прокси видит, к каким адресам вы подключаетесь, и всё, что идёт без шифрования: HTTP-страницы, данные старых протоколов. Если бесплатный прокси требует логин и пароль, его владелец получает их открытым текстом. Никогда не вводите через такие прокси данные от банка, почты и рабочих аккаунтов.
Вторая проблема - репутация IP. Адреса из публичных списков используют одновременно многие люди, в том числе для спама и перебора паролей, поэтому такие IP часто попадают в чёрные списки. Соцсети, маркетплейсы и поисковики встречают их капчами и блокировками, и для работы с аккаунтами такой адрес нередко хуже вашего домашнего.
Бесплатный список годится разве что для разовой проверки, работает ли у вас в принципе SOCKS5-подключение. Для всего, что связано с аккаунтами, деньгами и личными данными, нужен прокси с известным владельцем, авторизацией и понятными условиями.
| Параметр | SOCKS4 / 4a | SOCKS5 | HTTP / HTTPS (CONNECT) | VPN |
|---|---|---|---|---|
| Уровень работы | Между прикладным и транспортным (TCP) | Между прикладным и транспортным (TCP, UDP) | Прикладной (HTTP), HTTPS через туннель CONNECT | Сетевой: весь трафик устройства или выбранных приложений |
| Протоколы внутри | Любой TCP | Любой TCP, UDP при поддержке сервером | HTTP, через CONNECT любой TCP, если прокси разрешает | Любой IP-трафик |
| Авторизация | Только поле идентификатора, пароля нет | Без аутентификации, логин и пароль (RFC 1929), GSSAPI (RFC 1961) | Basic, Digest и другие схемы HTTP | Зависит от протокола VPN |
| Шифрование канала до прокси | Нет | Нет (кроме редкого GSSAPI с защитой) | Нет (у HTTPS-прокси канал до прокси в TLS) | Как правило, да |
| DNS через прокси | Нет, в SOCKS4a да | Да, если клиент передаёт домен (socks5h) | Да, прокси сам резолвит имя из запроса | Зависит от настроек VPN |
| IPv6 | Нет | Да | Да | Зависит от сервиса |
| Типичное применение | Старый софт | Telegram, клиенты, скрипты, антидетект-браузеры | Браузеры, парсинг сайтов | Защита канала, доступ к сети целиком |
Возможности конкретной программы или сервиса могут быть уже, чем позволяет протокол. Источники: RFC 1928, RFC 9110, Everything curl.
Везде понадобятся одни и те же четыре значения: сервер, порт, логин и пароль. Ниже коротко, где их вводить на каждой платформе, и ссылка на подробную инструкцию.
Настройки → «Данные и память» → «Настройки прокси» → добавить прокси → тип SOCKS5: сервер, порт, логин, пароль. В Telegram Desktop путь такой: «Настройки» → «Продвинутые настройки» → «Тип соединения»; там доступны типы прокси SOCKS5, HTTP и MTProto. Названия пунктов зависят от версии приложения.
Настройка прокси в TelegramSOCKS5 без пароля подключается через расширение ZeroOmega или FoxyProxy. Прокси с логином и паролем добавляйте в расширение как HTTP: авторизацию SOCKS5 Chromium не поддерживает.
Прокси для браузераНастройки → «Настройки прокси» → «Ручная настройка прокси» → узел SOCKS, порт, SOCKS 5 и галочка DNS через прокси. Для SOCKS5 с логином и паролем поставьте FoxyProxy.
Firefox и FoxyProxyВ системных настройках Windows нет полей логина и пароля для SOCKS. Для SOCKS5 с паролем используйте проксификатор или прокси-клиент и выберите в нём, какие программы пускать через прокси.
Прокси-клиенты для WindowsВ сетевых настройках macOS есть пункт «SOCKS-прокси» с опцией пароля. Но Chrome учётные данные из системных настроек не берёт, а для прокси по приложениям и правил маршрутизации нужны сторонние клиенты.
Прокси для MacРучной прокси в настройках Wi-Fi работает как HTTP и только для этой сети. SOCKS5 с паролем для всего телефона подключают через приложение, создающее локальный VPN-туннель.
Приложения для прокси на AndroidРучной прокси в настройках Wi-Fi работает как HTTP и только для этой сети. SOCKS5, в том числе для мобильного интернета, подключают через клиенты вроде Shadowrocket.
Shadowrocket и прокси для iOSПроверка одной командой: curl -x socks5h://login:pass@host:port https://сайт-проверки-ip. Для программ используют переменные окружения и системные клиенты.
Прокси для LinuxЕсли прокси нужен всем устройствам в сети, включая Smart TV и приставки, его поднимают на роутере с подходящей прошивкой.
Прокси для роутераПроксификатор перехватывает соединения выбранного приложения и отправляет их через SOCKS5 с авторизацией.
Аналоги ProxifierПротокол у всех провайдеров один и тот же, поэтому сравнивать нужно не SOCKS5, а то, что за ним стоит: IP, условия доступа и поддержку нужных функций.
Авторизация. Нужны либо логин и пароль, либо привязка к вашему IP. Уточните, можно ли использовать оба варианта: белый список удобен для Chrome, логин удобен при смене сети.
Протоколы. Один и тот же прокси по HTTP и SOCKS5 закрывает и браузеры, и Telegram с клиентами. Если нужен UDP (голосовые звонки, некоторые игры), спросите о поддержке UDP ASSOCIATE до оплаты.
Выделенный или общий. На выделенном прокси вы единственный пользователь канала. На общем IP делят многие клиенты, и чужие действия влияют на репутацию адреса.
Тип IP. Датацентровые адреса дешёвые и быстрые, но площадки распознают их проще. Резидентские принадлежат домашним провайдерам. Мобильные адреса операторов 4G/5G, как правило, находятся за CGNAT, и один IP часто делят многие реальные абоненты.
Смена IP и гео. Узнайте, как меняется адрес (по ссылке, по таймеру), можно ли выбрать страну и оператора.
Тест и условия. Перед долгой оплатой проверьте прокси на своей задаче: скорость, стабильность, отсутствие утечек DNS и WebRTC.
Мобильные прокси Coronium выдаются в формате host:port:login:pass и работают по HTTP и SOCKS5. В Telegram, Firefox с FoxyProxy, curl и прокси-клиентах подключайте их как SOCKS5 с логином и паролем, в Chrome, Edge, Яндекс Браузере и Opera как HTTP. На выходе виден IP реального оператора 4G/5G. Если вашей задаче нужен UDP, уточните это у поддержки до покупки.
SOCKS5 и MTProto в Telegram на телефоне и ПК.
Chrome, Яндекс Браузер, Firefox, Opera и расширения.
SOCKS5 с паролем для всей системы и отдельных программ.
SOCKS5 для всего телефона без root.
Как пустить через SOCKS5 любую программу.
Какой тип IP выбрать за SOCKS5.