如果客户端使用 VPN,某些服务器将不会回复 SYN

如果客户端使用 VPN,某些服务器将不会回复 SYN

我们有一些 ubuntu 18.04 服务器(物理服务器和虚拟机),它们会忽略通过 VPN 连接到我们内联网的客户端的 ping 和 TCP 连接。

只有全新安装的 18.04 才会出现此问题(从 16.04 升级到 18.04 则没有问题)。

我是一名软件开发人员,不是网络/系统管理员。这些是测试服务器 - 我们的 IT 部门无意研究这个问题(并且不习惯使用 Windows)。我无法访问任何公司网络基础设施或设置。

我有两台物理服务器:

  • serverA:172.24.8.114 ubuntu 18.04(从 16.04 升级)。这样就行了。
  • serverB:172.24.8.96 ubuntu 18.04(全新安装)。VPN 客户端无法使用。

如果我在 172.24.8.X 子网上(即在办公室),我可以 ping 和 curl/ssh 到服务器 A 和服务器 B 如果我在家工作(Windows 笔记本电脑,带有 WSL 和 Linux VM),我在 10.50.50.X 子网上,我只能 ping 和 curl/ssh 到服务器 A。VPN 是 Sonicwall NetExtender(工作要求)。

当尝试与服务器 B 建立 TCP 连接时,服务器 B 会收到 SYN,但不会回复 SYN-ACK。3 秒后会出现 TCP 重传。同样,ping ICMP 请求也会收到,但不会回复。(使用 tshark/wireshark 确认)

但我看不出服务器 A 和服务器 B 之间有什么区别会导致这种情况。这不是硬件问题 - 其他服务器虚拟机也存在同样的问题。

没有任何建议服务器未发送 SYN/ACK 数据包来响应 SYN 数据包工作了。

  • sysctl设置基本相同。
  • ufw处于非活动状态。
  • iptables -L本质上是一样的。

我还应该查看什么来确定为什么可以从任何地方 ping 服务器 A 并建立 TCP 连接,但服务器 B 只会响应 ping 并从其本地子网建立 TCP 连接?

编辑:ss -tan显示 serverB 上没有处于 SYN_RECV 状态的套接字。serverA 和 serverB 都可以 ping 通并与我的笔记本电脑建立 TCP 连接。tshark用于收集 serverA 和 serverB 上的数据包,然后复制并使用 wireshark 进行分析。

答案1

在具有多个 NIC 的机器上,有时 SYN/ACK 会被发送到其他网络,而不是 SYN 来自的网络。

netplan 文件中需要有明确的路由。请参阅https://askubuntu.com/questions/1030527/multiple-nics-under-ubuntu-18-04

答案2

我看到了完全相同的问题。在我们的案例中,这似乎是“docker”接口的问题。如果这些接口关闭,那么我们就可以连接到服务。

相关内容