在 Linux 系統管理中,掌握端口監聽狀態是網絡故障排查與安全審計的基礎技能。本文將深入解析兩大核心工具——netstat 與 nmap 的實戰用法,幫助你快速定位服務狀態、排查連接異常,甚至進行遠程端口掃描。
[root@www ~]# netstat -tunl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
解讀:0.0.0.0 表示監聽所有網卡介面;127.0.0.1 僅限本地回環。以上示例中,SSH(22)、RPC(111) 對外開放,而 SMTP(25) 僅供本機使用,外網無法訪問。
[root@www ~]# netstat -tun Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 52 192.168.1.100:22 192.168.1.101:56746 ESTABLISHED
關鍵信息:本機 192.168.1.100 的 SSH 服務正被 192.168.1.101 連接,狀態為 ESTABLISHED。
[root@www ~]# netstat -tunp Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 52 192.168.1.100:22 192.168.1.101:56746 ESTABLISHED 1342/sshd
最佳實踐:獲取 PID(此處為 1342)後,使用 kill 1342 而非 killall sshd,避免誤殺同服務的其他合法進程。
語法:nmap [掃描類型] [掃描參數] [目標地址]
| 參數 | 說明 |
|---|---|
-sT | TCP 全連接掃描,完整三次握手,日誌明顯 |
-sS | TCP SYN 半開放掃描,隱蔽性強(需 root 權限) |
-sU | UDP 端口掃描,速度較慢 |
-sP | Ping 掃描,僅判斷主機存活 |
-sO | IP 協議掃描,探測支持的協議類型 |
-p <端口範圍>:如 -p 80,443、-p 1-1024、-p 30000-60000-PT:TCP Ping 探活,穿透禁 ICMP 的防火牆-PI:標準 ICMP Ping 探活192.168.1.100192.168.1.0/24192.168.*.*(B 類網)192.168.1.0-50,60-100,103,200[root@www ~]# yum install -y nmap [root@www ~]# nmap localhost PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind
提示:默認僅掃描 TCP 端口,加上 -sU 可同時檢測 UDP。
netstat -tunlp 核對本機服務與進程綁定關係。nmap -sS -p- 目標網段。