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端口查询与管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Ubuntu Server 16.04 LTS 上安装 LAMP图解教程
这篇文章主要介绍了Ubuntu Server 16.04 LTS 上安装 LAMP图解教程,需要的朋友可以参考下2016-09-09
解决CentOS7.6 yum报错GPG密钥不匹配:GPG Keys are c
文章主要讲述了在使用yum安装`devtoolset-8-gcc*`时遇到GPG密钥不匹配的问题,并提供了两种解决方法:一是检查并修正.repo文件中的GPG密钥设置,二是同时保留阿里云和CentOS官方的GPG密钥,最终成功安装了gcc2025-03-03
详解阿里云CentOS Linux服务器上用postfix搭建邮件服务器
本篇文章主要介绍了详解阿里云CentOS Linux服务器上用postfix搭建邮件服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2016-12-12
如何解决win10与Ubuntu16.04时间不同步的问题的方法
本篇文章主要介绍了如何解决win10与Ubuntu16.04时间不同步的问题的方法,非常具有实用价值,需要的朋友可以参考下2017-05-05
CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)
这篇文章主要介绍了CentOS7部署Flask(Apache、mod_wsgi、Python36、venv),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-01-01
Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法
这篇文章主要介绍了Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法,较为详细的分析了Ubuntu14.04操作系统环境下配置PHP7.0+Apache2+Mysql5.7的具体步骤与相关命令使用技巧,需要的朋友可以参考下2018-04-04


最新评论