Я настраиваю БОЧКУ SSH ("-w") VPN с помощью этого практического руководства: https://help.ubuntu.com/community/SSH_VPN
У меня есть следующее в моем/etc/network/interfaces:
iface tun0 inet static
pre-up ssh -f -w 0:0 singpolyma.dnsalias.net 'ifdown tun0; ifup tun0'
pre-up sleep 10
address 10.0.0.2
pointopoint 10.0.0.1
netmask 255.255.255.0
up route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.2 tun0
up route add singpolyma.dnsalias.net gw 10.2.1.1 eth0
up route add default gw 10.0.0.1 tun0
up route del default gw 10.2.1.1 eth0
down route add default gw 10.2.1.1 eth0
down route del default gw 10.0.0.1 tun0
down route del -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.2 tun0
down route del singpolyma.dnsalias.net gw 10.2.1.1 eth0
Затем tun0 на машине, от которой я туннелирую (ssh клиент) подходит прекрасный, но трафик не направляет. Это имеет некоторый смысл, так как тот код пытается использовать 10.0.0.1 (IP бочки машины, я - SSHing в) как шлюз по умолчанию вместо фактического удаленного шлюза по умолчанию. Когда я поместил фактический IP удаленного шлюза (192.168.0.1) в маршруты, команды перестали работать с "не найденной" ошибкой.
Что я должен делать по-другому?
В дополнение к выполнению:
sysctl -w net.ipv4.ip_forward=1
на Ubuntu кажется, что также необходимо работать:
iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE