如何查看某個端口被誰占用?

1. 部署環(huán)境

我們首先啟動一個Tomcat進程,Tomcat會占用8080端口乍桂。

2. 查詢端口

Windows 下使用netstat -ano命令查詢端口占用情況,下面的示例中可以看到效床,當(dāng)前主機啟動了MySQL服務(wù)睹酌,進程號為4732,監(jiān)聽3306端口剩檀;還啟動了Tomcat服務(wù)憋沿,進程號為7092,監(jiān)聽8080端口沪猴。

> netstat -ano

  協(xié)議    本地地址                外部地址                 狀態(tài)             PID
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       4732     # MySQL
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092     # IPv4 Tomcat
  TCP    [::]:8080              [::]:0                 LISTENING       7092     # IPv6 Tomcat
  UDP    0.0.0.0:53             *:*                                    2696     # DNS服務(wù)

netstat:顯示協(xié)議統(tǒng)計信息和當(dāng)前 TCP/IP 網(wǎng)絡(luò)連接辐啄。

  • -a 顯示所有連接的端口和監(jiān)聽端口。
  • -n 以數(shù)字形式顯示地址和端口號运嗜。
  • -o 顯示擁有的與每個連接關(guān)聯(lián)的進程 ID壶辜。
  • 輸出結(jié)果各列分別是1. 協(xié)議名稱TCP/UDP,2.本地地址與端口担租, 3.外部地址與端口砸民,4.連接狀態(tài),通常為LISTENING奋救,ESTABLISHED岭参,TIME_WAIT, FIN_WAIT_2等狀態(tài)尝艘,4. 進程ID

上面的查詢省略了其他不重要的連接演侯,我們也可以使用命令netstat -ano | findstr "8080"來查詢指定端口的占用情況。

> netstat -ano | findstr "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092
  TCP    [::]:8080              [::]:0                 LISTENING       7092

然后根據(jù)查詢到的進程號7092利耍,使用命令tasklist | findstr "7092"去任務(wù)列表中查詢對應(yīng)的進程信息蚌本,當(dāng)然也可以直接打開任務(wù)管理器進行查詢盔粹。

> tasklist | findstr "7092"
映像名稱             PID           會話名            會話#       內(nèi)存使用
java.exe           7092           Console          1          305,928 K

從查詢結(jié)果可知,是一個進程號為7092的Java程序占用了8080端口程癌,可以使用命令taskkill -T -F -PID 7092終止該程序舷嗡。當(dāng)然也可以在任務(wù)管理器手動終止該進程。

> taskkill -T -F -PID 7092
成功: 已終止 PID 8564 (屬于 PID 7092 子進程)的進程嵌莉。
成功: 已終止 PID 7092 (屬于 PID 13676 子進程)的進程进萄。
image.png

Linux

Linux 查詢端口占用使用 lsofnetstat命令,終止進程使用kill -9 PID命令锐峭。

# lsof -i:8000
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)

# netstat -anp | grep 8080
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1752061/mysqld 

Linux 查看端口占用情況 | 菜鳥教程 (runoob.com)

3. TCP連接信息

  1. 我們使用瀏覽器訪問http://localhost:8080/中鼠,然后查看端口占用如下所示。
  • 第 1 個TCP連接沿癞,表示Tomcat進程7092監(jiān)聽8080端口援雇,連接狀態(tài)為LISTENING

    0.0.0.0表示當(dāng)前主機椎扬,指的是本機上的所有IPV4地址惫搏,如果一個主機有兩個IP地址,192.168.1.10310.1.2.1蚕涤,并且該主機上的一個服務(wù)監(jiān)聽的地址是0.0.0.0筐赔,那么通過兩個IP地址都能夠訪問該服務(wù)。

  • 第 2 個TCP連接揖铜,表示Tomcat進程7092監(jiān)聽8080端口茴丰,連接狀態(tài)為LISTENING

    [::]表示當(dāng)前主機天吓,是IPV6地址[0000:0000:0000:0000:0000:0000:0000:0000]的縮寫贿肩。

  • 第 3-5 個TCP連接,表示瀏覽器進程15948通過2126端口失仁,與地址[::1]:8080建立了TCP連接尸曼,連接狀態(tài)為ESTABLISHED即連接已建立。

    通過任務(wù)管理器可以知道15948正是我們訪問Tomcat的瀏覽器進程萄焦。

    [::1]是環(huán)回地址控轿,用于同一臺設(shè)備中不同進程之間的通信,可以在host文件中看到拂封,locahost就是IPV6地址::1的別名茬射。

    瀏覽器第一次訪問時,為了避免建立TCP連接失敗冒签,會一次性發(fā)送三個TCP連接請求在抛,因此我們可以看到瀏覽器進程15948通過三個不同端口與地址[::1]:8080即Tomcat服務(wù)建立了TCP連接。

  • 第 6-8 個TCP連接萧恕,表示Tomcat進程7092通過8080端口與地址[::1]:2126建立了TCP連接刚梭,連接狀態(tài)為ESTABLISHED即連接已建立肠阱。

