SOCKS4 против SOCKS5
SOCKS4 и SOCKS5 - прокси-протоколы; SOCKS5 добавляет аутентификацию, поддержку UDP, IPv6 и удалённое разрешение DNS поверх устаревшего SOCKS4.
SOCKS4 и SOCKS5 - версии прокси-протокола SOCKS, который передаёт сырой TCP- (а для SOCKS5 и UDP-) трафик, не разбираясь в прикладном уровне. Это делает SOCKS-прокси протоколо-независимыми - они могут нести HTTP, почту, торренты, игровой трафик и другое, в отличие от HTTP-прокси, обрабатывающих только веб-запросы.
SOCKS5 - более новая и функциональная версия. Ключевые добавления по сравнению с SOCKS4: аутентификация по логину/паролю (у SOCKS4 её нет), поддержка UDP (SOCKS4 только TCP), адресация IPv6 и удалённое разрешение DNS - прокси сам резолвит имена хостов, что предотвращает утечки DNS, которые иначе выдали бы вашу активность.
Для пользователей прокси SOCKS5 фактически стандарт; SOCKS4 - легаси и коммерческие провайдеры его почти не предлагают. Когда сервис рекламирует «SOCKS-прокси», имеется в виду SOCKS5. Одних только функций аутентификации и удалённого DNS достаточно, чтобы сделать SOCKS5 единственным разумным выбором для приватной работы.
Выбирайте SOCKS5 вместо HTTP-прокси, когда нужно проксировать не-веб трафик или требуется удалённое разрешение DNS. Выбирайте HTTP/HTTPS-прокси для стандартного скрапинга - он поддерживается повсеместно и чуть проще. Многие провайдеры отдают один и тот же пул IP и по HTTP-, и по SOCKS5-портам.
Один из них музейный экспонат
SOCKS4 родом из начала девяностых и умеет три вещи: открывать исходящие TCP-соединения, передавать примитивный идентификатор пользователя и работать только с адресами IPv4. Он не резолвит имена, не носит UDP и не имеет настоящей аутентификации.
SOCKS4a добавил разрешение имён на стороне прокси заплаткой. SOCKS5, стандартизованный в 1996-м, добавил нормальные методы аутентификации, поддержку IPv6, проброс UDP и разрешение имён как штатную возможность.
В сегодняшней практике нет сценария, где SOCKS4 был бы правильным выбором. Если провайдер его предлагает, интереснее вопрос, что ещё в его стеке настолько же старое.
Что говорим мы
SOCKS5 на всех продуктах, аутентификация внутри рукопожатия:
Точки входа SOCKS5
Резидентка socks5h://login_c_US:password@proxy.sotaproxy.com:10000
Статика socks5h://login:password@ваш-ip:50101
# Буква h важна: имя разрешаем мы, а не ваша машина.- Пишите socks5h, а не socks5, чтобы DNS-запросы уходили на нашу сторону. Это самая частая утечка в скрапинг-стеках.
- Аутентификация SOCKS5 происходит в рукопожатии, поэтому клиенты спрашивают логин и пароль отдельно от URL.
- Суффиксы таргетинга работают под SOCKS5 ровно так же, как под HTTP. Меняется только схема.
- Python требует socks-расширения, Node просит socks-proxy-agent, а части инструментов нужен загрузчик с поддержкой SOCKS.
Где сравнение важно
SOCKS4 не проще в полезном смысле
У него нет аутентификации, IPv6 и удалённого DNS. Простота здесь это отсутствие возможностей.
SOCKS5 не анонимнее HTTP
Оба не шлют пересылочных заголовков, если провайдер элитный. Судят по выходному адресу.
SOCKS5 не быстрее автоматически
Он пропускает разбор заголовков, что ничтожно на фоне задержки выходного устройства.
Поддержка UDP редко и есть причина
Прокси-работа почти вся на TCP, а в скрапинге UDP не нужен вовсе.
Связанные термины
Смотри на практике
Готов использовать socks4 против socks5?
SotaProxy даёт доступ к ротирующим резидентским, мобильным, дата-центр и ISP прокси. Без минимальных платежей.
Начать