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

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

