Netstat 命令用于顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
netstat的輸出結果可以分為兩個部分:
一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。
另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。Proto顯示連接使用的協議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示連接到套接口的其它進程使用的路徑名。
常見參數
- -a (all) 顯示所有選項,默認不顯示LISTEN相關
- -t (tcp) 僅顯示tcp相關選項
- -u (udp)僅顯示udp相關選項
- -n 拒絕顯示別名,能顯示數字的全部轉化成數字。
- -l 僅列出有在 Listen (監聽) 的服務狀態
- -p 顯示建立相關鏈接的程序名
- -r 顯示路由信息,路由表
- -e 顯示擴展信息,例如uid等
- -s 按各個協議進行統計
- -c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用 -a 或者 -l 才能看到
實驗
netstat -a //列出所有端口 (包括監聽和未監聽的)
netstat -at //列出所有 tcp 端口
netstat -au // 列出所有 udp 端口
netstat -l //只顯示監聽端口
netstat -lt //只列出所有監聽 tcp 端口
netstat -lu //只列出所有監聽 udp 端口
netstat -lx //只列出所有監聽 UNIX 端口
netstat -s //顯示所有端口的統計信息
netstat -p //顯示 PID 和進程名稱
netsat -a --numeric-ports //不顯示端口
netsat -a --numeric-hosts //不顯示 主機名
netsat -a --numeric-users //不顯示用戶名
netstat -ap | grep ssh //找出程序運行的端口(沒有權限的不顯示)