如何调试无法接受某些机器的连接的服务器?

如何调试无法接受某些机器的连接的服务器?

我有家用电脑 A(mac)和 B(Linux,Ubuntu 16.04)以及服务器 S(Linux,Ubuntu 16.04)。A 可以通过 ssh、http、telnet 等方式顺利连接到 S。B用过的能够正常连接到 S,但现在无法再连接。所有从 B 到 S 的连接都超时。A 和 B 都位于同一个路由器后面,B 的网络完全可用;它可以 ssh 到其他服务器并正常连接互联网,没有任何问题。

最初,我怀疑是 fail2ban 阻止了 B,因为它可能连接得太频繁了。几天前重启 fail2ban 后,B 可以连接到 S,但只是偶尔连接。今天,即使重启或停止 fail2ban 后,B 也无法再与 S 建立任何连接,只能 ping 一下。

我检查了 iptables 中是否有阻止规则,但规则列表为空。我在 syslog、auth.log 或 faillog 中没有看到任何消息。

我应该从哪里开始调试这个问题?Linux 上的哪些服务处理阻止/接受传入连接?B 到 S 的连接是否可能被 B 阻止?

刚才测试时,我有两个从 B 到 S 的连接。在服务器上我可以看到(通过 iptables)这些连接顺利通过了 fail2ban,所以我不认为阻止是来自 fail2ban。在这两次连接之后,我无法再从 B 到 S 建立任何连接。在此期间,A 可以顺利连接到 S。

另外,我尝试了机器 C,也是 Linux ubuntu 16.04,今天之前从来没有连接过 S,甚至无法获取连接,所以我不认为阻塞是在客户端。

提前致谢!

相关内容