国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何查看端口占用(windows,linux,mac)

這篇具有很好參考價值的文章主要介紹了如何查看端口占用(windows,linux,mac)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如何查看端口占用,各平臺

一、背景

如何查看端口占用?網(wǎng)上很多,但大多直接丟出命令,沒有任何解釋關(guān)于如何查看命令的輸出

所謂 “查端口占用”,即查看某個端口是否被某個程序占用,如果有,被哪個進(jìn)程占用。PS:進(jìn)程都有進(jìn)程ID標(biāo)識。

二、命令概覽

適用平臺 命令 作用 補(bǔ)充
Linux netstat -tunlp|grep 8080 查看占用8080端口的進(jìn)程ID MacOS中用不了。看第四列(即本地地址),看完全匹配端口號的那行所對應(yīng)的PID。這個命令本身就查出LISTEN正在監(jiān)聽的! (Linux顯示為LISTEN,Windows顯示為LISTENING,一個意思)
Windows netstat -ano|findstr 8080 查看8080端口占用的進(jìn)程ID findstr也可以用findStr,8080也可以用雙引號 “8080”。看第二列(即本地地址),看完全匹配端口號且狀態(tài)是LISTENING的那行所對應(yīng)的PID。
MacOS/Linux lsof -i:8080 查看8080端口占用的進(jìn)程ID MacOS中用,Linux可以用,但Linux可能默認(rèn)沒這個命令得自己裝。如果遇到問題可以嘗試加上sudo在前面:sudo lsof -i:8080,這個命令是精確匹配8080端口,不會將18080的占用顯示出來

注意,Linux的LISTEN狀態(tài)就是Windows里的LISTENING狀態(tài),一個意思用了不同單詞

三、命令的輸出結(jié)果詳細(xì)解釋

3.1、Windows:netstat -ano|findstr 8080

將端口號替換成你想查的的端口號即可

3.1.1、返回的結(jié)果類似于

macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

這么多列,從左到右的含義是:協(xié)議、本地地址、外部地址、狀態(tài)、進(jìn)程ID

記不住使用 netstat -ano 可輸出表頭(注意表頭和值有點沒對齊)
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

netstat -ano|findstr 8080 的findstr,或者Linux的grep的含義是對前面的輸出的結(jié)果,即一行行的結(jié)果,過濾出帶有8080字符串的每一行,重新組成結(jié)果。過濾規(guī)則是前后模糊匹配,即%yourKeyword%,無論一行中哪列帶有8080字符串都會過濾出來,比如本地地址或外部地址都有可能因為含有8080而被匹配。顯然表頭因為不包含8080會被過濾掉,這就是為什么過濾后不顯示表頭的原因,你用 netstat -ano|findstr 本地 就可以過濾出表頭。

3.1.2 命令的輸出結(jié)果解讀正式開始

如果什么都沒輸出,就是沒有任何進(jìn)程占用這個端口
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

如果有占用,至少會輸入如下
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

有時候復(fù)雜一點,會輸出
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

如何查看呢,這么多8080,而且進(jìn)程ID還不一樣

  • 首先要看第二列,看第二列中是8080端口的
  • 最后看 LISTENING 狀態(tài)的

這樣過濾后就會剩下2條,其中一條是IPv4另一條是IPv6,都是一樣的,提示被12636進(jìn)程占用

IPv4的寫法:0.0.0.0:8080,IPv6的寫法:[::]:8080

有時候會查不到LISTENING狀態(tài)的,但是又查出了其他的東西,這時候其實是沒有端口占用的
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

這種情況的出現(xiàn)是因為,比如8080本身是啟動的,被訪問后就會留下痕跡,然后8080的進(jìn)程被殺掉后則LISTENING狀態(tài)的立即會消失,但是其他狀態(tài)的還會緩存一段時間,實際測試過一段時間(具體我沒數(shù)多久)后再查,就什么都沒了

