一 指令介紹
1.1 功能
用來顯示Linux系統中網絡的狀态資訊,檢視整個Linux系統的網絡情況。
1.2 文法
netstat [選項] [參數]
選項
- -a:顯示所有連線中的socket。
- -l:顯示監控中的伺服器的socket。
- -n:直接使用ip位址,而不通過域名伺服器。
- -t:顯示TCP傳輸協定的連線狀況。
- -u:顯示UDP傳輸協定的連線狀況。
- -p:顯示正在使用socket的程式識别碼和程式名稱。
- -v:顯示指令執行過程。
- -V:顯示版本資訊。
- -A:列出該網絡類型連線中的相關位址。
- -c:持續列出網絡狀态。
- -C:顯示路由器配置的快取資訊。
- -e:顯示網絡其他相關資訊。
- -i:顯示網絡界面資訊表單。
- -N:顯示網絡硬體外圍裝置的符号連接配接名稱。
- -o:顯示計時器。
- -r:顯示路由表。
- -s:顯示網絡工作資訊統計表。
- -w:顯示RAW傳輸協定的連線狀況。
- -x:此參數的效果和指定"-A unix"參數相同。
二 使用場景
2.1 列出所有端口
netstat -a
2.2 列出所有tcp端口
netstat -at
2.3 列出所有udp端口
netstat -au
2.4 隻顯示監聽端口
netstat -l
2.5 隻列出所有監聽tcp端口
netstat -lt
2.6 隻列出所有監聽udp端口
netstat -lu
2.7 顯示核心路由資訊
netstat -r
2.8 找出程式運作的端口
netstat -ap|grep ssh
2.9 找出運作在指定端口的程序
netstat -an|grep ':80'
2.10 通過端口找程序id
netstat -anp|grep 8081 | grep LISTEN|awk '{printf $7}'|cut -d/ -f1
2.11 檢視連接配接某服務端口最多的ip位址
netstat -ntu|grep 80|awk '{print $5}'|cut -d: -f1|awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}'|sort -nr
2.12 檢視TCP各種狀态清單
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
至此,netstat指令梳理完成。