netstat 是 linux 系統中用于查看網絡連接狀態的常用工具,其基本用法包括:1. 查看所有活躍連接使用 netstat -tuln;2. 查看特定協議連接如 tcp 用 netstat -tl、udp 用 netstat -ul;3. 顯示進程信息需加 -p 參數并配合 sudo;4. 使用 netstat -s 可查看詳細的網絡統計信息。掌握這些命令可有效排查網絡問題和監控服務運行。
在linux系統中,查看網絡連接狀態是排查網絡問題、監控服務運行情況的常見操作。netstat 是一個非常實用的命令行工具,可以用來顯示網絡連接、路由表、接口統計信息等。雖然現在有些發行版默認不安裝 netstat(被 ss 命令取代的趨勢),但如果你還在使用它或想快速掌握基本用法,這篇文章能幫你快速上手。
查看所有活躍的網絡連接
最常用的命令之一就是查看當前所有的活動網絡連接:
netstat -tuln
- -t:表示 TCP 協議
- -u:表示 UDP 協議
- -l:列出監聽中的連接(LISTEN 狀態)
- -n:以數字形式顯示地址和端口號(不進行 DNS 解析)
這個命令會輸出類似下面的內容:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN udp 0 0 0.0.0.0:5353 0.0.0.0:*
你可以看到哪些端口正在監聽,比如 ssh(22)、http(80)等。如果發現你不熟悉的端口在監聽,可能需要進一步檢查安全性。
查看特定協議的連接(TCP 或 UDP)
如果你想只關注某一種協議,比如 TCP:
netstat -tl
或者 UDP:
netstat -ul
這樣可以減少干擾,更容易定位問題。例如,DNS 查詢通常是基于 UDP 的,所以查看 UDP 連接時可能會看到 53 端口相關的信息。
顯示進程信息(結合權限)
有時候你不僅想知道哪個端口在監聽,還想了解是哪個程序在使用它。這時候可以用:
sudo netstat -tulnp
- -p:顯示進程 ID 和名稱(需要 root 權限)
輸出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
通過這種方式,你可以知道某個服務是否正常啟動,或者是否有異常進程占用了關鍵端口。
檢查連接狀態和統計信息
除了查看連接本身,你還可以查看網絡連接的狀態統計:
netstat -s
這會顯示 TCP、UDP、IP 等協議的詳細統計數據,比如收到的數據包數量、丟包情況等。適合用于分析網絡性能或排查潛在問題。
總的來說,netstat 是個簡單但功能強大的工具,雖然現在很多系統開始推薦使用 ss 或 ip 命令替代它,但在排查網絡連接問題時,它的直觀性還是很有幫助的。只要記住幾個常用參數組合,就能快速定位大部分基礎問題。
基本上就這些,熟練之后幾分鐘就能搞定一次全面的網絡連接檢查。