题 Ping特定端口


在这里快速检查一下。

你能ping一台机器的特定端口,如果有,你可以提供一个例子吗?

我正在寻找类似的东西 ping ip address portNum


580
2017-10-08 09:57




对于窗户 这个问题 可以检查 - npocmaka


答案:


你不能像Ping那样ping端口 ICMP 它没有端口的概念。端口属于 传输层协议 像TCP和UDP。但是,你可以使用 NMAP 查看港口是否开放

nmap -p 80 example.com

编辑: 正如flokra所提到的,nmap不仅仅是一个ping-for-ports-thingy。它是安全审核员和黑客最好的朋友,并附带了大量酷炫的选择。检查doc以获取所有可能的标志。


628
2017-10-08 10:00



您可能想要添加 -PN 通常在测试给定端口之前跳过主机发现nmap。 - flokra
为了省一些人的麻烦:nmap /可以/安装在Windows上 链接 (或谷歌 nmap windows),但它不适用于VPN。 PaPing似乎无法扫描一系列地址。我在下面发布了Python脚本,它可以在VPN上工作,扫描一系列地址上的一系列端口。
对于其他人:在Mac OS X上不存在nmap,您可以通过homebrew安装nmap brew install nmap 或MacPorts。 - Highway of Life
nping比nmap更适合这个任务。 nping是nmap发行版的一部分。 - CMCDragonkai
Mac OSX具有“网络实用程序”,它具有端口扫描程序选项卡 - Shanimal


打开到特定端口的telnet会话,例如:

# telnet google.com 80
Trying 74.125.226.48...
Connected to google.com.
Escape character is '^]'.

要关闭您的会话,请点按 Ctrl键+]


168
2017-10-08 10:01



netcat 工作也很棒,而且不那么冗长。 - petrus
如果端口是TCP端口,Telnet适用于此。 - Falcon Momot
netcat也适用于UDP(nc -u) - Tsvetomir Dimitrov
对于Mac用户 - netcat 现在是内置的MacOS HighSierra,其中telnet可以从HomeBrew安装 brew install telnet - sandiejat


你可以使用PaPing:

http://code.google.com/p/paping

C:\>paping.exe www.google.com -p 80 -c 4
paping v1.5.1 - Copyright (c) 2010 Mike Lovell

Connecting to www.l.google.com [209.85.225.147] on TCP 80:

Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=25.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80

Connection statistics:
        Attempted = 4, Connected = 4, Failed = 0 (0.00%)
Approximate connection times:
        Minimum = 24.00ms, Maximum = 25.00ms, Average = 24.25ms

78
2017-09-03 04:23



或者不使用paping,你可以使用已经存在更长时间的哭声并支持ping某些服务以及端口。
这可以用于ping任何端口或只是80? - Luke Puplett
@LukePuplett只是更改了示例中的数字80。通过键入paping.exe <hostname / IP> -p <portnumber> -c <尝试次数>来运行它 - David Costa
太棒了!有谁知道它是否可以在中途显示统计数据 ping 可以用 Ctrl+Break? - Allon Guralnek
赛跑 >C:\paping_1.5.5_windows\paping.exe www.google.com -p 80 -c 4 从命令行给出错误 the program can't start because MSVCP100D.dll is missing from your computer - Timo Huovinen


$ nc -vz google.com 80
Connection to google.com 80 port [tcp/http] succeeded!

74
2018-04-10 01:55



使用 time 像 time nc -vz www.example.com 80 而且你也会有一些RTT。 - xebeche
在没有任何安装的情况下适用于Amazon EC2实例的唯一解决方案。 - Masadow
此命令适用于Raspberry Pi(Linux发行版索种) - John M
什么是-z? rhel7上的ncat 6.40给出了一个未知选项 - Tagar
@Tagar根据Ubuntu版本的帮助,-z是Zero-I / O模式,用于扫描。 - Ben Mordecai


如果您使用的是PowerShell v4或更高版本的Windows安装,则可以使用test-netconnection powershell模块:

Test-NetConnection <host> -port <port>

例:      Test-NetConnection example.com -port 80

此cmdlet还具有别名 tnc。例如 tnc example.com -port 80


61
2017-10-26 21:09



这真的应该是公认的答案,因为它更容易,而且不需要安装东西 - Hakaishin
tnc 我的上帝,我可能真的记得那个 - Chris Marisic


不,你不能,因为 ping 使用 ICMP协议,甚至没有端口的概念。


22
2017-10-08 10:00



我很确定使用“ping”是隐喻的。 - Luke Puplett


尝试 curl 命令,如:

$ curl host:port

例如:

$ curl -s localhost:80 >/dev/null && echo Success. || echo Fail.
Success.

以上命令将返回 失败 在非零退出状态代码上。在某些特殊情况下,例如空洞或反应不当(见 man curl),您可能希望将特定退出代码处理为成功,因此请检查此项 岗位 有关详细说明。


16
2017-11-01 00:11



我喜欢这个,因为 curl 在CentOS上默认存在,所以我不必安装任何东西。 - bdemarest
curl在Raspberry Pi上工作(发行版Raspian) - John M
这是迄今为止最优雅,最通用的解决方案。我略微调整它使它成为一个整洁的oneliner: IP="<ip>" ; PORT="<port>" ; curl -s "$IP:$PORT" > /dev/null && echo "Success connecting to $IP on port $PORT." || echo "Failed to connect to $IP on port $PORT." - Lefty G Balogh