Linux系統下如何确定端口是否被占用?如何查看系統正在監聽的端口有哪些?
關注系統正在監聽的端口對運維人員是一件非常重要的事情,因為對外開放的端口越多,系統增加的風險就越大(後面還會寫一篇系統安全的文章,記得關注我哦)。除了入侵之外,運維人員在做故障排查的時候,也需要觀察端口變化。
例如:一台服務器上同時部署了Apache和Nginx,那麼就必須确認他們是否是使用了TCP #80/443端口。服務宕了,就會先看端口在不在,端口不在,是不是服務停止了,被 OOM 等。
在Linux下檢查被監聽的端口進程1:lsof命令
語法:
$ sudo lsof -i -P -n $ sudo lsof -i -P -n | grep LISTEN $ doas lsof -i -P -n | grep LISTEN ### [OpenBSD] ###
舉例:使用lsof命令檢查監聽端口和應用程序
輸出的最後一行是
sshd 85379 root 3u IPv4 0xffff80000039e000 0t0 TCP 10.86.128.138:22(LISTEN)
2:netstat命令
可以使用netstat檢查端口端口和應用程序
$ netstat -tulpn | grep LISTEN
$ netstat -anp TCP | grep LISTEN $ netstat -anp UDP | grep LISTEN
$ netstat -na -f inet | grep LISTEN $ netstat -nat | grep LISTEN
3:nmap命令
語法:
$ sudo nmap -sT -O localhost $ sudo nmap -sU -O 192.168.2.13 ##[ list open UDP ports ]## $ sudo nmap -sT -O 192.168.2.13 ##[ list open TCP ports ]##
舉例:使用nmap确定哪些端口正在偵聽TCP連接
可以在單個命令中組合TCP / UDP掃描:
$ sudo nmap -sTU -O 192.168.2.13
結束進程
根據PID kill掉相關進程:
kill -9 {PID}
在Windows下檢查被監聽的端口進程常用的檢查Windows操作系統的端口使用情況命令:
netstat -bano | more netstat -bano | grep LISTENING netstat -bano | findstr /R /C:"[LISTEING]"
舉例
1.查看所有的端口占用情況
C:\>netstat -ano
2.查看指定端口的占用情況
在dos下,輸入netstat -ano|findstr 8189,查看端口使用情況
3.結束該進程
輸入taskkill /pid 13064 /f停止端口占用
掌握任何一項技能,需要至少練習20個小時,記得多加練習哦~
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!