linux 檢視埠被哪個程式占用

2022-01-12 14:52:57 字數 986 閱讀 8923

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或者 baidu一下吧。

執行man netstat命令,你會發現netstat 提供了'-p'的選項,這個選項的功能是告訴你哪個程式占用了該埠,但是她提供的形式比較古怪是以pid/process_name提供的。pid當然 是程序id了,process_name是程序的命令,中間以'/'號分隔。

和上面的原因一樣,我們只查詢listen的埠,netstat 給我們提供了-l的選項,這個選項不是預設的選項。

下面以1521埠來看怎麼查詢到該程式,我們使用下面的命令:

netstat -lnp|awk 'begin'

在這裡使用awk來匹配第4個字段的模式是為了避免誤判。

Linux檢視程式被哪個埠占用

原因 最近裝mongodb,啟動的時候,總是報錯 執行命令 mongod f mongodb.conf 報錯資訊 listen bind failed errno 98 address already in use for socket 0.0.0.0 27017 這說明27017的埠已經被程式占用...

linux檢視埠被哪個程式占用

lsof i 用以顯示符合條件的程序情況,lsof list open files 是乙個列出當前系統開啟檔案的工具。以root使用者來執行lsof i命令,如下圖 lsof i 埠號,用於檢視某一埠的占用情況,比如檢視22號埠使用情況,lsof i 22,如下圖 netstat tunlp用於顯示...

windows怎樣檢視埠號被哪個程式占用了

1.cmd 輸入 netstat ano 2.例如我查80埠被什麼占用了 對應的程序pid是 3600 3.再輸入tasklist來檢視 pid 3600是哪個程序什麼程式在跑,可以很快看到是tomcat6在用pid 3600 也即此占用了80埠 此時可以用 taskkill pid 3600 t ...