linux之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和用戶,可以找到哪個進程佔用了這個端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章