로컬 네트워크에 Linux VM이 있고 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