Как использовать SOCKS5-прокси в Chrome: расширения, системные настройки и SSH-туннели
В Chrome нет встроенной настройки SOCKS5. Вот практические способы направить Chrome через SOCKS5-прокси — системные настройки, флаги командной строки, расширения и SSH-туннели, — а также как это проверить и избежать утечек DNS и WebRTC.
Если вы когда-нибудь открывали настройки Chrome и искали там опцию SOCKS5-прокси, вы уже знаете результат: её не существует. В отличие от Firefox, где в настройках подключения есть отдельное поле для хоста SOCKS5, Chrome намеренно отказывается от интерфейса настройки прокси на уровне браузера. Это не значит, что вы не можете использовать SOCKS5 с Chrome — просто придётся выбрать один из нескольких обходных путей. В этом руководстве рассматриваются все практические методы, их компромиссы и проверки на утечки, которые действительно важны.
Почему в Chrome нет встроенной настройки SOCKS5
В Windows и macOS Chrome передаёт настройку прокси операционной системе. В Linux он учитывает переменные окружения и флаги командной строки. Логика проста: настройка прокси на уровне браузера конфликтовала бы с корпоративными системными политиками и другими приложениями. Но побочный эффект в том, что SOCKS5, который не поддерживается системным диалогом прокси в Windows, становится неудобным на этой платформе.
Chrome понимает SOCKS5, если указать его через флаг командной строки или расширение для прокси. Важное различие в том, что разрешает Chrome: когда вы направляете Chrome на прокси socks5://, он отправляет имя хоста прокси для удалённого разрешения DNS (эквивалентно схеме socks5h в таких инструментах, как curl). Именно это нужно для обхода гео-ограничений и предотвращения утечек DNS.
Способ 1: Общесистемный SOCKS5-прокси (только macOS и Linux)
В macOS и Linux можно задать общесистемный SOCKS5-прокси, и Chrome будет его использовать. В Windows этот способ не работает, потому что системные настройки прокси в Windows принимают только HTTP и HTTPS.
macOS
- Откройте Системные настройки (или System Preferences на более старых версиях macOS).
- Перейдите в Сеть → выберите активное подключение → Подробности → Прокси.
- Включите Прокси SOCKS и введите хост и порт (например,
127.0.0.1:1080). - Нажмите OK и Применить.
Теперь Chrome будет направлять весь трафик через SOCKS5-прокси. Учтите, что это влияет на все приложения, которые используют системные настройки прокси, а не только на Chrome.
Linux
Chrome в Linux читает переменную окружения all_proxy. Задайте её перед запуском Chrome:
export all_proxy="socks5://127.0.0.1:1080"
google-chrome
Если это не сработает для всего трафика, вместо этого можно использовать флаг --proxy-server (см. способ 2).
Способ 2: Флаги командной строки Chrome (все платформы)
Самый надёжный способ заставить Chrome использовать SOCKS5-прокси, независимо от ОС, — запустить его с флагом прокси-сервера. Сначала закройте все экземпляры Chrome, затем выполните:
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server="socks5://127.0.0.1:1080"
# Linux
google-chrome --proxy-server="socks5://127.0.0.1:1080"
# Windows (Command Prompt)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --proxy-server="socks5://127.0.0.1:1080"
Этот флаг заставляет Chrome использовать SOCKS5-прокси для всех запросов и выполняет удалённое разрешение DNS. Чтобы убедиться, откройте chrome://net-internals/#proxy и посмотрите действующие настройки прокси.
Одна оговорка: это применяется только к экземпляру Chrome, запущенному с флагом. Если вы откроете новое окно из уже существующего процесса Chrome, оно может не унаследовать настройку. Используйте отдельный user-data-dir, если нужна изоляция.
Способ 3: Расширения для прокси для SOCKS5
Браузерные расширения — самый распространённый способ добавить SOCKS5 в Chrome, не трогая системные настройки. Такие расширения, как SwitchyOmega (и аналогичные менеджеры прокси), позволяют создать профиль SOCKS5 и переключаться между прямым и прокси-подключением для вкладки или домена.
Как настроить типичное расширение:
- Установите расширение из Chrome Web Store.
- Создайте новый профиль, выберите SOCKS5 в качестве протокола.
- Введите хост и порт прокси (например,
127.0.0.1:1080). - Оставьте аутентификацию пустой, если ваш прокси её не требует.
- Примените профиль.
Расширения влияют только на трафик Chrome и могут быть удобны для тестирования. Однако они не предотвращают утечки WebRTC и в некоторых случаях могут не охватывать внутренние DNS-запросы Chrome. Всегда проверяйте с помощью теста на утечки.
Способ 4: Динамическая переадресация портов SSH (локальный SOCKS5-туннель)
Если у вас есть SSH-доступ к удалённому серверу, можно создать локальный SOCKS5-прокси одной командой:
ssh -D 1080 -N -f [email protected]
Это открывает SOCKS5-прокси на localhost:1080, который туннелирует трафик через ваш сервер. Затем направьте Chrome на него с помощью флага командной строки или расширения для прокси. Этот метод популярен, потому что он шифрует трафик между вами и сервером и не требует стороннего прокси-сервиса.
Чтобы закрыть туннель, найдите процесс SSH и завершите его или выполните ssh -D 1080 -N [email protected] в терминале и нажмите Ctrl+C, когда закончите.
Проверка работы SOCKS5-прокси (и отсутствия утечек)
После настройки любого способа проверьте следующее:
- Публичный IP: посетите сайт проверки IP и убедитесь, что он показывает IP прокси, а не ваш реальный.
- Утечки DNS: воспользуйтесь сайтом для проверки утечек DNS. Поскольку
socks5://в Chrome выполняет удалённое разрешение DNS, вы должны видеть DNS-серверы, принадлежащие прокси, а не вашему интернет-провайдеру. - Утечки WebRTC: Chrome может раскрыть ваш локальный и публичный IP через WebRTC, даже когда прокси активен. Проверьте с помощью теста на утечки WebRTC. Чтобы снизить риск, полностью отключите WebRTC или используйте расширение, которое его блокирует.
- Внутренний вид Chrome: откройте
chrome://net-internals/#proxy, чтобы увидеть текущую конфигурацию прокси, иchrome://net-internals/#dns, чтобы увидеть поведение разрешения DNS.
Частые ошибки: SOCKS5h, аутентификация и политики Chrome
- SOCKS5 против SOCKS5h: в Chrome
socks5://уже выполняет удалённое разрешение DNS. Отдельной схемыsocks5hнет. Если вы привыкли кsocks5h://в curl, просто используйтеsocks5://в Chrome. - Аутентификация: Chrome поддерживает аутентификацию SOCKS5 по имени пользователя и паролю через флаг
--proxy-serverв форматеsocks5://user:pass@host:port. Некоторые расширения также её поддерживают. - Корпоративные политики: если ваш Chrome управляется организацией, настройки прокси могут принудительно задаваться политикой. Проверьте
chrome://policy, чтобы узнать, заблокирована ли конфигурация прокси.
Главный вывод
Chrome не предоставит вам галочку для SOCKS5, но у вас есть четыре надёжных пути: системные настройки в macOS/Linux, флаги командной строки в любой ОС, расширение для прокси или SSH-туннель. Для большинства пользователей расширение для прокси — самый быстрый способ протестировать SOCKS5-прокси в Chrome, а флаг командной строки — самый надёжный для постоянного использования. Что бы вы ни выбрали, всегда проверяйте свой IP, DNS и статус WebRTC — прокси, который допускает утечки, хуже, чем полное отсутствие прокси.