shell 脚本测试 telnet 连接

shell 脚本测试 telnet 连接

我正在尝试编写一个脚本来检查我自己的特定端口是否打开并可以连接。

我尝试通过 netcat 来做

nc -vz localhost 25565

但这只能告诉我端口是否打开。

我需要检查端口是否可以连接,我尝试通过 telnet 进行连接:

sleep 2 | telnet localhost 25565

这连接到端口然后 2 秒后就出来了。

问题是,是否有办法保存连接是否成功,然后进行 if 或 while

答案1

这里发生了几件事。

首先,应用程序可能正在监听本地主机但你的外部适配器上没有,所以你可以连接到本地主机但其他人则无法做到这一点。因此,在测试中,您应该使用网络可见的计算机 IP 地址,而不是本地主机. 这应该列在 的输出中ip addr show

为了查看是否可以连接到端口,以及有关在其上运行的服务的信息,我建议使用 nmap(替换192.168...为您的 IP):

nmap -A 192.168.0.101 -p 25565

或者,只需确认应用程序正在监听该端口:

netstat -tulpn |grep '\b25565\b'

这两者都可以包含在while true; do ...; sleep 60; done脚本中。

相关内容