nc -zv
實用示例
示例 1:測試單個 TCP 端口(最常見)
目標: 檢查主機 webserver.example.com
上的 80
端口 (HTTP) 是否開放。
nc -zv webserver.example.com 80
成功輸出:
Connection to webserver.example.com (192.168.1.10) 80 port [tcp/http] succeeded!
失敗輸出(端口無服務):
nc: connect to webserver.example.com port 80 (tcp) failed: Connection refused
失敗輸出(網絡不通/防火墻阻斷):
nc: connect to webserver.example.com port 80 (tcp) timed out: Operation now in progress
示例 2:測試單個 UDP 端口
目標: 檢查 DNS 服務器 dns.google
的 53
端口 (DNS) 是否響應 UDP 請求。
nc -zvu dns.google 53
成功輸出:
Connection to dns.google (8.8.8.8) 53 port [udp/domain] succeeded!
失敗輸出(UDP 特性注意): UDP 是無連接的,succeeded
只表示數據包成功發送到目標端口,并不保證端口一定有服務監聽或會響應。如果端口完全沒有服務,通常不會收到錯誤,命令可能直接返回成功或超時。如果網絡不通,會報告類似 TCP 的超時或路由錯誤。
示例 3:測試指定 IP 和端口范圍 (批量掃描)
目標: 快速掃描主機 192.168.1.100
上幾個常用端口 (22
SSH, 80
HTTP, 443
HTTPS) 的狀態。
nc -zv 192.168.1.100 22 80 443
輸出:
Connection to 192.168.1.100 22 port [tcp/ssh] succeeded!
Connection to 192.168.1.100 80 port [tcp/http] succeeded!
nc: connect to 192.168.1.100 port 443 (tcp) failed: Connection refused
明確顯示了 22 和 80 開放,443 被拒絕(可能無服務或防火墻阻斷)。
示例 4:結合超時參數 (避免長時間等待)
目標: 測試一個可能不通或響應慢的端口 (8080
),設置 3 秒超時。
nc -zv -w 3 slowserver.example.com 8080
-w 3
: 設置連接超時時間為 3 秒。
輸出(如果 3 秒內未連接成功):
nc: connect to slowserver.example.com port 8080 (tcp) timed out: Operation now in progress
示例 5:測試域名解析 + 端口 (驗證 DNS 和網絡)
目標: 檢查能否解析 api.service.com
并連接其 443
端口。
nc -zv api.service.com 443
成功輸出:
Connection to api.service.com (203.0.113.45) 443 port [tcp/https] succeeded!
成功輸出包含了解析到的 IP 地址 (203.0.113.45) 和端口狀態。
失敗輸出(域名解析失敗):
nc: getaddrinfo for api.service.com port 443: Name or service not known
失敗輸出(能解析但端口不通):
nc: connect to api.service.com (203.0.113.45) port 443 (tcp) failed: Connection timed out
nc -zv
輸出格式不同
有時我們輸入 nc -zv 172.16.7.78 80
,得到的確實下面這種形式的輸出:
Ncat: Version 7.50 (https://nmap.org/ncat) # 這是 Nmap 項目的 Ncat 工具
Ncat: Connected to 172.16.7.78:80. # 關鍵信息:連接成功!
Ncat: 0 bytes sent, 0 bytes received in 0.06 seconds. # 零數據傳輸統計
這說明當前使用的 Ncat
是來自 Nmap 項目的增強版 Netcat,而不是傳統的 BSD 或 GNU 版本的。