SOCKS-прокси - это прокси 5-го уровня, обеспечивающий безопасную маршрутизацию или туннелирование любой программы или протокола. Вы можете создать SOCKS-прокси с вашего локального узла на удаленный, а затем настроить свои приложения на маршрутизацию трафика через этот прокси.
Вы можете использовать его для безопасного доступа к интернету в публичной сети, например, в общедоступной среде WiFi, поскольку он шифрует трафик между вашим хостом и прокси-сервером. Его также можно использовать для доступа к хостам за частной сетью под NAT или брандмауэром, как и VPN.
Вам нужен SSH-доступ к удаленному серверу и создание SOCKS-прокси с помощью SSH-клиента из Linux или любой другой операционной системы на базе Unix на сервер, и вы можете сделать это из терминала.
Шаги по созданию SOCKS-прокси с помощью SSH
Запустите приложение терминала.
Проверьте SSH-соединение с удаленным хостом (необязательно).
1 | ssh user@remote-host hostname |
Подключитесь к удаленному хосту с помощью опции bind_address, чтобы создать SSH SOCKS-прокси с вашей локальной машины на удаленный SSH-сервер.
1 | ssh -D8080 user@remote-host |
- -D [bind_address:]port Указывает локальный "динамический" порт на уровне приложения переадресации. Это работает путем выделения сокета для прослушивания порта на локальной стороне, опционально привязанного к указанному адресу bind_address. Всякий раз, когда соединение с этим портом, соединение перенаправляется
по защищенному каналу, а протокол приложения используется для определения места соединения с удаленной машины. В настоящее время поддерживаются протоколы SOCKS4 и SOCKS5 протоколы поддерживаются, и ssh будет действовать как SOCKS сервера. Только root может перенаправлять привилегированные порты. - 8080 в примере - это порт, который будет прослушивать ваш SOCKS-прокси. Вы можете выбрать любое число от 1025 до 65535, если вы выполняете команду от имени обычного пользователя, при условии, что номер порта не используется в данный момент.
Общие параметры для запуска SOCKS-прокси в фоновом режиме::
1 | ssh -D8080 -fCqN user@remote-host |
- -f: Запрашивает переход ssh в фоновый режим непосредственно перед выполнением команды
- -C: Запрашивает сжатие всех данных
- -q: Тихий режим. Приводит к подавлению большинства предупреждающих и диагностических сообщений
- -N: Не выполнять удаленную команду
Проверьте, запущен ли туннель на вашем локальном узле.
1 | ss -natp | grep 8080 |
пример успешного вывода
1 2 | LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:(("ssh",pid=1642,fd=6)) LISTEN 0 128 [::1]:8080 [::]:* users:(("ssh",pid=1642,fd=5)) |
Подключите программу к вашему SOCKS-прокси, чтобы проверить, успешно ли работает туннель.
1 | curl curlmyip.ru |
1 | curl -x socks5h://127.0.0.1:8080 curlmyip.ru |
Настройте свой браузер или любые другие приложения на подключение через только что созданный SOCKS-туннель.