3.1.3 其他可能的疑惑的說明
  • 為什么有2行?

    一行是IPv4的,另一行IPv6。雖然2行但進(jìn)程ID其實是相同的,沒有不一致。其實詳細(xì)的我也不那么清楚,有知道更多細(xì)節(jié)的可以留言。

  • 為什么要看第二列(本地地址),為什么是第二列不是第三列(外部地址),為什么要看 LISETNING 狀態(tài)的?

    • 首先,基礎(chǔ)知識是,雙方要連接,則雙方的進(jìn)程都得有地址(IP和端口號)才能連,所以有兩個地址。

      比如你在瀏覽器訪問某個網(wǎng)站,表面看似乎你本機(jī)不需要IP和端口,實際你打開瀏覽器的開發(fā)者工具,可以看到發(fā)出的每個請求,都有你本地

    • 一般來說,你要查某個端口被占用,那這個端口肯定是被一直占用著才犯得著你來排查,所以要查 LISTENING 狀態(tài)的,因為 LISTENING 就是持久占用、正在監(jiān)聽中的。

    • 要查看本地地址而不是遠(yuǎn)程,是因為本地地址才是某個服務(wù)啟動之后一直占用端口的,遠(yuǎn)程地址是遠(yuǎn)程要連接本機(jī)的IP和端口,肯定是不用管遠(yuǎn)程地址,畢竟遠(yuǎn)程地址要連接服務(wù)器用的一般都是臨時的端口號用完即回收的

      我們在使用 jmeter 壓測的時候,其實是有個基礎(chǔ)知識的,就是你要模擬超過6萬多個用戶同時訪問某個接口,單機(jī)是不行的。因為,比如你的 jmeter 安裝在A機(jī)器,操作系統(tǒng)最多就65536個端口號,要在A機(jī)器同時模擬這么用戶,就得同時起這么多線程,一個線程代表一個用戶,那每個線程要占用一個端口號跟被壓測的服務(wù)器上的接口通信,一臺機(jī)器的最多65536個端口號被同時使用,所以一臺機(jī)器能同時壓測的數(shù)量自然是受到最大端口數(shù)限制的

    • 第二列中的 0.0.0.0:8080 中,0.0.0.0 是指不限制遠(yuǎn)程的端口號

      熟悉 Redis 配置的都知道有個 bind 配置,0.0.0.0就是表示誰都可以連上來,而127.0.0.1就是只有本地可連,這樣子可以限制遠(yuǎn)程連上來的IP,更安全。這里是同樣的意思
      macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

3.2、Linux (有些原理的東西跟Windows一樣,建議有不清楚的可以翻看Windows的)

使用 netstat -tunlp|grep 8080,該命令記憶tunlp,tun+lp,囤老婆。。。最后輸出的列的順序跟這些字母沒關(guān)系,例如netstat -tunpl|grep 8080 輸出的并不會調(diào)換列的位置

由于該命令的 l 參數(shù)只查出 LISTEN 狀態(tài)(即監(jiān)聽中)的了,所以不需要人工過濾監(jiān)聽中的狀態(tài)了,只需要看第4列的地址,即本地地址,只要看這列能完整匹配你要查的端口號即可,匹配后的那行的PID就是你要找的。

同樣的,你若不知道表頭,可以讓命令去掉grep的部分查一下,即 netstat -tunlp 查下,可以發(fā)現(xiàn)依次是:Proto,Recv-Q,Send-Q,Local Address,F(xiàn)oreign Address,State,PID/Program name

(TODO:補(bǔ)充截圖)

3.3、MacOS
3.3.1、使用 lsof -i:8080

可以查占用8080端口的程序,如果需要可以加sudo,如sudo lsof -i:8080

結(jié)果解讀

  • 輸出的結(jié)果如下圖,有多個,但是要看LISTEN狀態(tài)的。

  • 這個命令的端口參數(shù)是精確匹配的,即精確匹配8080,不會匹配到18080的端口的占用,我已經(jīng)做過了實驗,驗證過。

如下圖,如果某個端口沒有占用,則什么都沒
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

