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