Além de executar:
sysctl -w net.ipv4.ip_forward=1
no Ubuntu, parece que você também precisa executar:
iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
Estou configurando uma VPN SSH TUN ("-w") usando este guia: link
Eu tenho o seguinte em meu / 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
Em seguida, tun0 na máquina da qual estou fazendo o tunelamento (o cliente ssh) aparece bem, mas o tráfego não é encaminhado. Isso faz algum sentido, já que o código está tentando usar o 10.0.0.1 (o IP do tunel da máquina na qual eu sou o SSHing) como gateway padrão, em vez do gateway padrão remoto real. Quando eu coloco o IP do gateway remoto real (192.168.0.1) nas rotas, os comandos falham com um erro "não encontrado".
O que devo fazer de diferente?