如下圖,如果雖然有輸出結(jié)果,但是沒有LISTEN狀態(tài)的(看箭頭括號里的),也是沒有任何程序占用

(為什么會沒有LISTEN狀態(tài)的?這個可能是因為之前的緩存,如果剛剛8080端口的程序被訪問過,然后8080端口程序立即被殺掉,就立即沒有LISTEN狀態(tài)的,但是因為訪問過8080端口的程序就會有點緩存,過一段時間再查就會發(fā)現(xiàn)以下的信息都沒了)
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

如下圖,如果有一條是LISTEN狀態(tài)的,這樣查看PID就找到了占用程序
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

怎么證明我上述 lsof -i:8080 查出來的8080而不是18080的?我同時啟動了8080和18080兩個web程序,可以看到lsof -i:8080的結(jié)果沒有摻雜18080端口的結(jié)果,而且使用 lsof -i:18080是能正確找到真正的占用程序的
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

3.3.2 使用 netstat 命令(明確這個命令似乎行不通)

MacOS也是可以使用 netstat 命令,只是參數(shù)跟 Linux的不太一樣,這是因為macOS 使用的是基于 BSD 的網(wǎng)絡(luò)工具,因此 netstat 命令的參數(shù)和輸出格式可能會與 Linux 中的稍有不同。

使用的命令是 netstat -an|grep 8080,但是非常不幸的是這個命令不能輸出PID列, netstat --help查看了幫助文檔似乎也沒什么參數(shù)可以支持,所以暫時無解,無法使用netstat在MacOS中查看端口占用。評論區(qū)知道的可以補(bǔ)充一下。

四、補(bǔ)充:

關(guān)于netstat的用法,在Linux/Windows中可以使用 netstat --help 列出后面的選項的字母代表的意思,Windows默認(rèn)輸出中文,還可以先 chcp 437命令之后切換成英文之后再查命令的幫助。

  • Windows 中文版和英文版
    macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

中文版如下
macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

  • Linux

(TODO待補(bǔ)充)

  • MacOS

    • lsof命令
      macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos

    • netstat 命令

      下面的命令提示了使用方式,似乎提示了 illegal option,也許 netstat --help 對于 macOS 來說并不是查看命令的方法,只是因為用錯了命令才提示正確的Usage?

      不管怎么樣,都提示了使用方式,如果不嫌長篇大論,可以使用 man nestat 查看命令的使用方式
      macbook 查看端口占用,Linux/Shell/硬件/操作系統(tǒng),windows,linux,macos文章來源地址http://www.zghlxwxcb.cn/news/detail-767085.html

