我花了大半天时间研究这个问题。一切看起来都很好,而且确实运行正常(嗯,除了它不工作),但肯定有什么问题。
服务器:
- NetgearVPN 服务器
- wan: 动态ip
- 局域网:10.0.0.0/24
- IP地址:10.0.0.1
客户端:
- shrew VPN 客户端(尝试过不同版本)
- 局域网:172.16.0.0/16(网关:172.16.0.4)
- IP地址:172.16.0.59
VPN 启动 tap0 接口(IP 范围为 10.1.0.0/24),隧道已建立,没有问题。远程主机可以在其虚拟 IP(10.1.0.1)上 ping 和 ssh 客户端。但是,客户端似乎无法访问任何东西。
一旦设置完毕,route -n 看起来如下:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.0.4 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 10.1.0.1 255.255.255.0 UG 0 0 0 tap0
10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
再好不过了。我在 tap0 界面上看到的唯一活动类型(在本例中为 ping)是这样的:
tcpdump -i tap0 -n -X -s0:
16:42:03.494457 ARP, Request who-has 10.0.0.1 tell 172.16.0.59, length 28
0x0000: 0001 0800 0604 0001 36a9 3a07 b95d ac10 ........6.:..]..
0x0010: 003b 0000 0000 0000 0a00 0001 .;..........
16:42:04.491415 ARP, Request who-has 10.0.0.1 tell 172.16.0.59, length 28
0x0000: 0001 0800 0604 0001 36a9 3a07 b95d ac10 ........6.:..]..
0x0010: 003b 0000 0000 0000 0a00 0001 .;..........
16:42:05.491419 ARP, Request who-has 10.0.0.1 tell 172.16.0.59, length 28
0x0000: 0001 0800 0604 0001 36a9 3a07 b95d ac10 ........6.:..]..
0x0010: 003b 0000 0000 0000 0a00 0001 .;..........
16:42:06.508946 ARP, Request who-has 10.0.0.1 tell 172.16.0.59, length 28
0x0000: 0001 0800 0604 0001 36a9 3a07 b95d ac10 ........6.:..]..
0x0010: 003b 0000 0000 0000 0a00 0001
事实上,IP 172.16.0.59 上的 ARP 请求响应令我感到困惑。
当远程主机访问客户端时,tap0 活动保持为空。
所以,我想问,问题出在哪里?客户端-主机不兼容?配置错误?客户端软件有漏洞?某个地方的防火墙(在哪里?)?我还能在哪里找到有关正在发生的事情的日志和信息?
答案1
已解决:/etc/rc.local 仍然有一些与 nat 相关的 iptables 规则有效,阻止了 vpn 接口
奇怪,因为 iptables -L 在运行时没有显示任何内容。
以下是确凿的规则:
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
在 Windows 和其他 Debian 上试用了 Shrew 客户端后,一切都很顺利,所以我开始查看当前版本出了什么问题。不过确实花了我好几天的时间。