我的 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 地址有特定的、明确的允许规则)。