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 [
如您所見,連接已在port 80 上成功打開。
另一方面,如果您嘗試 ping 未打開的特定port,您將收到以下錯誤消息。
$ nc -vz amazon.com 389
amazon.com [
使用 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
如您所見,據說該虛擬機上的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
使用 Powershell Ping 特定port
如果您在 Windows 環境中運行電腦,則可以使用 Powershell ping 特定port號。
如果您計劃在自動化腳本中包含此功能,此選項可能非常有用。
為了使用 Powershell ping 特定port,您必須使用“Test-NetConnection”命令,後跟要 ping 的 IP 地址和port號。
$ Test-NetConnection
例如,假設我們要在port 389 上 ping “192.168.178.35/24”主機。
為此,我們將運行以下命令
$ Test-NetConnection 192.168.178.35 -p 389
在最後一行,您可以看到 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 系統管理感興趣,請上網查看!