![如何调试无法接受某些机器的连接的服务器?](https://linux22.com/image/1535733/%E5%A6%82%E4%BD%95%E8%B0%83%E8%AF%95%E6%97%A0%E6%B3%95%E6%8E%A5%E5%8F%97%E6%9F%90%E4%BA%9B%E6%9C%BA%E5%99%A8%E7%9A%84%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我有家用电脑 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,甚至无法获取连接,所以我不认为阻塞是在客户端。
提前致谢!