就像您
ping
服务器的IP来检查它是否已启动一样,我们是否也可以检查该正在运行的服务器上的端口是否处于活动/打开状态?
这只是我的想法,但是你能在你的
ping
声明中更具体一些吗?
`ping 127.0.0.1:7004`
我知道这个命令是不允许的,但是有没有办法在 Linux 和 Windows 中检查这个命令?
如果你愿意并且能够安装软件,你可以使用nmap
nmap -p 7004 127.0.0.1
或者,如果它面向互联网,请使用 Web 服务,例如 http://www.yougetsignal.com/tools/open-ports/
这取决于您对系统的访问(客户端或服务器),您可以使用两个选项之一,
netstat -an
检查哪些端口正在监听telnet host port
,如果它在 Linux 机器上不起作用,请尝试 telnet host:port
。由于大多数企业客户禁用了 telnet,我发现 Windows 计算机上的 powershell 命令对于 TCP 非常有用:
New-Object System.Net.Sockets.TcpClient("server", port)
对于 TCP 端口,您可以简单地使用
telnet
或 nc
建立连接。如果成功,则端口已打开。
但是由于 UDP 是无状态的,您无法如此简单地检查开放端口。您必须知道该端口背后的服务是什么,并知道如何发送有效的数据包,以便得到答案。
$ docker run -it --rm --network 主机 networkstatic/nmap localhost