前言
Linux下學習一個命令,首先man一下:
netstat命令,用於顯示網絡相關信息,如網絡連接,路由表,接口狀態(interface statistics), masquerade 連接,多播成員(multicase memberships)等等。
netstat信息
執行netstat,其輸出結果為:
從整體上看,netstat的輸出結果分為兩個部分:
- 一個是激活Internet連接,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指接收隊列和發送隊列。這些數字一般都應該是0.如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況下見到
- 另一個是活躍的UNIX域套接字,稱為有源Unix域套接口(跟網絡套接字一樣,但是只能用於本機通信,性能可以提高一倍)。Proto:顯示連接使用的協議,RefCnt:表示連接到本套接口上的進程號,Types:顯示套接口當前的狀態,Path:表示連接到套接口的其他進程使用的路徑名
常見參數
-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端口(包括監聽和未監聽的)
2.列出所有處於監聽狀態的tcp端口
3.顯示所有端口的統計信息
4.顯示占用某個特定tcp端口的進程的pid
netstat -p 可以與其它開關一起使用,就可以添加“PID/進程名稱”到netstat輸出中,這樣排查問題的適合可以很方便的發現特定端口運行的程序