簡介
Linux指令中的netstat 指令用于顯示各種網絡相關資訊,如網絡連接配接,路由表,接口狀态 (Interface Statistics),masquerade 連接配接,多點傳播成員 (Multicast Memberships) 等,通過這個指令可以大體得知整個系統的網絡情況。
輸出資訊的參數含義
在指令行中直接執行netstat指令,如圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiN0UTMxkDM3ETOyIDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
從整體上看,netstat的輸出結果可以分為兩個部分:
一個是Active Internet connections,稱為有源TCP連接配接,其中”Recv-Q”和”Send-Q”指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟體包正在隊列中堆積。這種情況隻能在非常少的情況見到。
另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是隻能用于本機通信,性能可以提高一倍)。
Proto顯示連接配接使用的協定,RefCnt表示連接配接到本套接口上的程序号,Types顯示套接口的類型,State顯示套接口目前的狀态,Path表示連接配接到套接口的其它程序使用的路徑名。
netstat中常見的參數
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. 列出所有 tcp 端口 netstat -a
使用指令:
netstat -a | more
2. 列出所有 tcp 端口 netstat -at
使用指令:
3. 列出所有 udp 端口 netstat -au
使用指令:
二. 列出所有處于監聽狀态的 Sockets
1. 隻顯示監聽端口 netstat -l
使用指令:
2. 隻列出所有監聽 tcp 端口 netstat -lt
使用指令:
3. 隻列出所有監聽 udp 端口 netstat -lu
使用指令:
4. 隻列出所有監聽 UNIX 端口 netstat -lx
使用指令:
三. 顯示每個協定的統計資訊
1. 顯示所有端口的統計資訊 netstat -s
使用指令:
2. 顯示 TCP 端口的統計資訊 netstat -st
使用指令:
3. 顯示 UDP 端口的統計資訊 netstat -su
使用指令:
四. 在 netstat 輸出中顯示 PID 和程序名稱 netstat -pt
五. 在 netstat 輸出中不顯示主機,端口和使用者名 (host, port or user)
當你不想讓主機,端口和使用者名顯示,使用 netstat -n。将會使用數字代替那些名稱。
同樣可以加速輸出,因為不用進行比對查詢。
如果隻是不想讓這三個名稱中的一個被顯示,使用以下指令
# netsat -a --numeric-ports
# netsat -a --numeric-hosts
# netsat -a --numeric-users
六. 持續輸出 netstat 資訊
netstat 将每隔一個固定的時間輸出網絡資訊。
使用指令:
七. 顯示系統不支援的位址族 (Address Families)
使用指令:
八. 顯示核心路由資訊 netstat -r
使用指令:
注意: 使用 netstat -rn 顯示數字格式,不查詢主機名稱。
九. 找出程式運作的端口
并不是所有的程序都能找到,沒有權限的會不顯示,使用 root 權限檢視所有的資訊。
使用指令:
找出運作在指定端口的程序:
十. 顯示網絡接口清單
使用指令:
顯示詳細資訊,像是 ifconfig 使用
netstat -ie
:
十一. IP和TCP分析
1. 檢視連接配接某服務端口最多的的IP位址
使用指令:
2. TCP各種狀态清單
使用指令:
先把狀态全都取出來,然後使用uniq -c統計,之後再進行排序。
使用指令:
最後的指令如下:
3. 分析access.log獲得通路前10位的ip位址
awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -
十二. 顯示目前UDP連接配接狀況
使用指令:
十三. 顯示UDP端口号的使用情況
使用指令:
十四. 顯示所有已建立的有效連接配接
使用指令:
十五. 顯示關于以太網的統計資料
使用指令:
十六. 統計機器中網絡連接配接各個狀态個數
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
參考文章:
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
http://www.jb51.net/LINUXjishu/152405.html