Ubuntu系統(tǒng)端口查詢與管理的詳細(xì)分析
前言
Window的端口被占用,事情起因是寶塔的CPU負(fù)載過大,重啟服務(wù)進(jìn)程之后還是爆,后續(xù)發(fā)現(xiàn)是端口被占用,導(dǎo)致服務(wù)重啟不起來!
對應(yīng)需要kill相關(guān)進(jìn)程的端口即可,對此補充相關(guān)知識
1. 查詢端口占用情況
使用 lsof 命令查詢端口占用
lsof(list open files)是一個強大的工具,用來列出系統(tǒng)中打開的文件,包括網(wǎng)絡(luò)連接、端口等
查詢特定端口(例如 48080)被哪個進(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ìn)程:sudo netstat -tuln
參數(shù) | 描述 |
---|---|
Proto | 協(xié)議(TCP或UDP) |
Recv-Q、Send-Q | 接收隊列和發(fā)送隊列的大小 |
Local Address | 本地地址和端口 |
Foreign Address | 遠(yuǎn)程地址和端口(對于監(jiān)聽中的端口為空) |
State | 連接狀態(tài)(如 LISTEN 表示正在監(jiān)聽) |
PID/Program name | 進(jìn)程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. 釋放占用的端口
確認(rèn)端口被某個進(jìn)程占用時,可以選擇停止該進(jìn)程或殺死該進(jìn)程以釋放端口
停止服務(wù)進(jìn)程
確認(rèn)是一個服務(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ù)表示強制殺死該進(jìn)程
3. 修改應(yīng)用程序的端口
不希望停止其他進(jì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)文章
Linux查看分區(qū)文件系統(tǒng)類型的方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Linux查看分區(qū)文件系統(tǒng)類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08Ubuntu Server 16.04 LTS 上安裝 LAMP圖解教程
這篇文章主要介紹了Ubuntu Server 16.04 LTS 上安裝 LAMP圖解教程,需要的朋友可以參考下2016-09-09Linux系統(tǒng)重啟后MySQL數(shù)據(jù)丟失問題的解決步驟
今天分享一個在Linux系統(tǒng)中經(jīng)常遇到的問題:系統(tǒng)重啟后發(fā)現(xiàn)MySQL無法啟動,而且數(shù)據(jù)似乎丟失了,這個問題可能會讓人驚慌失措,但別擔(dān)心,通常情況下這只是因為數(shù)據(jù)盤沒有正確掛載導(dǎo)致的,現(xiàn)在我們將深入探討這個問題的原因、解決方法以及如何預(yù)防它的再次發(fā)生2024-09-09解決CentOS7.6 yum報錯GPG密鑰不匹配:GPG Keys are c
文章主要講述了在使用yum安裝`devtoolset-8-gcc*`時遇到GPG密鑰不匹配的問題,并提供了兩種解決方法:一是檢查并修正.repo文件中的GPG密鑰設(shè)置,二是同時保留阿里云和CentOS官方的GPG密鑰,最終成功安裝了gcc2025-03-03詳解阿里云CentOS Linux服務(wù)器上用postfix搭建郵件服務(wù)器
本篇文章主要介紹了詳解阿里云CentOS Linux服務(wù)器上用postfix搭建郵件服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12如何解決win10與Ubuntu16.04時間不同步的問題的方法
本篇文章主要介紹了如何解決win10與Ubuntu16.04時間不同步的問題的方法,非常具有實用價值,需要的朋友可以參考下2017-05-05CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)
這篇文章主要介紹了CentOS7部署Flask(Apache、mod_wsgi、Python36、venv),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01Ubuntu14.04服務(wù)器環(huán)境下配置PHP7.0+Apache2+Mysql5.7的方法
這篇文章主要介紹了Ubuntu14.04服務(wù)器環(huán)境下配置PHP7.0+Apache2+Mysql5.7的方法,較為詳細(xì)的分析了Ubuntu14.04操作系統(tǒng)環(huán)境下配置PHP7.0+Apache2+Mysql5.7的具體步驟與相關(guān)命令使用技巧,需要的朋友可以參考下2018-04-04