> netstat -ano | findstr "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092
  TCP    [::]:8080              [::]:0                 LISTENING       7092
  TCP    [::1]:2126             [::1]:8080             ESTABLISHED     15948
  TCP    [::1]:2127             [::1]:8080             ESTABLISHED     15948
  TCP    [::1]:2132             [::1]:8080             ESTABLISHED     15948
  TCP    [::1]:8080             [::1]:2126             ESTABLISHED     7092
  TCP    [::1]:8080             [::1]:2127             ESTABLISHED     7092
  TCP    [::1]:8080             [::1]:2132             ESTABLISHED     7092
  1. 我們再使用瀏覽器訪問http://127.0.0.1:8080/,然后查看端口占用如下所示朴读。
  • 第 2-3 個TCP連接屹徘,表示瀏覽器進程8176通過2927端口,與地址127.0.0.1:8080建立了TCP連接衅金,連接狀態(tài)為ESTABLISHED即連接已建立噪伊。

  • 第 4-5 個TCP連接,表示Tomcat進程7092通過8080端口與地址127.0.0.1:2927建立了TCP連接氮唯,連接狀態(tài)為ESTABLISHED即連接已建立鉴吹。

  • 通過以上連接可以看出,如果使用127.0.0.1惩琉,則建立TCP連接的是IPV4地址127.0.0.1豆励,而不是localhost代表的默認IPV6地址[::1]

> netstat -ano | findstr "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092
  TCP    127.0.0.1:2927         127.0.0.1:8080         ESTABLISHED     8176
  TCP    127.0.0.1:2928         127.0.0.1:8080         ESTABLISHED     8176
  TCP    127.0.0.1:8080         127.0.0.1:2927         ESTABLISHED     7092
  TCP    127.0.0.1:8080         127.0.0.1:2928         ESTABLISHED     7092
  TCP    [::]:8080              [::]:0                 LISTENING       7092
  1. 我們再使用瀏覽器訪問http://127.11.22.33:8080/,然后查看端口占用如下所示瞒渠。
> netstat -ano | findstr "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092
  TCP    127.0.0.1:3072         127.11.22.33:8080      ESTABLISHED     8176
  TCP    127.11.22.33:8080      127.0.0.1:3072         ESTABLISHED     7092

可以看到肆糕,TCP連接的地址變?yōu)榱?code>127.11.22.33:8080,這是因為地址 127.0.0.1127.255.255.255均為環(huán)回地址在孝。

環(huán)回地址

用于主機向自身發(fā)送通信的特殊地址,用于同一臺設(shè)備中不同進程之間的通信淮摔。也就是說私沮,這些數(shù)據(jù)包不會通過外部網(wǎng)絡(luò)接口。

IPv4 的環(huán)回地址是保留地址之一 127.0.0.1和橙。盡管只使用 127.0.0.1 這一個地址仔燕,但均予以保留。此地址塊中的任何地址都將環(huán)回到本地主機中魔招。我們可以使用瀏覽器訪問http://127.1.2.3:8080/晰搀,同樣可以訪問到Tomcat服務(wù)。

