1. 程式人生 > >linux端口占用

linux端口占用

在Linux使用過程中,需要了解當前系統開放了哪些埠,並且要檢視開放這些埠的具體程序和使用者,可以通過netstat命令進行簡單查詢
netstat命令各個引數說明如下:
  -t : 指明顯示TCP埠
  -u : 指明顯示UDP埠
  -l : 僅顯示監聽套接字(所謂套接字就是使應用程式能夠讀寫與收發通訊協議(protocol)與資料的程式)
  -p : 顯示程序識別符號和程式名稱,每一個套接字/埠都屬於一個程式。
  -n : 不進行DNS輪詢,顯示IP(可以加速操作)
即可顯示當前伺服器上所有埠及程序服務,於grep結合可檢視某個具體埠及服務情況··
netstat -ntlp   //檢視當前所有tcp埠·
netstat -ntulp |grep 80   //檢視所有80埠使用情況·
netstat -ntulp | grep 3306   //檢視所有3306埠使用情況·

Linux檢視程式端口占用情況
使用命令:
ps -aux | grep tomcat
發現並沒有8080埠的Tomcat程序。
使用命令:netstat –apn
檢視所有的程序和埠使用情況。發現下面的程序列表,其中最後一欄是PID/Program name 
發現8080埠被PID為9658的Java程序佔用。
進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 檢視
就可以明確知道8080埠是被哪個程式佔用了!然後判斷是否使用KILL命令幹掉!
方法二:直接使用 netstat   -anp   |   grep  portno
即:netstat -anp|grep 8080


netstat -anp|grep 8080 --> tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      28500/java
ps -aux | grep 28500  --> r/local/tomcat9-jforum/tomcat


安裝lsof list open files//---也可以  netstat -tunlp|grep 埠號  netstat -anp|grep 埠號 
yum install lsof
lsof -i:8080 檢視8080端口占用
lsof abc.txt 顯示開啟檔案abc.txt的程序
lsof -c abc 顯示abc程序現在開啟的檔案
lsof -c -p 1234 列出程序號為1234的程序所開啟的檔案
lsof -g gid 顯示歸屬gid的程序情況
lsof +d /usr/local/ 顯示目錄下被程序開啟的檔案
lsof +D /usr/local/ 同上,但是會搜尋目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的程序
lsof -i 用以顯示符合條件的程序情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
  46 --> IPv4 or IPv6
  protocol --> TCP or UDP
  hostname --> Internet host name
  hostaddr --> IPv4地址
  service --> /etc/service中的 service name (可以不止一個)
  port --> 埠號 (可以不止一個)
  lsof -i //顯示所有開啟的埠
lsof -i:80 //顯示所有開啟80埠的程序
lsof -i -U //顯示所有開啟的埠和UNIX domain檔案


其實我一般這樣用:

[[email protected]_39_230_centos bin]# lsof -i:3306
或者
[[email protected]_39_230_centos bin]# netstat -ntulp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      16422/mysqld  

找到pid  然後 

[[email protected]_39_230_centos bin]# ps -aux | grep 16422
mysql    16422  0.0 47.7 1340428 485944 ?      Sl   Jun29   1:46 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/VM_39_230_centos.err --pid-file=/var/lib/mysql/VM_39_230_centos.pid
root     25713  0.0  0.0 112616   700 pts/0    R+   17:04   0:00 grep --color=auto 16422

 

殺死程序

kill -9 pid