Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux netstat 命令完整指南:網路連線、監聽埠、路由表一網打盡

編輯:Linux 系統常見問題解答

前言

netstat(network statistics)是檢視網路狀態的經典工具,雖新版 Linux 推薦 ss,但 netstat 語法普及度高,仍是運維必會。

常用參數速查表

參數含義常用組合
-a顯示所有連線(含 LISTEN)netstat -a
-t僅顯示 TCPnetstat -at
-u僅顯示 UDPnetstat -au
-n數字格式顯示 IP/埠(不解析域名)netstat -ant
-l僅顯示監聽狀態netstat -ltn
-p顯示 PID/程式名(需 root)netstat -tnlp
-r顯示路由表netstat -rn
-s顯示協定統計netstat -s
-c持續刷新(每秒)netstat -ct
-e顯示擴充資訊(使用者、inode)netstat -e

實戰場景範例

1. 查看所有 TCP 監聽埠與對應程式

netstat -tnlp
# 輸出:
# 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
# tcp   0      0      127.0.0.1:3306  0.0.0.0:*       LISTEN  5678/mysqld

2. 查看所有已建立的 TCP 連線

netstat -tn

3. 找出佔用特定埠(如 8080)的程式

netstat -tnlp | grep :8080

4. 查看 SSH 服務連線狀態

netstat -an | grep :22
# 或
netstat -tnlp | grep sshd

5. 顯示路由表(同 route -n)

netstat -rn
# Kernel IP routing table
# Destination  Gateway      Genmask        Flags MSS Window irtt Iface
# 0.0.0.0      192.168.1.1  0.0.0.0        UG    0   0      0    eth0
# 192.168.1.0  0.0.0.0      255.255.255.0  U     0   0      0    eth0

6. 顯示網卡統計資訊

netstat -i
# 或詳細
netstat -ie

7. 每秒刷新 TCP 連線(監控突發)

netstat -ct

8. 協定層統計(排查丟包、重傳)

netstat -s
# 輸出包含:
# Tcp:
#   12345 active connections openings
#   123 failed connection attempts
#   456 connection resets received
#   789 segments retransmitted
# Udp:
#   ...
# Ip:
#   ...
# Icmp:
#   ...

netstat vs ss

特性netstatss (iproute2)
速度較慢(讀 /proc)極快(netlink)
功能基礎強大(支援篩選表達式)
相容性所有 UnixLinux 現代發行版
常用替換netstat -tnlpss -tnlp

建議:新腳本優先使用 ss,舊系統維護繼續用 netstat。

結語

熟練 netstat -tnlp、netstat -rn、netstat -s 三大組合,即可應付 90% 網路故障排查場景。

Copyright © Windows教程網 All Rights Reserved