Linux下如何查看端口以及釋放端口
一、查看端口是否被占用
在 Linux 系統(tǒng)上,你可以使用 `netstat` 或 `lsof` 命令來(lái)查看端口是否被占用。
以下是兩種方法:
1、使用 `netstat` 命令
netstat -tulpn | grep <端口號(hào)>
這將顯示占用指定端口的進(jìn)程信息。
如果端口被占用,你將看到以下的輸出項(xiàng)目:
tcp 0 0 0.0.0.0:<端口號(hào)> 0.0.0.0:* LISTEN <進(jìn)程ID>/<進(jìn)程名稱(chēng)>
實(shí)例:
![]()
2、使用 `lsof` 命令
sudo lsof -i :<端口號(hào)>
這也會(huì)顯示占用指定端口的進(jìn)程信息。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME <進(jìn)程名> <PID> <用戶(hù)> <文件描述符> <類(lèi)型> <設(shè)備> <大小/偏移> <節(jié)點(diǎn)> <地址>
實(shí)例:

如果端口沒(méi)有被占用,這兩個(gè)命令將沒(méi)有輸出。
另外,以上命令可能需要使用 `sudo` 或具有足夠權(quán)限的用戶(hù)才能運(yùn)行。
二、釋放端口
如果通過(guò)上面的操作發(fā)現(xiàn)某個(gè)端口被占用,決定釋放該端口。
通常,端口的釋放是通過(guò)終止占用該端口的進(jìn)程來(lái)實(shí)現(xiàn)的。
1、使用kill命令
使用 `kill` 命令結(jié)束占用端口的進(jìn)程,其中 `<PID>` 是進(jìn)程的標(biāo)識(shí)符:
sudo kill <PID>
2、使用 fuser 命令
另一種找到并殺死占用端口的進(jìn)程的方法是使用 `fuser` 命令:
sudo fuser -k <端口號(hào)>/tcp
三、netstat
netstat 是一個(gè)用于顯示網(wǎng)絡(luò)相關(guān)信息的命令行工具,通常用于檢查網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)等。
上述 netstat 命令中,選項(xiàng) -tulpn 是一組選項(xiàng)的縮寫(xiě),每個(gè)字母表示特定的信息:
-t: 顯示 TCP 連接信息。-u: 顯示 UDP 連接信息。-l: 顯示監(jiān)聽(tīng)狀態(tài)的連接。-p: 顯示正在使用套接字的進(jìn)程。-n: 以數(shù)字形式顯示地址和端口,而不進(jìn)行名稱(chēng)解析。
四、lsof
`lsof`(List Open Files)是一個(gè)用于列出在Unix和類(lèi)Unix系統(tǒng)上打開(kāi)文件的工具。
它還可以用于顯示進(jìn)程打開(kāi)的網(wǎng)絡(luò)連接、Unix域套接字等。
以下是一些常見(jiàn)的用法示例:
1. 列出所有打開(kāi)的文件
lsof
這將列出所有打開(kāi)的文件,包括普通文件、目錄、設(shè)備文件和網(wǎng)絡(luò)套接字等。
2. 列出特定進(jìn)程打開(kāi)的文件
lsof -p <PID>
將 `<PID>` 替換為要查看的進(jìn)程的進(jìn)程ID,這樣你就可以查看特定進(jìn)程打開(kāi)的文件。
3. 列出特定端口被哪個(gè)進(jìn)程占用
lsof -i :<端口號(hào)>
替換 `<端口號(hào)>` 為要查看的端口號(hào),這將顯示占用該端口的進(jìn)程信息。
4. 列出某個(gè)目錄下被哪個(gè)進(jìn)程占用的文件
lsof /path/to/directory
這將顯示在指定目錄下被打開(kāi)的文件。
5. 列出網(wǎng)絡(luò)連接信息
lsof -i
這將顯示系統(tǒng)上的所有網(wǎng)絡(luò)連接,包括打開(kāi)的套接字、端口和連接狀態(tài)。
6. 列出Unix域套接字信息:
lsof -U
這將顯示系統(tǒng)上的所有Unix域套接字信息。
五、fuser
這個(gè)命令用于顯示使用特定文件、套接字或文件系統(tǒng)的進(jìn)程信息。
以下是一些常見(jiàn)選項(xiàng)的解釋?zhuān)?/strong>
-a,--all:顯示所有進(jìn)程的信息,包括沒(méi)有訪(fǎng)問(wèn)任何文件的進(jìn)程。-i,--interactive:在終止進(jìn)程之前請(qǐng)求確認(rèn)。與 -k 選項(xiàng)一起使用時(shí)生效。-I,--inode:使用 inode 號(hào)碼而不是文件名進(jìn)行比較。-k,--kill:終止訪(fǎng)問(wèn)指定文件的進(jìn)程。-l,--list-signals:列出可用的信號(hào)名稱(chēng)。-m,--mount:顯示使用指定文件系統(tǒng)或塊設(shè)備的所有進(jìn)程。-M,--ismountpoint:只在指定名稱(chēng)是掛載點(diǎn)時(shí)執(zhí)行。-n,--namespace SPACE:在指定的命名空間中搜索(file、udp 或 tcp)。-s,--silent:靜默執(zhí)行操作,不顯示消息。-SIGNAL:在終止進(jìn)程時(shí)發(fā)送指定的信號(hào),而不是默認(rèn)的 SIGKILL。-u,--user:顯示用戶(hù) ID 以及進(jìn)程信息。-v,--verbose:提供詳細(xì)輸出。-w,--writeonly:僅終止具有寫(xiě)訪(fǎng)問(wèn)權(quán)限的進(jìn)程。-V,--version:顯示版本信息。-4,--ipv4:僅搜索 IPv4 套接字。-6,--ipv6:僅搜索 IPv6 套接字。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux systemctl命令用法及使用說(shuō)明
systemctl是Linux中用于管理系統(tǒng)服務(wù)的工具,提供了啟動(dòng)、停止、重啟和查看服務(wù)狀態(tài)等功能,通過(guò)systemctl命令,用戶(hù)可以方便地管理各種服務(wù)2026-03-03
Linux TCP隊(duì)列的實(shí)例解讀,提高網(wǎng)絡(luò)性能和穩(wěn)定性
這篇文章主要介紹了Linux TCP隊(duì)列的實(shí)例解讀,提高網(wǎng)絡(luò)性能和穩(wěn)定性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
windows安裝apache系統(tǒng)中無(wú)apache2服務(wù)解決方案
一直都是用WIN開(kāi)發(fā)PHP,今天有用戶(hù)反映SHUGUANG CMS在APACHE+PHP中不能正常運(yùn)行,只好自己機(jī)器配置個(gè)環(huán)境測(cè)試,遇到點(diǎn)小問(wèn)題,搜索相關(guān)資料,終于解決2011-09-09
Centos7.4服務(wù)器安裝apache及安裝過(guò)程出現(xiàn)的問(wèn)題解決方法
這篇文章主要介紹了Centos7.4服務(wù)器安裝apache及安裝過(guò)程出現(xiàn)的問(wèn)題解決方法,結(jié)合實(shí)例形式分析了Centos7.4服務(wù)器安裝apache相關(guān)命令、配置操作及端口占用等常見(jiàn)問(wèn)題解決方法,需要的朋友可以參考下2019-03-03

