SSH 在 OpenVPN 上超时,直到目标被 ping 通

SSH 在 OpenVPN 上超时,直到目标被 ping 通

我有一个看似非常标准的 OpenVPN 设置。在服务器端,我将 LAN 暴露给远程客户端并推送路由。我在服务器端网关中设置了静态路由,将发往 VPN 子网的请求指向 OpenVPN 服务器等。

不过,我的行为一直不稳定。例如,很多时候从 VPN 客户端到 OpenVPN 服务器 LAN 上的机器的 ssh 连接都会超时。我可以相当反复地让它们超时,直到我 ping 目标一次。每次我这样做时,第一次 ping 都会超时,后续 ping 都会成功,然后我就可以 ssh 了。

我尝试使用 LinuxMint 20.1(服务器上的发行版)附带的 OpenVPN 2.4 服务器,也尝试过从源代码编译的 OpenVPN 2.5.6,似乎得到了相同的结果。

这是我的设置,供参考:

服务器的局域网

Gateway: 192.168.1.1 - has static route [ 10.8.0.0/24 via 192.168.1.31 ]
OpenVPN Server: 192.168.1.31
    - ipv4 forwarding on
    - promisc mode on for LAN interface
    - ufw configured to allow all to ports 1194/udp, 22/tcp, and forwarding in both directions between tun0 and LAN interface)
192.168.1.121 - my daily driver (Linux) with SSH on - no firewall rules defined
192.168.1.16 - another Linux box with SSH on - no firewall rules defined
192.168.1.17 - a Windows 10 box with remote desktop enabled and the windows firewall turned off

客户端局域网

Network Address: 192.168.11.0/24
1 Linux Client on DHCP
1 Windows Client on DHCP

我尝试从 VPN 客户端连接到 IP 为 192.168.1.16 和 192.168.1.121 的盒子,并且它们表现出上述行为。

另一个奇怪的现象是,当尝试使用 rdesktop 连接到 192.168.1.17 上的 RDP 时,Linux VPN 客户端始终出现 GnuTLS 超时并失败。具有完全相同 VPN 配置的 Windows VPN 客户端始终可以连接到该机器上的 RDP。

我很乐意发布任何相关的配置文件或命令输出,但我不想一开始就把它们全部转储到这里,因为它们太长了,我想知道其他人是否也遇到过这种情况。我的 OpenVPN 配置文件大多是默认的,只设置了正常的东西 - 键名称、VPN 服务器的远程 IP、推送“路由...”指令等。

答案1

好的,我找到了问题。原来我的客户端配置文件中有一个错误。在服务器配置文件中,我禁用了压缩。我想法我在客户端中已经这样做了,但当我第一百次回读配置时,我注意到我已经取消了 comp-lzo 行的注释,但未能在其后附加“no”。

我猜这似乎有点奇怪,在服务器配置中禁用压缩后它可以工作,但在客户端却不行,但正确处理这一部分似乎已经解决了这些奇怪的问题。

相关内容