我的 OpenVPN 设置遇到了一些问题。
设置: -> Ubuntu Server 12.04 -> 两个活动 NIC:eth0(默认):192.168.1.0/24 eth1:xxxx(外部 ip)
我已设法使路由正常工作,以便我可以使用 eth1 NIC 连接到外界。
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
5.150.128.0 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
你的netstat
节目VPN 服务器提供商重定向客户端网关(这是VPN 匿名服务)这意味着它将隧道全部流量,无论哪个接口是源。您需要的是route-nopull
客户端配置,它将阻止服务器更改您的路由表,从而允许您手动创建所需的路由。
答案2
如果我理解正确的话,您希望 OpenVPN 客户端遵循特定的路由,对吗?如果是这样,请尝试将其添加到服务器配置中。我已将我的一个测试实验室的服务器配置包含在以下配置中,我将本地添加<ext eth1 ip>
到服务器配置中:
local xxx.xxx.xxx.xxx
port 443
proto tcp
dev tap1
ca cacert.pem
cert servercert.pem
key servercert-unencr.key
dh dh1024.pem
persist-key
persist-tun
keepalive 20 120
tun-mtu 1500
server-bridge 192.168.200.1 255.255.255.0 192.168.200.10 192.168.200.15
ifconfig-pool-persist ipp-generic.txt
comp-lzo
duplicate-cn
daemon
verb 3
#redirect-gateway def1
push "route 192.168.100.0 255.255.255.0"
log-append /etc/openvpn/logs/ovpn-generic.log
up /etc/openvpn/ifconfig-tap1.sh
cd /etc/openvpn
push "dhcp-option DOMAIN lab.test"
push "dhcp-option NBT 2"
push "dhcp-option DNS 192.168.100.1"
push "dhcp-option DNS 4.2.2.2"
script-security 3 system
如果您有任何问题,我会更新。
更新:您的路由表中有一个条目,它将所有流量指向通过 eth0 接口:
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
应该将其更改为 eth1 Iface 和eth1
网关的 IP,或者将其完全删除,因为您已经有本地网络的路由,并且它与您的其他默认路由冲突:
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
我的有根据的猜测是目的地是相同的,但第二个条目优先。