Ubuntu系統(tǒng)端口查詢與管理的詳細(xì)分析
前言
Window的端口被占用,事情起因是寶塔的CPU負(fù)載過大,重啟服務(wù)進(jìn)程之后還是爆,后續(xù)發(fā)現(xiàn)是端口被占用,導(dǎo)致服務(wù)重啟不起來!
對應(yīng)需要kill相關(guān)進(jìn)程的端口即可,對此補(bǔ)充相關(guān)知識
1. 查詢端口占用情況
使用 lsof 命令查詢端口占用
lsof(list open files)是一個(gè)強(qiáng)大的工具,用來列出系統(tǒng)中打開的文件,包括網(wǎng)絡(luò)連接、端口等
查詢特定端口(例如 48080)被哪個(gè)進(jìn)程占用:sudo lsof -i :48080

| 參數(shù) | 描述 |
|---|---|
| COMMAND | 進(jìn)程名(例如 nginx、java) |
| PID | 進(jìn)程的ID(進(jìn)程標(biāo)識符) |
| USER | 進(jìn)程的擁有者 |
| FD | 文件描述符(表示文件類型和打開模式) |
| TYPE | 連接類型(IPv4、IPv6) |
| DEVICE、SIZE/OFF、NODE | 網(wǎng)絡(luò)連接的詳細(xì)信息 |
| NAME | 端口或IP地址信息 |
示例輸出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 2081361 www 6u IPv6 842221658 0t0 TCP localhost:48080->localhost:49738 (CLOSE_WAIT) java 2081361 www 21u IPv6 842220852 0t0 TCP localhost:48080->localhost:47856 (CLOSE_WAIT) java 2081361 www 194u IPv6 841638236 0t0 TCP *:48080 (LISTEN)
此命令代表java 進(jìn)程(PID:2081361)正在監(jiān)聽端口 48080
使用 netstat 命令查詢端口占用
netstat(network statistics)命令可以用來顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息等
要查看所有占用端口的進(jìn)程:sudo netstat -tuln
| 參數(shù) | 描述 |
|---|---|
| Proto | 協(xié)議(TCP或UDP) |
| Recv-Q、Send-Q | 接收隊(duì)列和發(fā)送隊(duì)列的大小 |
| Local Address | 本地地址和端口 |
| Foreign Address | 遠(yuǎn)程地址和端口(對于監(jiān)聽中的端口為空) |
| State | 連接狀態(tài)(如 LISTEN 表示正在監(jiān)聽) |
| PID/Program name | 進(jìn)程ID和程序名稱(需要-p選項(xiàng)) |
查看端口 48080 是否被占用:sudo netstat -tuln | grep :48080
示例輸出:
tcp6 0 0 :::48080 :::* LISTEN
此命令代表48080 端口在系統(tǒng)中是監(jiān)聽狀態(tài)
使用 ss 命令查詢端口占用
ss(socket statistics)是一個(gè)比 netstat 更快速的工具,它可以用于查看網(wǎng)絡(luò)連接、監(jiān)聽端口等信息
查看所有監(jiān)聽端口:sudo ss -tuln
查看特定端口:sudo ss -tuln | grep :48080
示例輸出:
LISTEN 0 128 *:48080 *:*
這表示端口 48080 正在監(jiān)聽中
2. 釋放占用的端口
確認(rèn)端口被某個(gè)進(jìn)程占用時(shí),可以選擇停止該進(jìn)程或殺死該進(jìn)程以釋放端口
停止服務(wù)進(jìn)程
確認(rèn)是一個(gè)服務(wù)進(jìn)程(如 nginx 或 apache)占用了端口,可以通過系統(tǒng)的服務(wù)管理工具停止該服務(wù)
sudo systemctl stop nginx
或者,如果是其他服務(wù)(比如 Tomcat 或 MySQL),可以使用類似的命令來停止它們
殺死占用端口的進(jìn)程
希望直接殺死占用端口的進(jìn)程(如 java 進(jìn)程),可以使用 kill 命令
使用 lsof 或 netstat 找到占用端口的進(jìn)程ID(PID)
假設(shè)PID是 2081361,可以通過以下命令停止它:sudo kill -9 2081361-9 參數(shù)表示強(qiáng)制殺死該進(jìn)程
3. 修改應(yīng)用程序的端口
不希望停止其他進(jìn)程,另一種解決方案是修改你正在運(yùn)行的應(yīng)用程序使用不同的端口
修改 Spring Boot 的端口
在Spring Boot應(yīng)用中,可以修改 application.properties 或 application.yml 文件來設(shè)置新的端口
application.properties: server.port=8081
application.yml:
server: port: 8081
保存后重啟Spring Boot應(yīng)用,新的端口配置生效
修改其他應(yīng)用程序的端口
對于其他應(yīng)用程序(例如 Node.js、Tomcat、nginx 等),也可以在它們的配置文件中修改端口
到此這篇關(guān)于Ubuntu系統(tǒng)端口查詢與管理的詳細(xì)分析的文章就介紹到這了,更多相關(guān)Ubuntu端口查詢與管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache James配置連接達(dá)夢數(shù)據(jù)庫的步驟
本文介紹了如何配置Apache James郵件服務(wù)器以連接達(dá)夢數(shù)據(jù)庫,包括導(dǎo)入JDBC驅(qū)動、修改配置文件和SQL語句,并提供了解決啟動報(bào)錯(cuò)的方法2024-09-09
Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法
輕松配置PHP5.3.3+Apache2.2.16+MySQL5.1.49,下面是有詳細(xì)的步驟說明。2010-09-09
配置Linux服務(wù)器SSH 安全訪問的四個(gè)小技巧
越來越多的站長,開始使用獨(dú)立主機(jī)(Dedicated Host)和 VPS。而為了節(jié)省成本或提高性能,不少人的獨(dú)機(jī)和 VPS,都是基于 unmanaged 的裸機(jī),一切都要自己 DIY。這時(shí)候,安全策略的實(shí)施,就猶為重要。2010-12-12
Linux查詢服務(wù)器系統(tǒng)版本號的多種方法
在 Linux 系統(tǒng)管理和維護(hù)工作中,了解當(dāng)前操作系統(tǒng)的版本信息是最基礎(chǔ)也是最重要的操作之一,系統(tǒng)版本不僅關(guān)系到軟件兼容性、安全更新策略,還直接影響到故障排查和技術(shù)支持的效率,本文給大家介紹了Linux查詢服務(wù)器系統(tǒng)版本號的多種方法,需要的朋友可以參考下2025-08-08

