Ubuntu系统端口查询与管理的详细分析
作者:码农研究僧
前言
Window的端口被占用,事情起因是宝塔的CPU负载过大,重启服务进程之后还是爆,后续发现是端口被占用,导致服务重启不起来!
对应需要kill相关进程的端口即可,对此补充相关知识
1. 查询端口占用情况
使用 lsof 命令查询端口占用
lsof(list open files)是一个强大的工具,用来列出系统中打开的文件,包括网络连接、端口等
查询特定端口(例如 48080)被哪个进程占用:sudo lsof -i :48080
参数 | 描述 |
---|---|
COMMAND | 进程名(例如 nginx、java) |
PID | 进程的ID(进程标识符) |
USER | 进程的拥有者 |
FD | 文件描述符(表示文件类型和打开模式) |
TYPE | 连接类型(IPv4、IPv6) |
DEVICE、SIZE/OFF、NODE | 网络连接的详细信息 |
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)正在监听端口 48080
使用 netstat 命令查询端口占用
netstat(network statistics)命令可以用来显示网络连接、路由表、接口统计信息等
要查看所有占用端口的进程:sudo netstat -tuln
参数 | 描述 |
---|---|
Proto | 协议(TCP或UDP) |
Recv-Q、Send-Q | 接收队列和发送队列的大小 |
Local Address | 本地地址和端口 |
Foreign Address | 远程地址和端口(对于监听中的端口为空) |
State | 连接状态(如 LISTEN 表示正在监听) |
PID/Program name | 进程ID和程序名称(需要-p选项) |
查看端口 48080 是否被占用:sudo netstat -tuln | grep :48080
示例输出:
tcp6 0 0 :::48080 :::* LISTEN
此命令代表48080 端口在系统中是监听状态
使用 ss 命令查询端口占用
ss(socket statistics)是一个比 netstat 更快速的工具,它可以用于查看网络连接、监听端口等信息
查看所有监听端口:sudo ss -tuln
查看特定端口:sudo ss -tuln | grep :48080
示例输出:
LISTEN 0 128 *:48080 *:*
这表示端口 48080 正在监听中
2. 释放占用的端口
确认端口被某个进程占用时,可以选择停止该进程或杀死该进程以释放端口
停止服务进程
确认是一个服务进程(如 nginx 或 apache)占用了端口,可以通过系统的服务管理工具停止该服务
sudo systemctl stop nginx
或者,如果是其他服务(比如 Tomcat 或 MySQL),可以使用类似的命令来停止它们
杀死占用端口的进程
希望直接杀死占用端口的进程(如 java 进程),可以使用 kill 命令
使用 lsof 或 netstat 找到占用端口的进程ID(PID)
假设PID是 2081361,可以通过以下命令停止它:sudo kill -9 2081361
-9 参数表示强制杀死该进程
3. 修改应用程序的端口
不希望停止其他进程,另一种解决方案是修改你正在运行的应用程序使用不同的端口
修改 Spring Boot 的端口
在Spring Boot应用中,可以修改 application.properties 或 application.yml 文件来设置新的端口
application.properties: server.port=8081
application.yml:
server: port: 8081
保存后重启Spring Boot应用,新的端口配置生效
修改其他应用程序的端口
对于其他应用程序(例如 Node.js、Tomcat、nginx 等),也可以在它们的配置文件中修改端口
到此这篇关于Ubuntu系统端口查询与管理的详细分析的文章就介绍到这了,更多相关Ubuntu端口查询与管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!