與 IPv4 一樣办斑,IPv6 也提供了特殊環(huán)回地址以供測試使用外恕,發(fā)送到此地址的數(shù)據(jù)報會環(huán)回到發(fā)送設(shè)備。不過乡翅,IPv6 中環(huán)回地址只有一個鳞疲,為 0:0:0:0:0:0:0:1,一般用零的壓縮形式表示為[::1]蠕蚜。

  1. 我們再使用手機瀏覽器尚洽,訪問在同一局域網(wǎng)內(nèi)的Tomcat進程,http://192.168.1.103:8080/靶累,然后查看端口占用如下所示腺毫。
> netstat -ano|findstr "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7092
  TCP    192.168.1.103:8080     192.168.1.101:38513    ESTABLISHED     7092
  TCP    192.168.1.103:8080     192.168.1.101:38515    ESTABLISHED     7092
  TCP    192.168.1.103:8080     192.168.1.101:38517    ESTABLISHED     7092
  TCP    [::]:8080              [::]:0                 LISTENING       7092
  • 第 2-4 個TCP連接癣疟,表示Tomcat進程7092通過8080端口與外部地址192.168.1.101:38513建立了TCP連接,連接狀態(tài)為ESTABLISHED即連接已建立潮酒。

4. TCP 連接狀態(tài)

這個詳見TCP三次握手和四次揮手睛挚。

  • LISTENING 監(jiān)聽狀態(tài) 常見
  • ESTABLISHED 連接已建立 常見
  • SYN-SENT 客戶端TCP建立連接請求已發(fā)送,等待服務(wù)端響應(yīng)澈灼。
  • SYN-REVD 服務(wù)端接收到客戶端的TCP建立連接請求并響應(yīng)竞川,等待客戶端確認。
  • FIN-WAIT-1 客戶端TCP斷開連接請求已發(fā)送叁熔,等待服務(wù)端響應(yīng)委乌。
  • CLOSE-WAIT 服務(wù)端接收到客戶端的TCP斷開連接請求并響應(yīng),進入等待狀態(tài)荣回,等待數(shù)據(jù)傳輸完成遭贸。
  • FIN-WAIT-2 客戶端等待服務(wù)端的TCP斷開請求。 常見
  • LAST-ACK 服務(wù)端TCP斷開連接請求已發(fā)送心软,等待客戶端響應(yīng)壕吹。
  • TIME-WAIT 客戶端接收到服務(wù)端的TCP斷開連接請求并響應(yīng),等待一段時間進入關(guān)閉狀態(tài)删铃。 常見
  • CLOSE 連接關(guān)閉
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耳贬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子猎唁,更是在濱河造成了極大的恐慌咒劲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诫隅,死亡現(xiàn)場離奇詭異腐魂,居然都是意外死亡,警方通過查閱死者的電腦和手機逐纬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門蛔屹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豁生,你說我怎么就攤上這事兔毒。” “怎么了甸箱?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵眼刃,是天一觀的道長。 經(jīng)常有香客問我摇肌,道長擂红,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮昵骤,結(jié)果婚禮上树碱,老公的妹妹穿的比我還像新娘。我一直安慰自己变秦,他們只是感情好成榜,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹦玫,像睡著了一般赎婚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上樱溉,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天挣输,我揣著相機與錄音,去河邊找鬼福贞。 笑死撩嚼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挖帘。 我是一名探鬼主播完丽,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拇舀!你這毒婦竟也來了逻族?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤骄崩,失蹤者是張志新(化名)和其女友劉穎瓷耙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刁赖,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年长搀,在試婚紗的時候發(fā)現(xiàn)自己被綠了宇弛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡源请,死狀恐怖枪芒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谁尸,我是刑警寧澤舅踪,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站良蛮,受9級特大地震影響抽碌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜决瞳,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一货徙、第九天 我趴在偏房一處隱蔽的房頂上張望左权。 院中可真熱鬧,春花似錦痴颊、人聲如沸赏迟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锌杀。三九已至,卻和暖如春泻仙,著一層夾襖步出監(jiān)牢的瞬間糕再,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工饰豺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亿鲜,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓冤吨,卻偏偏與公主長得像蒿柳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子漩蟆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容