Развертывание прокси-сервера Socks5

Здесь мы предлагаем два способа установки socks5. Во избежание проблем, пожалуйста, внимательно прочитайте соответствующие описания.

Проксирование UDP-протокола

Из-за особенностей проксирования UDP через socks5 могут возникнуть различные проблемы. Если вы уверены, что вам нужен UDP, вы должны следовать этим правилам. Во-первых, ваша хост-система должна быть Linux, и в брандмауэре должны быть открыты UDP-порты в диапазоне 50000-55000. Во-вторых, сеть вашего сервера не должна быть за NAT (даже FULL NAT не подходит; многие современные облачные серверы работают в режиме NAT).

Совет

Почему хост-система должна быть Linux? Потому что в других системах Docker может не справиться с пробросом такого большого диапазона портов, а также сетевой режим Docker не может быть установлен как host.

Если вы не знаете, находится ли ваш сервер за NAT, получите IP-адрес сетевого интерфейса по умолчанию с помощью команды ifconfig или аналогичной, а затем попробуйте пропинговать этот адрес с устройства, где вы планируете использовать прокси. Если PING не проходит, ваш сервер, вероятно, находится за NAT. Конечно, несоответствие условиям не означает, что вы не можете использовать UDP. Вы все равно можете самостоятельно настроить gost, как это сделать, описано в конце статьи.

Внимание

Из-за особенностей проксирования SOCKS5 UDP, если вы уверены, что вам нужен UDP, пожалуйста, настройте брандмауэр так, чтобы он разрешал UDP-трафик для всех портов.

Без проксирования UDP-протокола

Если вам не требуется проксирование UDP-протокола, то все становится намного проще. Следующая команда запустит SOCKS-сервис.

docker run -it --rm -p 1080:1080 --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5

Указание исходящего сетевого интерфейса

Если на вашем сервере или компьютере есть несколько сетевых интерфейсов с доступом в интернет (например, на домашнем компьютере вы подключены к двум разным сетям через Ethernet и Wi-Fi), у вас может быть два интерфейса, таких как wlan0 и eth0. Вы можете указать, какой из них использовать для исходящего трафика прокси. Если вы хотите использовать eth0, запустите SOCKS-сервис следующей командой.

Внимание

Ваш компьютер или сервер должен работать под управлением Linux. Другие операционные системы не поддерживают указание сетевого интерфейса.
docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd -e DEV=eth0 rev1si0n/socks5

Если вы выполнили все предварительные условия для использования UDP, используйте следующую команду:

docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5

Использование сервиса GOST

Если вы хотите использовать UDP, но не можете выполнить вышеуказанные условия, или вам не нужно указывать исходящий интерфейс, или вы не хотите устанавливать Docker, вы можете попробовать gost. Скачайте архив с исполняемым файлом для вашей операционной системы с github.com/ginuerzh/gost/releases/.

gost -L=socks5://username:passwd@:1080

Подсказка

После завершения всех операций по развертыванию, обратитесь к разделу о настройке прокси, чтобы узнать, как настроить сетевой прокси на вашем устройстве.