我正在 Windows 2012 服务器上配置 OpenVPN(版本 2.3.10)服务器,但无法使其正常工作。
服务器在路由器后面,我打开了 1194 端口并创建了一个规则来将此端口上的流量转发到服务器。
这是我尝试从客户端连接时在服务器上看到的日志:
Mon Mar 21 11:11:47 2016 XX.XX.XX.XX:57804 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:57804, sid=fdf7a7ac 0264c7f3
Mon Mar 21 11:12:38 2016 XX.XX.XX.XX:55938 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:55938, sid=1f242a3f e454a525
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS handshake failed
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 SIGUSR1[soft,tls-error] received, client-instance restarting
Run Code Online (Sandbox Code Playgroud)
其中 XX.XX.XX.XX 是客户端的 ip。所以我从中了解到客户端至少能够到达服务器,所以没有路由或防火墙问题。
我遵循了此处提供的描述 Easy Windows Guide 有什么想法吗?
Mad*_*ter 28
有趣的是端口号是如何在中途变化的:
2016 年 3 月 21 日星期一 11:11:47 XX.XX.XX.XX:57804 TLS:来自 [AF_INET]XX.XX.XX.XX 的初始数据包:57804,sid=fdf7a7ac 0264c7f3
Mon Mar 21 11:12:38 2016 XX.XX.XX.XX: 55938 TLS: 来自 [AF_INET]XX.XX.XX.XX:55938, sid=1f242a3f e454a525 的初始数据包
这让我觉得,在客户端和服务器之间的某个地方,有一个行为异常的 NAT 设备,该设备具有非常短的状态表条目,它正在更改它应用于客户端已建立的流的源端口号,导致服务器认为正在进行两次短暂的交流,而不是一次连续的交流。
此类设备通常仅使用 UDP 执行此操作,因此我建议您确认您使用的是 UDP,并尝试使用 TCP。您已完成此操作,并发现它解决了问题。下一步是识别行为不端的 NAT 设备,用锤子敲打它,然后将其替换为不会犯假设所有 UDP 通信都是短暂的主要错误的设备;但是您表示您很高兴更改为 TCP 作为一种解决方法,因此该问题已结束。
这是设置 Openvpn 时最常见的错误之一,有一个常见问题解答条目。我要在这里引用这个:
TLS 错误:TLS 密钥协商未能在 60 秒内发生(检查您的网络连接)
设置 OpenVPN 时最常见的问题之一是连接任一侧的两个 OpenVPN 守护进程无法相互建立 TCP 或 UDP 连接。
这几乎是以下原因造成的:
- 服务器网络上的外围防火墙正在过滤传入的 OpenVPN 数据包(默认情况下 OpenVPN 使用 UDP 或 TCP 端口号 1194)。
- 在 OpenVPN 服务器机器上运行的软件防火墙本身正在过滤端口 1194 上的传入连接。请注意,除非另有配置,否则许多操作系统默认会阻止传入连接。
- 服务器网络上的 NAT 网关没有 TCP/UDP 1194 到 OpenVPN 服务器机器内部地址的端口转发规则。
- OpenVPN 客户端配置在其配置文件中没有正确的服务器地址。客户端配置文件中的远程指令必须指向服务器本身或服务器网络网关的公共 IP 地址。
- 另一个可能的原因是 Windows 防火墙阻止了对 openvpn.exe 二进制文件的访问。您可能需要将其列入白名单(将其添加到“例外”列表中)才能让 OpenVPN 正常工作。
在您的情况下,这些中的任何一个很可能也会导致相同的问题。所以只好一一翻阅清单来解决。
参考:TLS 错误:TLS 密钥协商未能在 60 秒内发生(检查您的网络连接)
| 归档时间: |
|
| 查看次数: |
196247 次 |
| 最近记录: |