路由器(Tomato)正常连接VPN,且能ping和访问,PC客户端无法访问
本帖最后由 microant 于 2012-10-20 19:20:48 编辑 Tomato + OpenVPN + Win7 64,VPN gateway是192.168.2.29,10.0.0.0是VPN后的子网。 192.168.1.100则是本地Gateway。
现状是SSH到Tomato上后能正常ping和访问该子网内的IP(telnet可以得到正常的响应),但连接到该Tomato的PC客户端上则无法访问。
从PC上tracert超10跳都无法连接VPN子网IP,而192.168.2.29也无法连接。 但P2P里本地对应的IP 192.168.2.30能在PC上正常访问。
此外,已排除防火墙、杀毒软件的影响;Tomato上的PPTP客户端工作正常;OpenVPN其他人直接在桌面使用能正常访问。
请教如何才能解决这个问题?
Tomato路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.29 0.0.0.0 255.255.255.255 UH 0 0 0 tun11
124.74.22.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.0.0 192.168.2.29 255.255.255.0 UG 0 0 0 tun11
10.0.0.0 192.168.2.29 255.255.255.0 UG 0 0 0 tun11
192.168.2.0 192.168.2.29 255.255.255.0 UG 0 0 0 tun11
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 116.237.117.xxx 0.0.0.0 UG 0 0 0 ppp0
PC路由表:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.1.100 192.168.1.2 30
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 306
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 306
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 306
192.168.1.0 255.255.255.0 在链路上 192.168.1.2 286
192.168.1.2 255.255.255.255 在链路上 192.168.1.2 286
192.168.1.255 255.255.255.255 在链路上 192.168.1.2 286
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 306
224.0.0.0 240.0.0.0 在链路上 192.168.1.2 286
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 306
255.255.255.255 255.255.255.255 在链路上 192.168.1.2 286
Tomato上ping:
PING 10.0.0.120 (10.0.0.120): 56 data bytes
64 bytes from 10.0.0.120: seq=0 ttl=62 time=52.055 ms
64 bytes from 10.0.0.120: seq=1 ttl=62 time=47.364 ms
Tomato上traceroute:
root@unknown:/tmp/home/root# traceroute 10.0.0.120
traceroute to 10.0.0.120 (10.0.0.120), 30 hops max, 38 byte packets
1 192.168.2.1 (192.168.2.1) 75.395 ms 60.971 ms 63.259 ms
2 192.168.2.1 (192.168.2.1) 63.930 ms !C 61.854 ms !C 63.016 ms !C
root@unknown:/tmp/home/root#
PC上ping:
正在 Ping 10.0.0.120 具有 32 字节的数据:
请求超时。
请求超时。
PC上tracert:
C:\Windows\system32>TRACERT 10.0.0.120
通过最多 30 个跃点跟踪到 10.0.0.120 的路由
1 2 ms 1 ms 1 ms unknown [192.168.1.100]
2 * * * 请求超时。
3 * * * 请求超时。
4 * * * 请求超时。
5 * * * 请求超时。
6 * * * 请求超时。
...
[解决办法]
自顶。 最后确定是NAT导致的,在Tomato上加个规则让内网请求走VPN前往相应子网,而不是基于NAT走wan口出去。 路由模式下就没这个问题了。
执行以下命令后就通了:
/usr/sbin/iptables -A POSTROUTING -t nat -o tun11 -d 10.0.0.0/24 -s 192.168.1.0/24 -j MASQUERADE