在管理 Linux 伺服器時,我常用 `netstat` 查詢目前系統上的網路連線狀態——從列出所有連接埠、過濾特定協定,到統計連線總數都靠它。這篇整理我最常用的幾組 netstat 參數組合,方便快速查考。
netstat 常用參數有哪些?
```cmd
netstat -a
```
`-a` 指列出所有連接埠(Port),是最基礎的用法:

如果只想看特定協定,可以再搭配參數:
```cmd
netstat -at
```
`-at` 指僅列出 TCP 的連接埠。
```cmd
netstat -au
```
`-au` 指僅列出 UDP 的連接埠。
如何讓 netstat 執行更快(不要解析 DNS)?
如果不想要讓 `netstat` 自動解析 DNS、連接埠名稱與使用者名稱,可以加上 `-n` 參數,這樣可以加速 netstat 的執行速度:
```cmd
netstat -an
```
排查大量連線時我幾乎都會加上 `-n`,省去反解 DNS 的等待時間。
如何用 netstat 查看路由表?
```cmd
netstat -r
```
結果如下:

如何列出使用中的網路連線?
```cmd
netstat -atnp | grep ESTA
```
用 `grep ESTA` 過濾出狀態為 ESTABLISHED 的連線,就能看到目前實際在通訊中的連線清單。
如何查詢特定埠號(port)的連線?
```cmd
netstat -an | grep :1111
```
把 `1111` 換成想查的埠號即可,常用來確認某個服務的連線狀況。
如何統計連線總數量?
```cmd
netstat -aunt | wc -l
```
先用 `-aunt` 列出所有 TCP/UDP、且不做 DNS 反解的連線,再交給 `wc -l` 計算行數,就是目前的連線總數。做連線數監控或警示腳本時很好用。
延伸閱讀
常見問題
netstat -a 和 netstat -at 差在哪裡?
`-a` 會列出所有連接埠,包含 TCP 與 UDP;`-at` 則只顯示 TCP 的連接埠。同理,`-au` 只顯示 UDP 的連接埠。
為什麼要加 -n 參數?
`-n` 讓 netstat 不做 DNS、埠名稱與使用者名稱的反解,直接顯示數字。連線數量多時可以明顯加快執行速度。
怎麼只看目前有在通訊的連線?
用 `netstat -atnp | grep ESTA` 過濾出狀態為 ESTABLISHED 的連線,就能看到實際正在通訊中的連線清單。
如何快速算出系統目前的連線總數?
執行 `netstat -aunt | wc -l`,先列出所有連線(不反解 DNS),再計算行數即可得到總數。
netstat 和 ss 指令有什麼不同?
兩者都能查詢 socket 與連線狀態,`ss` 較新、效能更好;但 `netstat` 語法在多數發行版仍可用,也廣泛出現在既有維運腳本中,兩種都值得熟悉。
參考資料
最後更新
2026-08-28(原文發布於 2020-03-01,本文保留原始筆記內容並補上 GEO 結構。)
關於作者 {#author}
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2020-03-01
