OpenVPN的TLS握手失败 – 它可能是什么?

我在两个完全不同的networking上有两个非常不同的客户端,都无法连接到新configuration的OpenVPN服务器,这两个客户端在服务器上导致日志条目如下:

Aug 8 20:37:15 myserver ovpn-server[3797]: 12.34.56.78:48573 TLS: Initial packet from [AF_INET]12.34.56.78:48573, sid=80063aef 9e45c93a Aug 8 20:38:15 myserver ovpn-server[3797]: 12.34.56.78:48573 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) Aug 8 20:38:15 myserver ovpn-server[3797]: 12.34.56.78:48573 TLS Error: TLS handshake failed Aug 8 20:38:15 myserver ovpn-server[3797]: 12.34.56.78:48573 SIGUSR1[soft,tls-error] received, client-instance restarting 

客户端是在连接到NAT ADSL路由器的* buntu便携式计算机上的OpenVPN,以及具有内置OpenVPN客户端的3G / 4G WWAN路由器。

以下是我目前检查的内容:

  • 防火墙是开放的(呃,TLS握手甚至会开始)
  • 时间/date在两端正确设置
  • OpenVPN客户端是最新的(至less在笔记本电脑上,很难检查3G / 4G路由器)
  • UDP端口号在协商的生命周期内不会改变(请参阅上面的日志)

什么ELSE可能造成这种情况?

编辑:所以,情节变厚…无奈之下,我试图改变整个configuration链,而不是使用TCP,否则保持原样。 砰! 我* buntu笔记本电脑上的OpenVPN客户端能够直接连接。 但是当3G / 4G路由器的OpenVPN客户端甚至不支持TCP传输时该怎么办? 我还没有在这里完成!

编辑:只是在这里明确; 我改变了件事情,以使其工作:

  1. 编辑OpenVPN的configuration说proto tcp而不是proto udp并重新启动OpenVPN
  2. 向服务器的iptables防火墙添加了一个新的规则,以允许TCP 1194 – 否则与允许UDP 1194的现有规则相同
  3. 在我的笔记本电脑所连接的路由器上的防火墙规则的服务定义上编辑协议,以允许TCP 1194出站,而不是UDP 1194出站(只是一个真正的下拉框)
  4. 通过networkingpipe理器编辑我的笔记本电脑上的OpenVPN连接信息,并选中Use a TCP connectioncheckbox

每个其他的设置和configuration都以前一样。

编辑:我有一个鬼鬼祟祟的怀疑,在我的VPN服务器上UDPstream量的路由发生了一些奇怪的事情; OpenVPNconfiguration绑定的IP地址不是服务器的主IP地址,事实上它甚至不在同一个子网上。 以下是路由表的样子:

 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 11-22-33-1.thing 0.0.0.0 UG 0 0 0 eth0 22.33.44.0 * 255.255.255.0 U 0 0 0 eth0 10.8.0.0 * 255.255.255.0 U 0 0 0 tun0 11.22.33.0 * 255.255.255.0 U 0 0 0 eth0 $ ip route default via 11.22.33.1 dev eth0 onlink 22.33.44.0/24 dev eth0 proto kernel scope link src 22.33.44.55 10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 11.22.33.0/24 dev eth0 proto kernel scope link src 11.22.33.44 

22.33.44.55 IP地址稍后分配,是OpenVPN绑定的IP地址。 现在我第一个承认,我几乎知道IP路由,但是可能是因为它没有自己的默认路由而导致“新”IP地址上的UDPstream量丢失了,或者什么东西?

原来我是正确的:OpenVPN的server.configlocal 22.33.44.55选项丢失。 添加它并重新启动OpenVPN解决了这个问题,UDP传输现在在我的从IP上。 没有它,OpenVPN的响应是通过默认的IP发送的 – 尽pipe我不明白为什么这也不能阻止TCP工作。 小学生的错误,如果你喜欢,但我使用的OpenSSLconfiguration脚本( https://github.com/Angristan/OpenVPN-install没有要求在设置过程中使用的IP地址,所以我只是假定这已经configuration正确。