1. 程式人生 > >netstat常見基本用法(轉)

netstat常見基本用法(轉)

查看 我們 一個 端口 png root -a 等待 數據

netstat 簡介

Netstat 是一款命令行工具,可用於列出系統上所有的網絡套接字連接情況,包括 tcp, udp 以及 unix 套接字,另外它還能列出處於監聽狀態(即等待接入請求)的套接字。如果你想確認系統上的 Web 服務有沒有起來,你可以查看80端口有沒有打開。以上功能使 netstat 成為網管和系統管理員的必備利器。在這篇教程中,我會列出幾個例子,教大家如何使用 netstat 去查找網絡連接信息和系統開啟的端口號。

1.列出所有連接

技術分享圖片
上述命令列出 tcp, udp 和 unix 協議下所有套接字的所有連接。然而這些信息還不夠詳細,管理員往往需要查看某個協議或端口的具體連接情況

2. 只列出 TCP 或 UDP 協議的連接

使用 -t 選項列出 TCP 協議的連接:
技術分享圖片

使用 -u 選項列出 UDP 協議的連接:
技術分享圖片

3. 禁用反向域名解析,加快查詢速度

默認情況下 netstat 會通過反向域名解析技術查找每個 IP 地址對應的主機名。這會降低查找速度。如果你覺得 IP 地址已經足夠,而沒有必要知道主機名,就使用 -n 選項禁用域名解析功能
技術分享圖片

4. 只列出監聽中的連接

任何網絡服務的後臺進程都會打開一個端口,用於監聽接入的請求。這些正在監聽的套接字也和連接的套接字一樣,也能被 netstat 列出來。使用 -l 選項列出正在監聽的套接字
技術分享圖片
現在我們可以看到處於監聽狀態的 TCP 端口和連接。如果你查看所有監聽端口,去掉 -t 選項。如果你只想查看 UDP 端口,使用 -u 選項,代替 -t 選項。

註意:不要使用 -a 選項,否則 netstat 會列出所有連接,而不僅僅是監聽端口。

5. 獲取進程名、進程號以及用戶 ID

查看端口和連接的信息時,能查看到它們對應的進程名和進程號對系統管理員來說是非常有幫助的。舉個栗子,Apache 的 httpd 服務開啟80端口,如果你要查看 http 服務是否已經啟動,或者 http 服務是由 apache 還是 nginx 啟動的,這時候你可以看看進程名。

使用 -p 選項查看進程信息
技術分享圖片
使用 -p 選項時,netstat 必須運行在 root 權限之下,不然它就不能得到運行在 root 權限下的進程名,而很多服務包括 http 和 ftp 都運行在 root 權限之下。

相比進程名和進程號而言,查看進程的擁有者會更有用。使用 -ep 選項可以同時查看進程名和用戶名
技術分享圖片
技術分享圖片
註意 - 假如你將 -n 和 -e 選項一起使用,User 列的屬性就是用戶的 ID 號,而不是用戶名。

6. 打印統計數據

netstat 可以打印出網絡統計數據,包括某個協議下的收發包數量。

下面列出所有網絡包的統計情況:
技術分享圖片
如果想只打印出 TCP 或 UDP 協議的統計數據,只要加上對應的選項(-t 和 -u)即可

7. 顯示內核路由信息

使用 -r 選項打印內核路由信息。打印出來的信息與 route 命令輸出的信息一樣。我們也可以使用 -n 選項禁止域名解析
技術分享圖片

8. 打印網絡接口

netstat 也能打印網絡接口信息,-i 選項就是為這個功能而生。
技術分享圖片
上面輸出的信息比較原始。我們將 -e 選項和 -i 選項搭配使用,可以輸出用戶友好的信息。
技術分享圖片
上面的輸出信息與 ifconfig 輸出的信息一樣

netstat常見基本用法(轉)