我的本地网络中有 Linux 虚拟机,OpenVPN 可以完美运行。假设我的主网关(实际上是路由器)是192.168.1.1
,VM ip 是192.168.1.15
。这是我在连接互联网的接口上的虚拟机网络设置:
auto eth0
iface eth0 inet static
address 192.168.1.15
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
route -n
OpenVPN 启动前的输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.60.165.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
OpenVPN 启动后:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 10.80.165.1 255.255.255.0 UG 0 0 0 game
10.60.0.0 10.80.165.1 255.252.0.0 UG 0 0 0 game
10.60.165.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.80.0.0 10.80.165.1 255.252.0.0 UG 0 0 0 game
10.80.165.1 0.0.0.0 255.255.255.255 UH 0 0 0 game
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
我需要从其他机器通过虚拟机连接到IP 10.80.156.1
。因此,我将其他机器上的网关设置为VM的IP。我可以通过这种方式访问互联网,但地址10.80.156.1
无法访问。
UPD:iptables -L -n
输出:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
我不相信您可以从任何使用 192.168.1.15 作为默认网关的计算机访问互联网。你必须nat连接:
iptables -A POSTROUTING -t nat -j MASQUERADE