netstat和lsof 的區別


netstat

netstat用來查看系統當前系統網絡狀態信息,包括端口,連接情況等,常用方式如下:

netstat -atunlp,各參數含義如下:

  • -t : 指明顯示TCP端口
  • -u : 指明顯示UDP端口
  • -l : 僅顯示監聽套接字(LISTEN狀態的套接字)
  • -p : 顯示進程標識符和程序名稱,每一個套接字/端口都屬於一個程序
  • -n : 不進行DNS解析
  • -a 顯示所有連接的端口

執行后得表格一目了然,就不做截圖了,當然,在眾多表目中找一個特定得,肯定不那么順手,一般該指令會遇grep配合使用,比如查找端口22,就用netstat -tunlp | grep 22 或者干脆netstat -an | grep 22就可以了,查看其它端口類似,當然也可以通過端口狀態查找即netstat -anp | grep TIME_WAIT,即只會顯示含有TIME_WAIT字符串的條目

lsof

lsof的作用是列出當前系統打開文件(list open files),不過通過-i參數也能查看端口的連接情況,-i后跟冒號端口可以查看指定端口信息,直接-i是系統當前所有打開的端口

lsof -i:22 #查看22端口連接情況,默認為sshd端口 如下圖:

查看連接數

可以看到當前通過端口22連接到機器的一共有4個(主機名和ip已打碼),通過該命令就能清楚知道當前端口狀態

 

(1) netstat -an|grep 8080
(2) lsof -i:8080

區別:
1.netstat無權限控制,lsof有權限控制,只能看到本用戶
2.losf能看到pid和用戶,可以找到哪個進程占用了這個端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM