linux如何查看端口被哪個進程占用


查看所有網絡端口 

netstat -an

[root@xxxxx~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:11211             0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:8006              0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      

 

查看端口具體被那個進程占用

lsof -i :3690

[root@xxxxxx~]# lsof -i :3690
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8533 root    3u  IPv4  42704      0t0  TCP *:svn (LISTEN)

 

再使用以下命令查看詳細信息:

 ps -aux | grep 8533

[root@iZbp1g3u73g9nybvafuwc6Z ~]# ps -aux | grep 8533
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      8533  0.0  0.0 156996   888 ?        Ss   10:20   0:00 svnserve -d -r /shiyu/
root      8648  0.0  0.0 103256   840 pts/0    S+   10:31   0:00 grep 8533

 

最后kill-9 pid

 

kill -9 8533

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

之前查詢端口是否被占用一直搞不明白,問了好多人,終於搞懂了,現在總結下:

1.netstat  -anp  |grep   端口號

如下,我以3306為例,netstat  -anp  |grep  3306(此處備注下,我是以普通用戶操作,故加上了sudo,如果是以root用戶操作,不用加sudo即可查看),如下圖1:

                                                                                     圖1

圖1中主要看監控狀態為LISTEN表示已經被占用,最后一列顯示被服務mysqld占用,查看具體端口號,只要有如圖這一行就表示被占用了。

2.netstat   -nultp(此處不用加端口號)

該命令是查看當前所有已經使用的端口情況,如圖2:

                                                                                       圖2

圖中可以看出我的82端口沒有被占用

3.netstat  -anp  |grep  82查看82端口的使用情況,如圖3:

                                                                                                                          圖3

可以看出並沒有LISTEN那一行,所以就表示沒有被占用。此處注意,圖中顯示的LISTENING並不表示端口被占用,不要和LISTEN混淆哦,查看具體端口時候,必須要看到tcp,端口號,LISTEN那一行,才表示端口被占用了

 

 

 

 

 

 

 

 

 

 

 

1、lsof -i:端口號

2、netstat -tunlp|grep 端口號

都可以查看指定端口被哪個進程占用的情況

工具/原料

 

  • linux,windows

  • xshell

方法/步驟

 

  1.  

    【步驟一】lsof -i

    lsof -i 用以顯示符合條件的進程情況,lsof(list open files)是一個列出當前系統打開文件的工具。以root用戶來執行lsof -i命令,如下圖

    linux如何查看端口被哪個進程占用?

  2.  

    【步驟二】lsof -i:端口號

    lsof -i:端口號,用於查看某一端口的占用情況,比如查看22號端口使用情況,lsof -i:22,如下圖

    linux如何查看端口被哪個進程占用?

  3. 3

    【步驟三】netstat -tunlp

    netstat -tunlp用於顯示tcp,udp的端口和進程等相關情況,如下圖

    linux如何查看端口被哪個進程占用?

  4. 4

    【步驟四】netstat -tunlp|grep 端口號

    netstat -tunlp|grep 端口號,用於查看指定端口號的進程情況,如查看22端口的情況,netstat -tunlp|grep 22,如下圖

    linux如何查看端口被哪個進程占用?


免責聲明!

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



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