到了這里,關(guān)于如何查看端口占用(windows,linux,mac)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • windows下如何查看端口占用情況?

    開始--運行--cmd 進(jìn)入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之后在任務(wù)管理器中找到這個PID所對應(yīng)的程序如果任務(wù)管理器中沒有PID這一項,可以在任務(wù)管理器中選\\\"查看\\\"-\\\"選擇列\(zhòng)\\" ??????? 經(jīng)常,我們在啟動應(yīng)用的時候發(fā)現(xiàn)系統(tǒng)需要的端口被別的程序占用,如何知道

    2024年02月06日
    瀏覽(26)
  • Windows如何查看某個端口被占用的情況?

    Windows如何查看某個端口被占用的情況?

    在工作中,有時會發(fā)現(xiàn)端口被占用的情況,導(dǎo)致軟件報錯或者服務(wù)無法啟動等問題。在不知道具體哪個進(jìn)程占用該端口號的情況下,我們可以用下面方法來查找。 舉例:我現(xiàn)在發(fā)現(xiàn)8090端口被占用了,我現(xiàn)在需要找到并殺掉該進(jìn)程。 1、打開命令窗口(以管理員身份運行) 開始

    2024年02月06日
    瀏覽(33)
  • Linux 查看端口占用情況

    Linux 查看端口占用情況可以使用 lsof 、ss和 netstat 命令。 lsof(list open files)是一個列出當(dāng)前系統(tǒng)打開文件的工具。lsof 查看端口占用語法格式: lsof -i:端口號 如查看服務(wù)器 2379端口的占用情況: 可以看到 2379 端口已經(jīng)被輕 etcd 服務(wù)占用。 lsof -i 需要 root 用戶的權(quán)限來執(zhí)行,如下

    2024年02月11日
    瀏覽(32)
  • linux 查看端口占用

    使用lsof 可以使用lsof -i:端口號 來查看端口占用情況 使用netstat 可以使用netstat -tunlp | grep 端口號 來查看指定的端口號的進(jìn)程情況 https://zhhll.icu/2021/linux/日常管理/查看端口占用/ 本文由 mdnice 多平臺發(fā)布

    2024年02月10日
    瀏覽(24)
  • linux查看服務(wù)端口占用情況

    linux查看服務(wù)端口占用情況

    1、netstat命令 查看所有使用的端口 netstat -tunlp 參數(shù)說明: 參數(shù) 作用 -t 指明顯示TCP端口 -u 指明顯示UDP端口 -l 僅顯示監(jiān)聽套接字(所謂套接字就是使應(yīng)用程序能夠讀寫與收發(fā)通訊協(xié)議(protocol)與資料的程序) -p 顯示進(jìn)程標(biāo)識符和程序名稱,每一個套接字/端口都屬于一個程序。

    2024年02月16日
    瀏覽(26)
  • Windows下如何查看某個端口被誰占用

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

    1、打開命令窗口(以管理員身份運行) 開始—-運行—-cmd,或者是?window+R?組合鍵,調(diào)出命令窗口。 2、查找所有運行的端口 輸入命令: ? 該命令列出所有端口的使用情況。 在列表中我們觀察被占用的端口,比如是 3306,首先找到它。 3、查看被占用端口對應(yīng)的 PID 輸入命令:

    2024年02月09日
    瀏覽(21)
  • Linux 查看端口占用情況(超詳細(xì))

    Linux 查看端口占用情況(超詳細(xì))

    歡迎大家關(guān)注公眾號【小白技術(shù)圈】,發(fā)送 B02 ?or? b02 ?領(lǐng)取Linux學(xué)習(xí)資料大禮包! netstat ?是一個用于顯示網(wǎng)絡(luò)狀態(tài)信息的命令。要查看特定端口是否被占用,可以使用以下命令: -t : 顯示 TCP 連接信息 -u : 顯示 UDP 連接信息 -l : 僅顯示監(jiān)聽狀態(tài)的端口 -n : 使用數(shù)字格式顯示

    2024年01月18日
    瀏覽(21)
  • linux下常用命令查看端口占用

    在linux使用過程中,有時候需要了解當(dāng)前系統(tǒng)開放了哪些端口,并且還需要查看開放這些端口的具體進(jìn)程和用戶,可以使用netstat命令, netstat命令是一個監(jiān)控TCP/IP網(wǎng)絡(luò)的非常有用的工具,它可以顯示路由表、實際的網(wǎng)絡(luò)連接以及每一個網(wǎng)絡(luò)接口設(shè)備的狀態(tài)信息 語法 netstat [選項

    2024年02月04日
    瀏覽(30)
  • (Linux)查看端口占用并關(guān)閉進(jìn)程

    更多請參考:Linux netstat命令 kill 命令將信號發(fā)送到指定的進(jìn)程或進(jìn)程組,使它們根據(jù)該信號進(jìn)行操作。未指定信號時,默認(rèn)為 -15 參考:Linux中的Kill命令

    2024年02月17日
    瀏覽(23)
  • linux中查看占用端口的進(jìn)程方法

    linux中查看占用端口的進(jìn)程方法

    其中:95115是進(jìn)程號,mysqld是進(jìn)程名稱 注意:-tlnp和-ltnp 其中:mysqld是進(jìn)程名稱,95115是進(jìn)程id 其中:mysqld是進(jìn)程,95115是進(jìn)程id

    2024年04月10日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包