OpenVPN 服务器,UDP 端口不再可访问

OpenVPN 服务器,UDP 端口不再可访问

我在使用 OpenVPN 时遇到了一个奇怪的问题。服务器运行良好,除了更新外,很长时间没有修改过。它突然停止工作,我不知道为什么。我无法从 domU 或本地计算机远程访问其 UDP 端口。我可以访问所有其他服务。

我尝试禁用 iptables 以进行实验,但仍然无法访问该端口。我看不出 OpenVPN 配置有什么问题。运行netstat -lp | grep openvpn显示端口正在监听。但我甚至无法从本地机器访问它。

这是 OpenVPN 配置:http://pastebin.com/Gq8CDwVK

以下是输出iptables -nvLhttp://pastebin.com/5MCqTWCE

以下是输出iptables -nvL -t nathttp://pastebin.com/XxFf0Kb4

我想我已经排除了所有其他可能的原因。请帮我进一步诊断这个问题。

这是服务启动的日志...

Tue Apr 28 07:04:39 2015 us=123021 OpenVPN 2.3.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Apr 27 2015
Tue Apr 28 07:04:39 2015 us=123031 library versions: OpenSSL 1.0.1l 15 Jan 2015, LZO 2.08
Tue Apr 28 07:04:39 2015 us=127292 Diffie-Hellman initialized with 2048 bit key
Enter Private Key Password:
Tue Apr 28 07:04:47 2015 us=695418 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue Apr 28 07:04:47 2015 us=698002 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Tue Apr 28 07:04:47 2015 us=698025 Socket Buffers: R=[212992->131072] S=[212992->131072]
Tue Apr 28 07:04:47 2015 us=698114 ROUTE_GATEWAY 167.114.15.64/255.255.255.0 IFACE=eth0 HWADDR=ba:e5:54:4f:ef:d7
Tue Apr 28 07:04:47 2015 us=698259 TUN/TAP device tun0 opened
Tue Apr 28 07:04:47 2015 us=698294 TUN/TAP TX queue length set to 100
Tue Apr 28 07:04:47 2015 us=698317 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Apr 28 07:04:47 2015 us=698340 /bin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Tue Apr 28 07:04:47 2015 us=699313 /bin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Tue Apr 28 07:04:47 2015 us=699853 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Tue Apr 28 07:04:47 2015 us=700326 GID set to openvpn
Tue Apr 28 07:04:47 2015 us=700368 UID set to openvpn
Tue Apr 28 07:04:47 2015 us=700394 UDPv4 link local (bound): [AF_INET]167.114.15.70:1194
Tue Apr 28 07:04:47 2015 us=700407 UDPv4 link remote: [undef]
Tue Apr 28 07:04:47 2015 us=700422 MULTI: multi_init called, r=256 v=256
Tue Apr 28 07:04:47 2015 us=700460 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Tue Apr 28 07:04:47 2015 us=700480 ifconfig_pool_read(), in='client-johntate,10.8.0.4', TODO: IPv6
Tue Apr 28 07:04:47 2015 us=700498 succeeded -> ifconfig_pool_set()
Tue Apr 28 07:04:47 2015 us=700511 ifconfig_pool_read(), in='client-lucasmarshall2,10.8.0.8', TODO: IPv6
Tue Apr 28 07:04:47 2015 us=700521 succeeded -> ifconfig_pool_set()
Tue Apr 28 07:04:47 2015 us=700531 ifconfig_pool_read(), in='client-testuser4,10.8.0.12', TODO: IPv6
Tue Apr 28 07:04:47 2015 us=700543 succeeded -> ifconfig_pool_set()
Tue Apr 28 07:04:47 2015 us=700556 IFCONFIG POOL LIST
Tue Apr 28 07:04:47 2015 us=700570 client-obfuscated1,10.8.0.4
Tue Apr 28 07:04:47 2015 us=700582 client-obfuscated2,10.8.0.8
Tue Apr 28 07:04:47 2015 us=700593 client-obfuscated3,10.8.0.12
Tue Apr 28 07:04:47 2015 us=700632 Initialization Sequence Completed

编辑:我做了进一步的测试,发现系统根本无法监听 UDP。即使防火墙已禁用。这根本说不通。为了进行测试,我曾经socat监听 UDP,然后hping对其进行测试。

答案1

是加拿大的 VPS (OVH) 吗?如果是,那么您应该联系您的支持人员。您的设置对我来说看起来非常正常。根据 iptables 计数器转储,OS 内核未在 openvpn 端口 (1194/UDP) 上收到任何内容。对我来说,这像是连接问题。这就是 openvpn 无法正常工作的原因。您无法诊断它,只有您的提供商可以。他们通常使用复杂的设置来最大限度地降低成本并提供最佳的公共 IP 地址分配。在那里很容易犯一些错误。

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
15 3291 ACCEPT all -- * * 10.8.0.0/24 0.0.0.0/0
217M 74G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3155K 189M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
53874 3814K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 357K 12M ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 ctstate NEW 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 305K 68M UDP udp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW 3802K 204M TCP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 ctstate NEW 290K 67M REJECT udp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable 125K 6870K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-proto-unreachable 0 0 sshguard all -- * * 0.0.0.0/0 0.0.0.0/0

你能提供ifconfig -a输出吗?你也可以查看 tcpdump/wireshark 输出。它应该可以证明我所说的。你可以尝试通过以下方式查找可用的 udp 端口​​:

@ 服务器

tshark -i ethX udp or tshark -i ethX -f 'udp' depending on version

@ 一些客户

nmap -sU server's_IP_address -p 1-65535

并观察服务器的输出。这应该会告诉您哪些 UDP 端口是打开的。要测试 OpenVPN,您可以切换到 TCP,这将排除 OpenVPN 配置问题并暂时提供备份连接。

还有祝你好运!

相关内容