Ubuntu

OpenVPN苦苦掙扎

  • January 24, 2013

我的 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
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. 選擇使用 TUN 介面的服務提供商。
  2. 多一點表路由

表路由

我在http://lartc.org/howto/上閱讀了最有用的方法,並按照那裡提供的步驟進行操作。

我的設置現在是兩個物理網卡(eth0 和 eth1),分為三個表(主、T1 和 T2)。T1(eth1) 路由預設的東西(apache2、ssh 等),而 T2(eth0) 僅用於 rtorrent 連接。

它就像一個魅力。因此,如果您在 lartc.org 上閱讀了相同的問題,問題就會得到解決。

筆記

我沒有用 TAP 介面嘗試過這個配置,所以我不能說它是否有效。

你需要用這樣的東西更新你的 iptables。其中 xxxx 是您的 VPN 子網

iptables -t nat -A POSTROUTING -s x.x.x.x/24 -o eth1 -j SNAT --to ip_of_eth1

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