我有一个debian 64位的VPS,OpenVZ,完美的OpenVPN服务器。
我有额外的IP,我想在同一个openvpn服务器上使用,我不能使它的工作。 只有在openvpn.conf指定了“local ADDITIONAL-IP”指令,但是第一个IP不起作用时,它才起作用。 如果我两次指定“本地”指令,则不能工作。
root@deal1:/etc/openvpn# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1338 (1.3 KiB) TX bytes:1338 (1.3 KiB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.186.35.1 PtP:10.186.35.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.186.36.1 PtP:10.186.36.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.2 PtP:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: 2607:ff28:0:12::c4e:18e5/128 Scope:Global inet6 addr: 2607:ff28:0:12::2ad7:f2b1/128 Scope:Global inet6 addr: 2607:ff28:0:12::86d5:56d4/128 Scope:Global inet6 addr: 2607:ff28:0:12::9d21:aba3/128 Scope:Global UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:38904 errors:0 dropped:0 overruns:0 frame:0 TX packets:20408 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:53671396 (51.1 MiB) TX bytes:1712747 (1.6 MiB) venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:X.2.39.161 PtP:X.2.39.161 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 venet0:5 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:X.2.39.162 PtP:X.2.39.162 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
iptables的:
-A POSTROUTING -s 10.186.35.0/24 -j SNAT --to-source X.2.39.161 -A POSTROUTING -s 10.186.35.0/24 -j SNAT --to-source X.2.39.162
openvpnconfiguration:
server 10.186.35.0 255.255.255.0 port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh1024.pem ifconfig-pool-persist ipp.txt #push "route 0.0.0.0 0.0.0.0" #push "redirect-gateway" push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.220.220" push "dhcp-option DNS 208.67.222.222" keepalive 10 120 comp-lzo user nobody group users persist-key persist-tun status openvpn-status.log verb 3 script-security 3 auth-user-pass-verify /etc/openvpn/auth-chap via-env client-cert-not-required duplicate-cn management 127.0.0.1 51194
任何想法我错过了什么? 我已经尝试了很多东西,search了很多,在googleable的互联网上根本就没有解决scheme。
男子openvpn:
– 本地
主机本地主机名或绑定的IP地址。 如果指定,OpenVPN将只绑定到这个地址。 如果未指定,OpenVPN将绑定到所有接口。
所以,如果你不指定任何“本地”指令,openvpn服务器将监听所有接口。 你可以用netstat -nlp来检查。 你应该看到像这样的东西:
udp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN 2005 / openvpn
将协议更改为tcp并尝试连接到两个地址的1194端口。 如果你有问题,错误是在路由规则的某处。
您需要--multihome选项。
不要使用--local因为它与多宿主的情况不兼容。
此外,您需要100%确定您的路由表是一个多宿主设置好。 Linux用户应该检查他们的分发细节,特别是:
/sbin/ip rule list
您应该看到客户端可以连接的每个特定IP地址至less有一条规则。 如果所有的规则都是“全部”,并且只有local,main,default作为路由表,那么这还不够。