我有一台具有公共 IP 地址的服务器。我们将其称为 $EXTERNAL。在该服务器上,我有一个 OpenVpn 服务器。
服务器设置为运行网络:
server 10.14.0.0 255.255.255.0
我有一台运行 Tomato 固件的路由器,该路由器已连接 OpenVpn 客户端。该路由器的局域网为 10.1.1.0/24。以下是路由器的路由表:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.14.0.9 0.0.0.0 255.255.255.255 UH 40 0 0 tun11
192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 vlan1
10.1.1.0 0.0.0.0 255.255.255.0 U 40 0 0 br0
10.14.0.0 10.14.0.9 255.255.255.0 UG 40 0 0 tun11
127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 40 0 0 vlan1
我可以从路由器 ping 10.14.0.1。我可以通过以下方式 ssh 进入我的外部服务器:
me@tomato>$ ssh 10.14.0.1
和
me@tomato>$ ssh $EXTERNAL
但是,从 10.1.1.x 网络上的计算机,我无法通过其 vpn ip 访问 vpn 服务器。
[email protected]>$ ssh 10.14.0.1
失败,但是
[email protected]>$ ssh $EXTERNAL
成功。
另外,我不知道这是否相关,但从路由器来看,
me@tomato>$ telnet 10.14.0.1 80
失败,但是
me@tomato>$ telnet $EXTERNAL 80
成功。
答案1
您需要在 VPN 服务器上添加到 10.1.1.0/24 的路由,以便客户端能够访问它:
root@vpn-server:~# ip route add 10.1.1.0/24 via 10.14.0.9