Linux和Windows下如何快速查找電腦計(jì)算機(jī)端口被誰占用
一、簡單了解"端口"
"端口"可以認(rèn)為是計(jì)算機(jī)與外界通信交流的出口。一個(gè)IP地址可以有65536(即256*256)個(gè),端口是通過端口號(hào)來標(biāo)記的,端口號(hào)只有整數(shù),范圍是0~65 535(0~256*256-1)。
認(rèn)識(shí)端口
計(jì)算機(jī)領(lǐng)域分為硬件領(lǐng)域和軟件領(lǐng)域,在硬件領(lǐng)域中,端口又被稱作接口,如常見的USB接口、網(wǎng)卡接口等;在軟件領(lǐng)域中,端口一般是指網(wǎng)絡(luò)中面向連接服務(wù)和無連接服務(wù)的通信協(xié)議端口,是一種抽象的軟件結(jié)構(gòu),包括一些數(shù)據(jù)結(jié)構(gòu)和基本輸入輸出緩沖區(qū)。
在網(wǎng)絡(luò)技術(shù)中,端口還有其他含義,一種是物理意義上的端口,如集線器、交換機(jī)、路由器等連接設(shè)備,用于連接其他的網(wǎng)絡(luò)設(shè)備的接口,常見的有RJ-45端口、Serial端口;另一種是邏輯意義上的端口,一般指TCP/IP協(xié)議中的端口,范圍是0~65535(256*256-1)。
端口分類
可以將端口按照端口號(hào)分為以下三類:
- 公認(rèn)端口(0~1023):它們緊密綁定于一些服務(wù)。通常這些端口的通信明確表明了某種服務(wù)的協(xié)議。
- 注冊端口(1 024~49 151):它們松散的綁定于一些服務(wù)。也就是說有許多服務(wù)綁定于這些端口,但是這些端口同樣用于許多其他目的。例如,許多系統(tǒng)處理動(dòng)態(tài)端口是從1024左右開始的。
- 動(dòng)態(tài)/私有端口(49 152~65 535):理論上,不應(yīng)該為服務(wù)器分配這些端口。實(shí)際上機(jī)器通常從1024起分配動(dòng)態(tài)端口。但是也有例外,SUN的RPC端口就是從32768開始。
查看系統(tǒng)開放端口
經(jīng)常查看系統(tǒng)開放端口的狀態(tài)變化,可以及時(shí)提高系統(tǒng)安全,防止自己的電腦被入侵。我們可以使用netstat命令查看自己系統(tǒng)的端口狀態(tài)。
1. 打開【命令提示符】窗口,在其中輸入netstat -a -n命令。
2. 按Enter鍵,即可看到數(shù)字顯示的TCP和UCP連接的端口號(hào)及其狀態(tài)。
關(guān)閉不必要的端口
默認(rèn)狀態(tài)下計(jì)算機(jī)系統(tǒng)會(huì)有一些沒有用或不安全的端口是開啟的,為了保障系統(tǒng)安全,可以有選擇的關(guān)閉一些端口,這里介紹通過關(guān)閉無用服務(wù)來關(guān)閉不必要的端口。
以關(guān)閉Remote Desktop Help Session Manager(Windows遠(yuǎn)程協(xié)助服務(wù))為例,具體操作步驟如下:
1. 點(diǎn)擊【開始】按鈕,在彈出的快捷菜單中執(zhí)行【控制面板】命令。
2. 在打開的【控制面板】窗口中切換到 "大圖標(biāo)"查看方式,雙擊【管理工具】圖標(biāo)。
3. 打開【管理工具】窗口,雙擊【服務(wù)】圖標(biāo)。
4. 在打開的【服務(wù)】窗口中切換到"標(biāo)準(zhǔn)"視圖模式,然后找到并雙擊"360殺毒全盤掃描服務(wù)"選項(xiàng)。
5. 在打開的對話框中單擊"禁用"選項(xiàng),然后單擊"確定"按鈕即可。(注:如果需要啟動(dòng)該服務(wù),則在該對話框中單擊"服務(wù)狀態(tài)"欄中的"啟動(dòng)"按鈕即可。啟動(dòng)服務(wù)后也可單擊"停止"按鈕來關(guān)閉該服務(wù))
二、Windows系統(tǒng)下如何查看某個(gè)端口被誰占用
開發(fā)時(shí)經(jīng)常遇到端口被占用的情況,這個(gè)時(shí)候我們就需要找出被占用端口的程序,然后結(jié)束它,本文為大家介紹如何查找被占用的端口。
1、打開命令窗口(以管理員身份運(yùn)行)
開始—->運(yùn)行—->cmd,或者是 window+R 組合鍵,調(diào)出命令窗口。

2、查找所有運(yùn)行的端口
輸入命令:
- netstat -ano
該命令列出所有端口的使用情況。
在列表中我們觀察被占用的端口,比如是 1224,首先找到它。
3、查看被占用端口對應(yīng)的 PID
輸入命令:
- netstat -aon|findstr "8081"
回車執(zhí)行該命令,最后一位數(shù)字就是 PID, 這里是 9088。

4、查看指定 PID 的進(jìn)程
繼續(xù)輸入命令:
- tasklist|findstr "9088"
回車執(zhí)行該命令。
查看是哪個(gè)進(jìn)程或者程序占用了 8081 端口,結(jié)果是:node.exe。

結(jié)束進(jìn)程
強(qiáng)制(/F參數(shù))殺死 pid 為 9088 的所有進(jìn)程包括子進(jìn)程(/T參數(shù)):
- taskkill /T /F /PID 9088
或者是我們打開任務(wù)管理器,切換到進(jìn)程選項(xiàng)卡,在PID一列查看9088對應(yīng)的進(jìn)程是誰,如果看不到PID這一列,如下圖:

之后我們就可以結(jié)束掉這個(gè)進(jìn)程,這樣我們就可以釋放該端口來使用了。
三、Linux系統(tǒng)下如何查看端口被哪個(gè)進(jìn)程占用?
1、lsof -i:端口號(hào)
2、netstat -tunlp|grep 端口號(hào)
都可以查看指定端口被哪個(gè)進(jìn)程占用的情況
工具/原料
- linux,windows
- xshell
方法/步驟
1. 【步驟一】lsof -i
2. lsof -i 用以顯示符合條件的進(jìn)程情況,lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。以root用戶來執(zhí)行l(wèi)sof -i命令,如下圖:

1.【步驟二】lsof -i:端口號(hào)
2.lsof -i:端口號(hào),用于查看某一端口的占用情況,比如查看22號(hào)端口使用情況,lsof -i:22,如下圖
1.【步驟三】netstat -tunlp
2.netstat -tunlp用于顯示tcp,udp的端口和進(jìn)程等相關(guān)情況,如下圖
1.【步驟四】netstat -tunlp|grep 端口號(hào)
2.netstat -tunlp|grep 端口號(hào),用于查看指定端口號(hào)的進(jìn)程情況,如查看22端口的情況,netstat -tunlp|grep 22,如下圖




51CTO技術(shù)棧公眾號(hào)

速覽





















