Мой tun2socks программное обеспечение (Linux, Windows) создает виртуальный сетевой интерфейс , который передает все входящие TCP соединения через указанный прокси - сервер. Он может использовать только прокси-сервер SOCKS и по умолчанию может только пересылать TCP, хотя UDP также может быть перенаправлен, если вы можете запустить мой сервер udpgwпересылки где-то за SOCKS. Предполагая, что вы соответствуете этим требованиям, вот как вы можете настроить его:
Сначала создайте виртуальный интерфейс и настройте его. В Linux:
openvpn --mktun --dev tun0 --user <your_user>
ifconfig tun0 10.0.0.1/24
Или в Windows просто установите OpenVPN, чтобы получить виртуальный интерфейс TAP-Win32, и назначьте ему IP 10.0.0.1, маску сети 255.255.255.0.
Затем запустите tun2socks, который выполняет фактическую пересылку:
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr <socks_server_address>:<socks_port>
Здесь 10.0.0.2IP виртуального маршрутизатора внутри виртуального интерфейса. Он должен находиться в той же подсети, что и подсеть, назначенная самому виртуальному интерфейсу ( 10.0.0.1/24). В Windows вместо tun0использования:
--tundev "tap0901:<display_name_of_TAP-Win32_device>:10.0.0.1:10.0.0.0:255.255.255.0"
На этом этапе вы должны пропинговать виртуальный маршрутизатор 10.0.0.2(в этом случае tun2socksответит запущенная программа). Для пересылки соединений через прокси все, что вам нужно сделать, это направить их через виртуальное устройство. В Linux:
route add default gw 10.0.0.2 metric 0
Или на Windows:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 0
Критическая часть здесь - то, что маршрут переопределяет любой существующий маршрут по умолчанию. Кроме того, если ваш сервер SOCKS не находится в локальной сети, вы должны добавить маршрут исключения с более высокой метрикой, чтобы предотвратить перенаправление соединений обратно в виртуальный интерфейс. Смотрите ссылку вверху для получения дополнительной информации.