Linux:是否可以创建指令来检查两台主机之间是否可以连接?

Linux:是否可以创建指令来检查两台主机之间是否可以连接?

我正在运行一些部署在两个不同主机上的软件。主机通过网络进行通信。两台主机都使用 Linux。它们使用特殊端口进行通信。也可以使用多播。

有一个疑问:

我如何为用户创建说明以确保这两台主机之间没有网络问题?

我能想到的最简单的方法就是让他们使用“ping,如果失败 - 转到管理员”。好的,但还有很多其他情况需要检查。检查我们需要的端口是否打开,检查是否可以进行多播,是否可以使用 telnet 进行检查?我该如何执行?

那么,您能否根据您的经验提供一些需要做的检查清单?

答案1

假设用户熟悉 Linux(是吗?),他们可以使用终端发出下面引用的非特权命令。

ss 是另一个用于调查套接字的实用程序。有关详细信息,请参阅 MAN。

$ watch ss -tuna

他们将看到各个主机之间已建立的 ESTABlished 连接以及其他连接。

tcp    ESTAB      0      0          10.100.71.131:33785      10.100.71.22:445
tcp    ESTAB      0      0          10.100.71.131:47411      10.100.71.12:445
tcp    ESTAB      0      0          10.100.71.131:47410      10.100.71.12:445
tcp    ESTAB      0      0          10.100.71.131:22        10.100.71.142:57357
tcp    ESTAB      0      0          10.100.71.131:34088      10.100.71.11:445
tcp    ESTAB      0      0          10.100.71.131:44328      10.100.71.21:445

还有许多其他选择;例如,mtr google.com;这是一个非特权网络诊断工具,它将提供仅通过 ping 即可获得的信息。

答案2

为什么要求用户检查您的服务是否正在运行?设置一个监控系统(例如 Zabbix)即可解决问题。

相关内容