Ubuntu

在連接到網際網路的介面上共享 openvpn 連接

  • November 9, 2016

我的本地網路中有 Linux 虛擬機,OpenVPN 完美執行。假設我的主要網關(實際上是路由器)是192.168.1.1,VM ip 是192.168.1.15。這是我在連接到 Internet 的介面上的 VM 網路設置:

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 -nOpenVPN 啟動前的輸出:

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

從其他機器我需要10.80.156.1通過VM連接到ip。因此,我將其他機器上的網關設置為 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 

我不相信您可以從任何使用 192.168.1.15 作為預設網關的機器訪問網際網路。您必須建立連接:

iptables -A POSTROUTING -t nat -j MASQUERADE

引用自:https://unix.stackexchange.com/questions/322118