為什么不能ping端口號(hào)?如何驗(yàn)證端口號(hào)可用?
一、端口號(hào)為什么不能ping?
Ping 是一種網(wǎng)絡(luò)工具,經(jīng)常用于測(cè)試兩臺(tái)計(jì)算機(jī)之間的網(wǎng)絡(luò)連接是否正常。Ping 使用 Internet 控制消息協(xié)議(ICMP)來(lái)發(fā)送 ICMP 請(qǐng)求消息到目標(biāo)計(jì)算機(jī),如果目標(biāo)計(jì)算機(jī)正常工作并且與網(wǎng)絡(luò)連接正常,它會(huì)回復(fù) ICMP 響應(yīng)消息。這是一種常用于測(cè)試網(wǎng)絡(luò)可達(dá)性和測(cè)量網(wǎng)絡(luò)延遲的工具。
然而,Ping 不是通過端口號(hào)來(lái)測(cè)試網(wǎng)絡(luò)連接的工具。它使用 ICMP 協(xié)議,而不是傳統(tǒng)的基于端口號(hào)的協(xié)議,如傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。因此,Ping 不會(huì)針對(duì)特定的端口號(hào)進(jìn)行測(cè)試,而是測(cè)試目標(biāo)計(jì)算機(jī)是否能夠響應(yīng) ICMP 請(qǐng)求。
綜上所述,ping不能驗(yàn)證系統(tǒng)端口號(hào)是否可用,主要原因如下:
- 協(xié)議不同:Ping 使用 ICMP 協(xié)議,而不是 TCP 或 UDP 協(xié)議。系統(tǒng)端口號(hào)通常與 TCP 或 UDP 協(xié)議相關(guān)聯(lián)。因此,Ping 無(wú)法測(cè)試特定的端口是否處于監(jiān)聽狀態(tài)。
- ICMP 請(qǐng)求與端口號(hào)無(wú)關(guān):Ping 發(fā)送的 ICMP 請(qǐng)求消息是一種用于測(cè)試網(wǎng)絡(luò)可達(dá)性的探測(cè)工具,它只是發(fā)送一個(gè)消息給目標(biāo)主機(jī),請(qǐng)求一個(gè)簡(jiǎn)單的回復(fù)。它不包含與端口號(hào)相關(guān)的信息。
- 端口是傳輸層概念:端口號(hào)是傳輸層協(xié)議(如 TCP 和 UDP)中的概念,用于區(qū)分不同的網(wǎng)絡(luò)應(yīng)用程序或服務(wù)。Ping 位于網(wǎng)絡(luò)層,更專注于測(cè)試主機(jī)之間的可達(dá)性,而不關(guān)心傳輸層上的端口。
二、如何驗(yàn)證端口號(hào)可用?
常見的用于驗(yàn)證端口號(hào)是否可用的工具有telnet、curl、nc(netcat)、nmap等
使用telnet驗(yàn)證端口:
[root@localhost ~]# telnet 192.168.15.137 22
Trying 192.168.15.137...
Connected to 192.168.15.137.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
Connection closed by foreign host.
使用curl驗(yàn)證端口(還是調(diào)用telnet實(shí)現(xiàn)):
[root@localhost ~]# curl -v telnet://192.168.15.137:22
* About to connect() to 192.168.15.137 port 22 (#0)
* Trying 192.168.15.137...
* Connected to 192.168.15.137 (192.168.15.137) port 22 (#0)
SSH-2.0-OpenSSH_7.4
* Send failure: Broken pipe
* Closing connection 0
curl: (55) Send failure: Broken pipe
使用curl驗(yàn)證端口:
[root@localhost ~]# curl 192.168.15.137:22
SSH-2.0-OpenSSH_7.4
Protocol mismatch.
curl: (56) Recv failure: Connection reset by peer
使用nc驗(yàn)證端口:
[root@localhost ~]# nc -zv 192.168.15.137 22
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.15.137:22.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
- 使用nmap驗(yàn)證端口:
[root@localhost ~]# nmap -p 22 192.168.15.137
Starting Nmap 6.40 ( http://nmap.org ) at 2023-10-10 15:13 CST
Nmap scan report for 192.168.15.137
Host is up (0.000057s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
總結(jié)
ping、telnet、curl、nc、nmap等工具功能和用途有所不同,在工作中使用的都很頻繁,它們能極大地提升我們的工作效率,你學(xué)會(huì)了嗎?