1. 程式人生 > >Mac的netstat和lsof使用

Mac的netstat和lsof使用

1.使用netstat命令,用來顯示各種網路資訊,比如網路連線、埠號、協議、狀態、程序ID等資訊;

   使用lsof命令,用來顯示當前系統開啟檔案的資訊,因為包括埠和網路狀態在linux和mac中都屬於檔案,所以系統也為它們分配了檔案描述法fd。

2.在Linux上面使用的方法通常為:netstat -nltp,引數含義為:查詢TCP協議寫Listen的資訊

    -a (all)顯示所有選項,預設不顯示LISTEN相關
   -t (tcp)僅顯示tcp相關選項
   -u (udp)僅顯示udp相關選項
   -n 拒絕顯示別名,能顯示數字的全部轉化成數字。
   -l 僅列出有在 Listen (監聽) 的服務狀態

   -p 顯示建立相關連結的程式名
   -r 顯示路由資訊,路由表
   -e 顯示擴充套件資訊,例如uid等
   -s 按各個協議進行統計
   -c 每隔一個固定時間,執行該netstat命令

3.但是在Mac上執行該命令,會報如下的錯誤:

   netstat: option requires an argument -- p
   Usage:  netstat [-AaLlnW] [-f address_family | -p protocol]
   netstat [-gilns] [-f address_family]
   netstat -i | -I interface [-w wait] [-abdgRtS]
   netstat -s [-s] [-f address_family | -p protocol] [-w wait]
   netstat -i | -I interface -s [-f address_family | -p protocol]
   netstat -m [-m]
   netstat -r [-Aaln] [-f address_family]
   netstat -rs [-s]

4.在Mac上正確使用的方法是:即-f需要加上地址族,-p需要加上協議TCP或者UDP等

     netstat [-AaLlnW] [-f address_family | -p protocol]
     netstat [-gilns] [-v] [-f address_family] [-I interface]
     netstat -i | -I interface [-w wait] [-c queue] [-abdgqRtS]
     netstat -s [-s] [-f address_family | -p protocol] [-w wait]
     netstat -i | -I interface -s [-f address_family | -p protocol]
     netstat -m [-m]
     netstat -r [-Aaln] [-f address_family]
     netstat -rs [-s] 

   a)如果需要查詢inet,netstat -anvf inet

   b)如果需要查詢TCP, netstat -anvp tcp

   b)如果需要查詢UDP,netstat -anvp udp

5.lsof用法

  lsof輸出各列的資訊的意義如下:

 command、pid、user 用來標識程序的名稱、ID、擁有者

 fd檔案描述符file description,應用程式通過檔案描述符來識別該檔案

 type、size、name,檔案型別、大小、檔案的確切名稱

 device 磁碟的名稱,

 node 索引節點,該檔案在磁碟上的標識

6.  lsof -i:8080 檢視8080埠的使用情況

    lsof -i4TCP:8080, 檢視8080埠的TCP情況