一、簡介
Netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。Netstat 查看目前tcp連接狀態,結合tcp的三次握手和四次揮手解決分析相關問題(伺服器性能問題)
二、命令解析
1、常見參數
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關連結的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令
-A<網絡類型>或—<網絡類型>:列出該網絡類型連線中的相關地址
-x或--unix:此參數的效果和指定"-A unix"參數相同
--ip或--inet:此參數的效果和指定"-A inet"參數相同
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
2、顯示幫助
netstat —help
3、列出所有埠 (包括監聽和未監聽的)
列出所有埠 netstat -a列出所有 tcp 埠 netstat -at列出所有 udp 埠 netstat -au
4、列出所有處於監聽狀態的 Sockets
只顯示監聽埠 netstat -l只列出所有監聽 tcp 埠 netstat -lt只列出所有監聽 udp 埠 netstat -lu只列出所有監聽 UNIX 埠 netstat -lx
5、顯示每個協議的統計信息
顯示所有埠的統計信息 netstat -s顯示 TCP 或 UDP 埠的統計信息 netstat -st 或 -su# netstat -st # netstat -su6、在 netstat 輸出中顯示 PID 和進程名稱 netstat -p
netstat -p 可以與其它開關一起使用,就可以添加 「PID/進程名稱」 到 netstat 輸出中,這樣 debugging 的時候可以很方便的發現特定埠運行的程序。#netstat -pt7、在 netstat 輸出中不顯示主機,埠和用戶名 (host, port or user)
當你不想讓主機,埠和用戶名顯示,使用 netstat -n。將會使用數字代替那些名稱。同樣可以加速輸出,因為不用進行比對查詢。#netstat -an# netsat -a --numeric-ports# netsat -a --numeric-hosts# netsat -a —numeric-users
8、持續輸出 netstat 信息
netstat 將每隔一秒輸出網絡信息。# netstat -c
9、顯示系統不支持的地址族(Address Families)
netstat —verbose在輸出的末尾,會有如下的信息
10、顯示核心路由信息 netstat -r
# netstat -r
找出程序運行的埠並不是所有的進程都能找到,沒有權限的會不顯示,使用 root 權限查看所有的信息。netstat -ap | grep ssh11、找出運行在指定埠的進程
# netstat -an | grep 『:80'12、顯示網絡接口列表