OpenVPN 苦苦挣扎

OpenVPN 苦苦挣扎

我的 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

我设法通过两个主要步骤解决了这个问题:

  1. 选择使用TUN接口的服务提供商。
  2. 多一点表路由

表路由

我已经阅读了最有用的方法http://lartc.org/howto/并按照那里提供的步骤进行操作。

我的设置现在是两个物理网卡(eth0 和 eth1),分为三个表(main、T1 和 T2)。 T1(eth1) 路由默认内容(apache2、ssh 等),T2(eth0) 仅用于 rtorrent 连接。

它就像一个魅力。因此,如果您有同样的问题,请阅读 lartc.org,问题将会得到解决。

笔记

我还没有在 TAP 接口上尝试过这个配置,所以我不能说它是否有效。

相关内容