命令: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