『壹』 如何查看linux下埠被佔用
總結出來兩種方法:
1)使用lsof命令
lsof是一個非常強大的linux工具,她被用來查找哪些程序使用了那些文件。在linux系統下,基本上所有的東西都可以被當作文件來用。socket當然也是一種文件了。所以lsof可以用來查找誰用了某一個埠。具體方法:
lsof -i :port_number |grep "LISTEN"
-i是用來查找和網路相關的文件,":"號是必須的,它是標志你查找的是一個埠。port_number就是你要查找的埠號,譬如你要查找是否有程序佔用了oracle的監聽埠1521,就可以使用lsof -i :1521 |grep "LISTEN"。如果有程序已經佔用了,那麼下面列印的第二個欄位就是該程序的進程id,第一個欄位是進程的名字。
如果只有losf -i :port_number可能會查到很多應用程序,但這些程序實際並沒有佔用你指定的埠,這些埠只是連接到本機器或者別的機器的該埠。所以要grep "LISTEN「,因為一個埠只可能被一個程序佔用的,所以這種方法是可靠的。
2)使用netstat 命令
大家一定對這個命令比較熟悉了,可能你從沒有想到用到來查找哪一個程序的佔用了指定的埠。但是netstat -an 的確提供了這種功能。所以有問題了一定要想到先去查找man手冊,不過說實話,某些man手冊寫得讓中國人看不懂,那沒有辦法了,就googe或者一下吧。
執行man netstat命令,你會發現netstat 提供了'-p'的選項,這個選項的功能是告訴你哪個程序佔用了該埠,但是她提供的形式比較古怪是以pid/process_name提供的。pid當然是進程id了,process_name是進程的命令,中間以'/'號分隔。
和上面的原因一樣,我們只查找listen的埠,netstat 給我們提供了-l的選項,這個選項不是默認的選項。
下面以1521埠來看怎麼查找到該程序,我們使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在這里使用awk來匹配第4個欄位的模式是為了避免誤判。
『貳』 如何查看linux伺服器佔用的埠
root用戶執行netstat
-ntupl
n表示不查詢dns
t表示tcp協議
u表示udp協議
p表示查詢佔用的程序
l表示查詢正在監聽的程序
『叄』 linux系統如何查看埠佔用
在linux系統查看埠佔用,可以使用netstat命令查看,埠使用情況。
其中Local Address 有埠的表示本機啟用的服務佔用的埠,這些埠一直被服務佔用。Foreign Address有埠的是外部程序連接本機服務,本機隨機分配的埠,這些埠隨著外包程序斷開連接自動釋放......
『肆』 linux如何查看埠被佔用
linux如何查看埠被哪個進程佔用的方法:
①lsof -i:埠號
,用於查看某一埠的佔用情況,比如查看22號埠使用情況,lsof -i:22,如下圖
『伍』 linux檢查埠是否被佔用
這這兩個在檢查的過程中你可以先重啟一下,如果有人在的話,那就說明被佔用了。
『陸』 linux 查看埠佔用
在項目的部署的時候,會遇到埠被佔用的情況,需要我們先停下佔用埠的進程,然後才能開啟新的服務來使用這個埠,那麼在linux上怎麼查看埠被什麼進程佔用呢?
一、常用命令:
1,lsof -i:埠號
2,netstat -tunlp|grep 埠號
這兩個命令都可以查看埠被什麼進程佔用。
lsof -i 用以顯示符合條件的進程情況,lsof(list open files)是一個列出當前系統打開文件的工具。以root用戶來執行lsof -i命令,如下圖
lsof輸出的每列的意義是:
COMMAND:進程的名稱或者進程開啟的方式
PID:進程id
USER:進程所有者
FD:文件描述符
TYPE:協議類型
DEVICE:埠號
SIZE/OFF:偏移
NODE:協議名
NAME:節點名
lsof -i:埠號,用於查看某一埠的佔用情況,比如查看22號埠使用情況,lsof -i:22
netstat -tunlp用於顯示tcp,udp的埠和進程等相關情況
命令里的t,u,n,l,p均有不同含義:
-t 僅顯示和tcp相關的
-u 僅顯示和udp相關的
-n 不限時別名,能顯示數字的全部轉換為數字
-l 僅顯示出於Listen(監聽)狀態的
-p 顯示建立這些連接的程序名
netstat -tunlp|grep 埠號,用於查看指定埠號的進程情況,如查看22埠的情況,netstat -tunlp|grep 22
『柒』 linux 埠被佔用怎麼解決
查看埠是否被佔用:netstat -anp | grep port lsof -i:port查看埠被那個進程佔用:netstat -anp | grep port或使用 lsof -i:port顯示結果的有進程id,再ps -ef | grep pid即可查看進程(如java進程)使用的埠:ps -aux | grep java找到pid再lsof -i | grep pid或使用netstat -anp | grep pid即可
『捌』 linux埠佔用怎麼處理
linux中通過埠查看對應哪個程序可以使用netstat命令:
netstat -tlnp
這個命令表示列出系統裡面監聽網路的tcp連接和相應的進程pid。
參數說明:
-t:表示列出tcp連接
-l:表示列出正在網路監聽的服務
-n:表示以埠號來顯示
-p:表示列出進程pid
然後在顯示的結果中找到local address這一列下面是指定埠號的那一行,再看它的program name那一列,就知道這個埠號被哪個程序佔用了。
『玖』 linux查看埠佔用情況
一、常用命令:
1,lsof -i埠號
2,netstat -tunlp|grep 埠號
這兩個命令都可以查看埠被什麼進程佔用。
二、lsof -i 需要 root 用戶的許可權來執行,如下圖:
三、netstat命令
netstat -tunlp用於顯示 tcp,udp 的埠和進程等相關情況。
netstat 查看埠佔用語法格式:
netstat -tunlp | grep 埠號
一、更多 lsof 的命令擴展
1、lsof -i:8080:查看8080埠佔用
2、lsof abc.txt:顯示開啟文件abc.txt的進程
3、lsof -c abc:顯示abc進程現在打開的文件
4、lsof -c -p 1234:列出進程號為1234的進程所打開的文件
5、lsof -g gid:顯示歸屬gid的進程情況
6、lsof +d /usr/local/:顯示目錄下被進程開啟的文件
7、lsof +D /usr/local/:同上,但是會搜索目錄下的目錄,時間較長
8、lsof -d 4:顯示使用fd為4的進程
9、lsof -i -U:顯示所有打開的埠和UNIX domain文件
二、更多netstat命令
1、netstat -ntlp //查看當前所有tcp埠
2、netstat -ntulp | grep 80 //查看所有80埠使用情況
3、netstat -ntulp | grep 3306 //查看所有3306埠使用情況
三、關閉埠
1、在查到埠佔用的進程後,如果你要殺掉對應的進程可以使用 kill 命令:
kill -9 PID
2、如上實例,我們看到 8000 埠對應的 PID 為 26993,使用以下命令殺死進程:
kill -9 26993
『拾』 linux 如何查看埠是否被佔用
用命令netstat