有没有办法检查服务器上某个端口是否打开?

问题描述 投票:0回答:5

就像您

ping
服务器的IP来检查它是否已启动一样,我们是否也可以检查该正在运行的服务器上的端口是否处于活动/打开状态?

这只是我的想法,但是你能在你的

ping
声明中更具体一些吗?

 `ping 127.0.0.1:7004`

我知道这个命令是不允许的,但是有没有办法在 Linux 和 Windows 中检查这个命令?

linux windows networking ping
5个回答
9
投票

如果你愿意并且能够安装软件,你可以使用nmap

nmap -p 7004 127.0.0.1

或者,如果它面向互联网,请使用 Web 服务,例如 http://www.yougetsignal.com/tools/open-ports/


6
投票

这取决于您对系统的访问(客户端或服务器),您可以使用两个选项之一,

  1. 服务器端您可以使用
    netstat -an
    检查哪些端口正在监听
  2. 从外部使用即可
    telnet host port
    ,如果它在 Linux 机器上不起作用,请尝试
    telnet host:port

2
投票

由于大多数企业客户禁用了 telnet,我发现 Windows 计算机上的 powershell 命令对于 TCP 非常有用:

New-Object System.Net.Sockets.TcpClient("server", port)


0
投票

对于 TCP 端口,您可以简单地使用

telnet
nc
建立连接。如果成功,则端口已打开。

但是由于 UDP 是无状态的,您无法如此简单地检查开放端口。您必须知道该端口背后的服务是什么,并知道如何发送有效的数据包,以便得到答案。


0
投票

$ docker run -it --rm --network 主机 networkstatic/nmap localhost

© www.soinside.com 2019 - 2024. All rights reserved.