解决连接超时和 SYN_RECV 问题

解决连接超时和 SYN_RECV 问题

我的 DigitalOcean droplet 经常无法连接到不同的资源,例如使用 curl 进行 REST 调用或建立 SSH 连接。

SYN_RECV每次发生这种情况时,我都能看到我想要访问的远程机器上的套接字状态。

Pings 始终有效,但是这些与 TCP 无关。

我不知道如何解决此问题。不同的远程机器也会出现同样的问题。一些调用可以正常工作,然后SYN_RECV远程连接超时。

由于我已经使用不同的远程机器测试了该问题,因此我相信问题出在源机器而不是目标机器。

您能否提示我该如何继续处理这个问题?DigitalOcean 支持人员到目前为止无法帮助我解决这个问题。

该机器是:

Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-91-generic x86_64)

Linux hidden.hostname.com 3.13.0-91-generic #138-Ubuntu SMP Fri Jun 24 17:00:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

更新 1

我可以通过在目标主机上运行以下命令来重现该问题:

数控-L-K 5001

另一台机器上的情况如下:

nc 源.sample.com 5001 < 10000字节.txt

几次尝试都没问题,然后连接超时。

在 DigitalOcean 上我有四个 droplet:

  • 测试目标
  • 测试源
  • 目标
  • 来源

并且只有目标&来源如果我跑数控在任何其他主机上,其他所有人都可以轻松通信。如果我运行数控目标或者来源, 仅有的测试目标测试源可以毫无问题地调用托管机器。

更新 2

问题解决了。经过一天半的时间,DigitalOcean 团队设法缩小了问题根源并修复了它。我的 droplet 外部出了问题。

答案1

这是 Google 上的第一个结果,因此我将发布以供将来参考。

就我而言,iptables由于 fail2ban 误报,它拒绝来自整个子网的连接(即使我对相关 IP 地址有特定的、明确的允许规则)。

相关内容