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

如果端口沒有被占用,這兩個(gè)命令將沒有輸出。
另外,以上命令可能需要使用 `sudo` 或具有足夠權(quán)限的用戶才能運(yùn)行。
二、釋放端口
如果通過上面的操作發(fā)現(xiàn)某個(gè)端口被占用,決定釋放該端口。
通常,端口的釋放是通過終止占用該端口的進(jìn)程來實(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)的縮寫,每個(gè)字母表示特定的信息:
-t: 顯示 TCP 連接信息。-u: 顯示 UDP 連接信息。-l: 顯示監(jiān)聽狀態(tài)的連接。-p: 顯示正在使用套接字的進(jìn)程。-n: 以數(shù)字形式顯示地址和端口,而不進(jìn)行名稱解析。
四、lsof
`lsof`(List Open Files)是一個(gè)用于列出在Unix和類Unix系統(tǒng)上打開文件的工具。
它還可以用于顯示進(jìn)程打開的網(wǎng)絡(luò)連接、Unix域套接字等。
以下是一些常見的用法示例:
1. 列出所有打開的文件
lsof
這將列出所有打開的文件,包括普通文件、目錄、設(shè)備文件和網(wǎng)絡(luò)套接字等。
2. 列出特定進(jìn)程打開的文件
lsof -p <PID>
將 `<PID>` 替換為要查看的進(jìn)程的進(jìn)程ID,這樣你就可以查看特定進(jìn)程打開的文件。
3. 列出特定端口被哪個(gè)進(jìn)程占用
lsof -i :<端口號(hào)>
替換 `<端口號(hào)>` 為要查看的端口號(hào),這將顯示占用該端口的進(jìn)程信息。
4. 列出某個(gè)目錄下被哪個(gè)進(jìn)程占用的文件
lsof /path/to/directory
這將顯示在指定目錄下被打開的文件。
5. 列出網(wǎng)絡(luò)連接信息
lsof -i
這將顯示系統(tǒng)上的所有網(wǎng)絡(luò)連接,包括打開的套接字、端口和連接狀態(tài)。
6. 列出Unix域套接字信息:
lsof -U
這將顯示系統(tǒng)上的所有Unix域套接字信息。
五、fuser
這個(gè)命令用于顯示使用特定文件、套接字或文件系統(tǒng)的進(jìn)程信息。
以下是一些常見選項(xiàng)的解釋:
-a,--all:顯示所有進(jìn)程的信息,包括沒有訪問任何文件的進(jìn)程。-i,--interactive:在終止進(jìn)程之前請(qǐng)求確認(rèn)。與 -k 選項(xiàng)一起使用時(shí)生效。-I,--inode:使用 inode 號(hào)碼而不是文件名進(jìn)行比較。-k,--kill:終止訪問指定文件的進(jìn)程。-l,--list-signals:列出可用的信號(hào)名稱。-m,--mount:顯示使用指定文件系統(tǒng)或塊設(shè)備的所有進(jìn)程。-M,--ismountpoint:只在指定名稱是掛載點(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:顯示用戶 ID 以及進(jìn)程信息。-v,--verbose:提供詳細(xì)輸出。-w,--writeonly:僅終止具有寫訪問權(quán)限的進(jìn)程。-V,--version:顯示版本信息。-4,--ipv4:僅搜索 IPv4 套接字。-6,--ipv6:僅搜索 IPv6 套接字。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux解決rsyslog服務(wù)占用內(nèi)存過高的辦法
當(dāng)我們使用top命令查看內(nèi)存占用時(shí),發(fā)現(xiàn)rsyslogd內(nèi)存占用很高,所以接下來這篇文章給大家介紹了Linux解決rsyslog服務(wù)占用內(nèi)存過高的辦法,文中有詳細(xì)的圖文介紹,需要的朋友可以參考下2024-05-05
centos系統(tǒng)為php安裝memcached擴(kuò)展步驟
這篇文章主要介紹了centos系統(tǒng)為php安裝memcached擴(kuò)展的步驟,大家參考使用吧2014-01-01
LINUX安全設(shè)置之關(guān)于GRUB加密圖文教程全解
關(guān)于LINUX的啟動(dòng)裝載程序GRUB加密,算是一件很平常的工作。但是今天我在網(wǎng)上查這個(gè)東西,發(fā)現(xiàn)好多人都寫的很簡(jiǎn)單,而且方法都比較過時(shí)。所以,在此我更新下GRUB加密。和大家分享下。2010-03-03
centos7下安裝oracle11gR2的詳細(xì)步驟
本篇文章主要介紹了centos7下安裝oracle11gR2的詳細(xì)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
Apache多虛擬主機(jī)多站點(diǎn)配置的兩種實(shí)現(xiàn)方案
本文介紹了在Apache服務(wù)器上配置多虛擬主機(jī)的兩種方案:基于IP地址的虛擬主機(jī)配置和基于域名的虛擬主機(jī)配置,詳細(xì)說明了每個(gè)方案的配置步驟,以實(shí)現(xiàn)在同一臺(tái)服務(wù)器上托管多個(gè)網(wǎng)站的目的,感興趣的可以了解一下2024-09-09

