Tun2socks установка и настройка для проксирования трафика

Как показала практика, TCP тунель OpenVPN через proxy на мобильном интернете работает, мягко говоря, плохо. Поэтому я решил попробовать еще один способ проксирования — tun2socks. Как оказалось, через него можно пробрасывать тоже только TCP трафик, SSH подключение, ICMP через такой туннель не передается.

В общем-то, здесь все просто, за исключением того, что нужно собрать пакет вручную под мою платформу — ARM. Конечно же, это подойдет под любой Linux.
1. Устанавливаем нужный soft:

apt install cmake git -y

2. Клонируем исходники с github и собираем:

git clone https://github.com/ambrop72/badvpn
mkdir /root/badvpn-build; cd /root/badvpn-build
cmake /root/badvpn/ -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_TUN2SOCKS=1
make

Теперь у нас есть badvpn-tun2socks по адресу /root/badvpn-build/tun2socks/badvpn-tun2socks
3. Выполним настройку sock5 proxy через ssh:

# создаем ключи
mkdir ~/.pub
ssh-keygen
# копируем ключи на сервер
ssh-copy-id diman@video.37xxx.ru -p22022
# подключаем прокси video.37xxx.ru
ssh diman@video.37xxx.ru -p 22022 -D 127.0.0.1:4444 -N -f

4.

# Конфигурируем интерфейс tun1 и создаем подключение через прокси
ip tuntap add dev tun1 mode tun user root
ifconfig tun1 10.0.0.1 netmask 255.255.255.0
/root/badvpn-build/tun2socks/badvpn-tun2socks --tundev tun1 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr localhost:4444

5. Добавляем роуты на новое подключение, не забывая выпустить путь к прокси и DNS через старый gw

# 192.168.8.1 - действующий gw
# video.37xxx.ru - адрес proxy
route add video.37xxx.ru gw 192.168.8.1 metric 5
route add 8.8.8.8 gw 192.168.8.1 metric 5
route add 8.8.4.4 gw 192.168.8.1 metric 5
route del default gw 192.168.8.1
route add default gw 10.0.0.2 metric 6
# Маскарадим tun1 в локальную сеть, если требуется: 
iptables  -t nat -A POSTROUTING -o tun1 -j MASQUERADE

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *