unix系統中查看端口號被佔用

1.  查看端口占用狀況的命令:lsof -inginx

    [root@www ~]# lsof -i
     
    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    nginx 2333 root 6u IPv4 6242 TCP *:http (LISTEN)
    nginx 2334 www 6u IPv4 6242 TCP *:http (LISTEN)
    sshd 2349 root 3u IPv6 6283 TCP *:ndmp (LISTEN)
    sshd 2349 root 4u IPv6 6286 TCP *:ssh (LISTEN)



這裏返回了Linux當前全部打開端口的佔用狀況。shell

第一段是進程,最後一列是偵聽的協議、偵聽的IP與端口號、狀態。app

若是端口號是已知的經常使用服務(如80、21等),則會直接顯示協議名稱,如http、ftp、ssh等。ssh


 

2. 查看某一端口的佔用狀況: lsof -i:端口號tcp

    [root@www ~]# lsof -i:21
     
    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN)
    pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)



這裏顯示出21號端口正在被pure-ftpd使用,狀態是listen。spa


3. 查看某進程佔用的端口號code

 netstat -anp
 [root@www ~]# netstat -anp | grep syslog
  udp        0      0 0.0.0.0:514                 0.0.0.0:*                               31483/syslogd


 

4. 查看某端口被佔用的進程進程

 [root@nbatest ~]# netstat -altp |grep 9999
  tcp        0      0 0.0.0.0:9999                0.0.0.0:*                   LISTEN      16315/gate_applicat


5. 一進程肯定佔用某一tcp端口,以下命令能夠殺掉該進程。io

    kill -9 $(netstat -tlnp|grep 9999|awk '{print $7}'|awk -F '/' '{print $1}')


6. 結束佔用端口的進程:killall 進程名class


雖然咱們不建議用這種本末倒置的方法來解決衝突問題,

但某些狀況下仍是能夠直接結束掉佔用進程的(好比重啓Apache時進程沒有徹底退出,致使重啓失敗)

[root@www ~]# killall application



這樣,全部的application進程都會被結束掉。

相關文章
相關標籤/搜索