Linux netstat命令詳解

獵手家園發表於2016-05-02

命令:netstat

命令引數:

-a (all)顯示所有選項,預設不顯示LISTEN相關

-t (tcp)僅顯示tcp相關選項

-u (udp)僅顯示udp相關選項

-n 拒絕顯示別名,能顯示數字的全部轉化成數字。

-l 僅列出有在 Listen (監聽) 的服務狀態

-p 顯示建立相關連結的程式名

-r 顯示路由資訊,路由表

-e 顯示擴充套件資訊,例如uid等

-s 按各個協議進行統計

-c 每隔一個固定時間,執行該netstat命令。

提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

 

實用命令例項:

1. 列出所有埠 (包括監聽和未監聽的)

列出所有埠 netstat –a

列出所有 tcp 埠 netstat -at

列出所有 udp 埠 netstat -au

2. 列出所有處於監聽狀態的 Sockets

只顯示監聽埠 netstat -l

只列出所有監聽 tcp 埠 netstat -lt

只列出所有監聽 udp 埠 netstat -lu

只列出所有監聽 UNIX 埠 netstat -lx

3. 顯示每個協議的統計資訊

顯示所有埠的統計資訊 netstat -s

顯示 TCP 或 UDP 埠的統計資訊 netstat -st 或 -su

4. 在 netstat 輸出中顯示 PID 和程式名稱 netstat -p

netstat -p 可以與其它開關一起使用,就可以新增 “PID/程式名稱” 到 netstat 輸出中,這樣 debugging 的時候可以很方便的發現特定埠執行的程式。

# netstat -pt

5. 在 netstat 輸出中不顯示主機,埠和使用者名稱 (host, port or user)

當你不想讓主機,埠和使用者名稱顯示,使用 netstat -n。將會使用數字代替那些名稱。

同樣可以加速輸出,因為不用進行比對查詢。

# netstat –an

如果只是不想讓這三個名稱中的一個被顯示,使用以下命令

# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users

6. 持續輸出 netstat 資訊

netstat 將每隔一秒輸出網路資訊。

# netstat -c

7. 顯示系統不支援的地址族 (Address Families)

netstat --verbose

8. 顯示核心路由資訊 netstat -r

# netstat -r

9. 找出程式執行的埠

並不是所有的程式都能找到,沒有許可權的會不顯示,使用 root 許可權檢視所有的資訊。

# netstat -ap | grep ssh

找出執行在指定埠的程式

# netstat -an | grep ':80'

10. 顯示網路介面列表

# netstat -i

顯示詳細資訊,像是 ifconfig 使用 netstat -ie:

# netstat -ie

11. IP和TCP分析

檢視連線某服務埠最多的的IP地址

root@Linux01:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20

TCP各種狀態列表

root@Linux01:~$ netstat -nat |awk '{print $6}'

先把狀態全都取出來,然後使用uniq -c統計,之後再進行排序。

root@Linux01:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

最後的命令如下:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

相關文章