ToyVpnService 抛出 PortUnreachableException 并在初始连接后超时

ToyVpnService 抛出 PortUnreachableException 并在初始连接后超时

我为 Android 构建了 ToyVPNClienthttps://android.googlesource.com/platform/development/+/master/samples/ToyVpn我还在我的 Linux 机器上运行服务器代码。我使用以下命令创建 tun0 隧道接口:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
sudo ip tuntap add dev tun0 mod tun
sudo ifconfig tun0 10.0.0.1 dstaddr 10.0.0.2 up
./ToyVpnServer tun0 8000 test -m 1400 -a 10.0.0.2 32 -d 8.8.8.8 -r 0.0.0.0

完成这些步骤后,执行 ifconfig 时我就能看到 tun0 接口了。

我向 VPN 客户端应用程序提供 Linux 计算机的地址、端口 8000 和共享密钥,最初握手成功发生,客户端从服务器接收隧道接口的参数。但不久之后,客户端开始抛出如下错误:

E/ToyVpnService: Got java.lang.IllegalStateException: Timed out
E/ToyVpnService: Got java.net.PortUnreachableException: 

接下来是另一次成功的连接和握手,并且不断重复。在初始连接和参数传输之后,我只是偶尔看到隧道收到数据包。有使用过 ToyVpn 经验的人可以告诉我这是怎么回事吗?我还禁用了 ufw 防火墙,但这似乎没有帮助。

相关内容