如何檢視埠號被哪個程序占用

2022-02-02 03:44:22 字數 1618 閱讀 2573

**

在網路程式的除錯過程中,經常發生一些出乎意料的事情,比如建立乙個tcp服務失敗,這時候往往需要檢視系統的網路情況,最常用的網路抓包當然非wireshark模式。但往往很多時候只需要檢視某個埠的使用情況,它到底被那個程序(對應pid)占用了,或者你還需要把它kill掉。如果你在windows作業系統,你可以使用netstat命令來查詢pid,然後可以開啟任務管理器,檢視這個pid對應的程序名;如果pid沒有顯示,選單》檢視》選擇列》選中pid即可;得知程序後,我們可以將程序殺掉。下面我簡單描述一下我所了解的在windows和linux系統下處理方式。 (假如我們需要確定誰占用了我們的9010埠)

1、windows平台 在windows控制台視窗下執行: netstat -nao | findstr "9010" tcp 127.0.0.1:9010 0.0.0.0:0 listening 3017

你看到是pid為3017的程序占用了9010埠,如果進一步你想知道它的程序名稱,你可以使用如下命令:

tasklist | findstr "3017"

taskkill /pid 3017

那麼這個程序就灰灰湮滅了:)

2、linux

如果你是個linux愛好者,那個這個命令你應該很熟了,

netstat -pan | grep 9010

如果你稍微仔細一點,你會發現,用的都是netsta命令,事實上,netstat是乙個比較通用的網路統計命令,幾乎適用於所有現在流行的作業系統,無論是linux,window,還是其他unix,或者unix-like作業系統,而且用法基本一致。

下面是乙個對windows系統中netstat命令列引數的詳細解釋。

格式:netstat [-a] [-e] [-n] [-o] [-p protocol] [-b] [-r] [-s] [-v] [interval]

引數說明:

-a 顯示所有連線和監聽埠。 -n 以數字形式顯示位址和埠號。

-o 顯示與每個連線相關的所屬程序 id。

-p 在windows系統中,該選項用於指定預設情況的子集。proto 顯示 proto 指定的協議的連線;proto 可以是下列協議之一: tcp、udp、tcpv6 或 udpv6。

如果與 -s 選項一起使用以顯示按協議統計資訊,proto 可以是下列協議之一: ip、ipv6、icmp、icmpv6、tcp、tcpv6、udp 或 udpv6。

-b 顯示包含於建立每個連線或監聽埠的可執行元件。在某些情況下已知可執行元件擁有多個獨立元件,並且在這些情況下; 包含於建立連線或監聽埠的元件序列被顯示。這種情況下,可執行元件名在底部的 中,頂部是其呼叫的元件,等等,直到 tcp/ip 部分。注意此選項 可能需要很長時間,如果沒有足夠許可權可能失敗。

-e 顯示乙太網統計資訊。此選項可以與 -s選項組合使用。

-s 顯示按協議統計資訊。預設地,顯示 ip、ipv6、icmp、icmpv6、tcp、tcpv6、udp 和 udpv6 的統計資訊。

-r 顯示路由表。

-v 與 -b 選項一起使用時將顯示包含於為所有可執行元件建立連線或監聽埠的元件。

interval 重新顯示選定統計資訊,每次顯示之間暫停時間間隔(以秒計)。按 ctrl+c 停止重新顯示統計資訊。如果省略,netstat 顯示當前 配置資訊(只顯示一次)。

如何檢視埠號被哪個程式占用了

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

如何檢視埠號被哪個程式占用了

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

linux如何檢視埠被哪個程序占用?

1 lsof i 埠號 2 netstat tunlp grep 埠號 都可以檢視指定埠被哪個程序占用的情況 步驟一 lsof i lsof i 用以顯示符合條件的程序情況,lsof list open files 是乙個列出當前系統開啟檔案的工具。以root使用者來執行lsof i命令,如下圖 步...