我有一个 OpenVPN 设置,其中有一个 Linux 服务器和一个 Windows 客户端,采用 Tap 模式,通过 UDP 进行连接。端口 1194 一切正常。但我想改为端口 500。
在防火墙上,我将端口 500 UDP 转发到相应的路由器。为了证明我的网络设置正确,我在服务器上使用:nc -l -u -p 500
并在客户端上使用echo hello | nc -u server 500
。
果然,在服务器上:
nc -l -u -p 500
hello
现在我port 500
在客户端和服务器配置中添加了行,突然客户端假装无法访问任何内容(我应该检查网络连接):
Mon Apr 25 19:21:37 2016 UDPv4 link local (bound): [undef]
Mon Apr 25 19:21:37 2016 UDPv4 link remote: [AF_INET]server:500
Mon Apr 25 19:22:37 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Apr 25 19:22:37 2016 TLS Error: TLS handshake failed
但这很愚蠢,除了 500 以上的 UDP 与 netcat 完美配合之外,服务器也看到了连接请求但失败了:
Apr 26 04:56:49 radix ovpn-server[465865]: client:44294 LZO compression initialized
Apr 26 04:56:49 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
Apr 26 04:56:52 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
Apr 26 04:56:55 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
Apr 26 04:56:55 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
Apr 26 04:57:03 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
Apr 26 04:57:19 radix ovpn-server[465865]: read UDPv4 [EHOSTUNREACH]: No route to host (code=113)
我认为我可以排除任何与网络相关的问题。另外,请注意,连接工作正常,但在某个随机点开始失败。
作为参考,我添加了我的配置文件:
客户:
client
remote server
rport 500
proto udp
resolv-retry infinite
dev tap
dev-node "OpenVPN"
tap-sleep 3
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
comp-noadapt
ns-cert-type server
mute 5
verb 2
服务器:
mode server
tls-server
keepalive 5 30
local 192.168.200.1
proto udp
port 500
persist-key
user nobody
group nogroup
dev tap0
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/server.crt"
key "/etc/openvpn/server.key"
dh "/etc/openvpn/dh1024.pem"
mute-replay-warnings
client-to-client
comp-lzo
comp-noadapt