Home >> Blog >> 如何 Ping port 遠端電腦特定port是否有開放

如何 Ping port 遠端電腦特定port是否有開放

Ping port是最有效的故障排除技術之一,可以查看服務是否處於活動狀態,例如遠端ping port 25 來看看SEO優化的Email server 是否還活著。

系統管理員每天使用 ping 命令,依靠 ICMP 協議,檢索有關遠端主機的操作資訊。

但是,ping 主機並不總是足夠的:您可能需要ping 伺服器上的特定port。

此特定port可能與資料庫、Apache Web 伺服器甚至網路上的代理伺服器有關。

在本教學中,我們將了解如何使用各種不同的命令 ping 特定port。

使用 telnet Ping 特定port

ping 特定port的最簡單方法是使用 telnet 命令,後跟IP 地址和要 ping 的port。

您還可以指定域名而不是 IP 地址,後跟要 ping 的特定port。

$ telnet ip_address port_number

$ telnet domain_name port_number

“telnet”命令對Windows和Unix操作系統有效。

如果您在系統上遇到“ telnet : command not found ”錯誤,則必須通過運行以下命令在系統上安裝 telnet。

$ sudo apt-get install telnet

例如,假設我們有一個網站在我們本地網路的 192.168.178.2 IP 地址上的 Apache Web 伺服器上運行。

默認情況下,網站在port 80 上運行:這是我們要 ping 以查看我們的網站是否處於活動狀態的特定port。

$ telnet 192.168.178.2 80

Trying 192.168.178.2...
Connected to 192.168.178.2.
Escape character is '^]'.

$ telnet 192.168.178.2 389
Connected to 192.168.178.2.
Escape character is '^]'.

能夠連接到您的遠端主機僅僅意味著您的服務已啟動並正在運行。

為了退出 Telnet 實用程式,您可以使用“Ctrl”+“]”鍵來退出並執行“q”命令退出。

使用 nc Ping 特定port

為了ping一個特定的port號,執行“nc”命令,“v”選項表示“verbose”,“z”表示“scanning”,並指定主機以及要ping的port。

您還可以指定域名而不是 IP 地址,後跟要 ping 的port。

$ nc -vz < host > < port_number >

$ nc -vz < domain > < port_number >

此命令適用於Unix系統,但您可以在線找到適用於 Windows 的netcat 替代品。

如果在您的系統上找不到“nc”命令,則需要以sudo 用戶身份運行“apt-get install”命令進行安裝。

$ sudo apt-get install netcat

例如,假設您想在其port 80 上 ping 一個遠端 HTTP 網站,您將運行以下命令。

$ nc -vz amazon.com 80

amazon.com [] 80 (http) open

如何 Ping 特定port號

如您所見,連接已在port 80 上成功打開。

另一方面,如果您嘗試 ping 未打開的特定port,您將收到以下錯誤消息。

$ nc -vz amazon.com 389

amazon.com [] 389 (ldap) : Connection refused

使用 nmap ping port

ping 特定port的一種非常簡單的方法是使用帶有“-p”選項的nmap 命令,並指定要掃描的port號和主機名。

$ nmap -p < port_number > < ip_address >

$ nmap -p < port_number > < domain_name >

注意:如果您使用 nmap,請注意您應該注意可能隨之而來的法律問題。對於本教學,我們假設您僅出於監控目的而掃描本地port。

如果您的主機上沒有“nmap”命令,則必須安裝它。

$ sudo apt-get install nmap

例如,假設您要在默認 LDAP port389 上 ping 本地網路上的“192.168.178.35/24”。

$ nmap -p 389 192.168.178.35/24

如何 Ping 特定port號

如您所見,據說該虛擬機上的port 389 是打開的,表明 OpenLDAP 伺服器正在那裡運行。

使用 nmap 掃描port範圍

為了使用 nmap 掃描一系列port,您可以使用“ports”的“p”選項執行“nmap”並指定要 ping 的範圍。

$ nmap -p 1-100 < ip_address >

$ nmap -p 1-100 < hostname >

同樣,如果我們嘗試掃描“192.168.178.35/24”上的port範圍,我們將運行以下命令

$ nmap -p 1-100 192.168.178.35/24

如何 Ping 特定port號

使用 Powershell Ping 特定port

如果您在 Windows 環境中運行電腦,則可以使用 Powershell ping 特定port號。

如果您計劃在自動化腳本中包含此功能,此選項可能非常有用。

為了使用 Powershell ping 特定port,您必須使用“Test-NetConnection”命令,後跟要 ping 的 IP 地址和port號。

$ Test-NetConnection -p < port_number >

例如,假設我們要在port 389 上 ping “192.168.178.35/24”主機。

為此,我們將運行以下命令

$ Test-NetConnection 192.168.178.35 -p 389

如何 Ping 特定port號

在最後一行,您可以看到 TCP 調用是否成功:在我們的例子中,它確實到達了 389 port上的port。

Ping 術語

從技術上講,沒有“ping”主機上的特定port這樣的事情。

向遠端主機發送“ping”請求意味著您正在使用 ICMP 協議來檢查網路連接。

ICMP 主要用於診斷阻止您訪問主機的網路問題。

當您“ ping port”時,實際上是在您的電腦和特定port上的遠端主機之間建立TCP 連接。

然而,工程師通常會說他們正在“ping port”,但實際上他們不是在掃描,就是在打開 TCP 連接。

結論

在本教學中,您了解了可用於ping 特定port的所有方法。

本教學中使用的大多數命令都可以在Windows、Unix或MacOS操作系統上使用。

您可能無法直接使用它們,但您將能夠為您的操作系統找到免費和開源open source的替代品。

如果您對Linux 系統管理感興趣,請上網查看!