我正在使用以下方法设置 SSH TUN(“-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
然后,我进行隧道连接的机器(ssh 客户端)上的 tun0 正常运行,但流量无法路由。这有一定道理,因为该代码试图使用 10.0.0.1(我进行 SSH 连接的机器的 tun IP)作为默认网关,而不是实际的远程默认网关。当我将实际的远程网关 IP(192.168.0.1)放入路由中时,命令失败并出现“未找到”错误。
我应该做些什么不同的事情?
答案1
除了跑步之外:
sysctl -w net.ipv4.ip_forward=1
在 Ubuntu 上似乎您还需要运行:
iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE