我的 OpenVPN 设置遇到一些问题。
设置: -> Ubuntu Server 12.04 -> 两个活动网卡: eth0(默认):192.168.1.0/24 eth1:xxxx(外部 IP)
我已经设法让路由正常工作,这样我就可以使用 eth1 网卡连接到外部世界。
holmen@filserver:~$ ping -I eth1 -c 3 www.linuxquestions.org
PING www.linuxquestions.org (75.126.162.205) from 192.168.1.2 eth1: 56(84) bytes of data.
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=1 ttl=50 time=133 ms
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=2 ttl=50 time=133 ms
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=3 ttl=50 time=133 ms
--- www.linuxquestions.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 133.281/133.336/133.379/0.423 ms
One curious thing is that the "from ip #". It says "from 192.168.1.2 eth1" but that ip is the servers ip on the eth0 iface.
网络统计:
holmen@filserver:~$ netstat -anr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
x.x.x.x 0.0.0.0 255.255.128.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
但真正的问题来了: 当使用选项“local xxxx (eth1 ext ip)”设置 openvpn 时,它仍然通过 eth0 接口建立隧道。我不明白为什么。
OpenVPN 设置:
client
dev tap
proto udp
local x.x.x.x
remote openvpn.anonine.net 1194
remote openvpn.anonine.net 1195
remote openvpn-2.anonine.net 1196
remote openvpn-2.anonine.net 1197
remote openvpn-3.anonine.net 1198
remote openvpn-3.anonine.net 1199
remote openvpn-4.anonine.net 1200
remote openvpn-4.anonine.net 1201
remote-random
resolv-retry infinite
auth-user-pass
persist-key
persist-tun
ca anonine.ca.crt
ns-cert-type server
comp-lzo
reneg-sec 0
verb 3
Netstat(隧道活动):
holmen@filserver:~$ netstat -anr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 46.246.20.129 128.0.0.0 UG 0 0 0 tap0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
x.x.x.x 0.0.0.0 255.255.128.0 U 0 0 0 eth1
46.246.20.128 0.0.0.0 255.255.255.128 U 0 0 0 tap0
80.67.8.222 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 46.246.20.129 128.0.0.0 UG 0 0 0 tap0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
有人有什么想法吗?
答案1
你需要用这样的东西更新你的 iptables。其中 xxxx 是您的 VPN 子网
iptables -t nat -A POSTROUTING -s x.x.x.x/24 -o eth1 -j SNAT --to ip_of_eth1
答案2
我设法通过两个主要步骤解决了这个问题:
- 选择使用TUN接口的服务提供商。
- 多一点表路由
表路由
我已经阅读了最有用的方法http://lartc.org/howto/并按照那里提供的步骤进行操作。
我的设置现在是两个物理网卡(eth0 和 eth1),分为三个表(main、T1 和 T2)。 T1(eth1) 路由默认内容(apache2、ssh 等),T2(eth0) 仅用于 rtorrent 连接。
它就像一个魅力。因此,如果您有同样的问题,请阅读 lartc.org,问题将会得到解决。
笔记
我还没有在 TAP 接口上尝试过这个配置,所以我不能说它是否有效。