当前位置: 首页 > article >正文

Ubuntu 系统端口查询与管理详细分析

目录

  • 前言
  • 1. 查询端口占用情况
  • 2. 释放占用的端口
  • 3. 修改应用程序的端口

前言

Window的端口被占用,类似的知识点:重装mysql时3306端口被占用解决方法

事情起因是宝塔的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 等),也可以在它们的配置文件中修改端口


http://www.kler.cn/a/397211.html

相关文章:

  • Java项目实战II基于微信小程序的电子商城购物平台(开发文档+数据库+源码)
  • HBuilder(uniapp) 配置android模拟器
  • Nginx 上安装 SSL 证书并启用 HTTPS 访问
  • Tensorflow基本概念
  • Ubuntu20.04 解决一段时间后键盘卡死的问题 ubuntu
  • 使用 npm 安装 Yarn
  • linux001.在Oracle VM VirtualBox中ubuntu虚拟系统扩容
  • mongoDB的安装及使用
  • 中缀表达式转后缀表达式
  • 重学SpringBoot3-各种配置的优先级对比
  • [JAVA]MyBatis框架—如何获取SqlSession对象实现数据交互(基础篇)
  • 使用 ts-node 运行 ts文件,启动 nodejs项目
  • 八、鸿蒙开发-网络请求、应用级状态管理
  • 去地面算法——depth_clustering算法调试(1)
  • 视频孪生技术在金融银行网点场景中的应用价值
  • 使用json配置动态区间及动态执行公式
  • IOPaint模型部署教程
  • 【图像压缩感知】论文阅读:Content-Aware Scalable Deep Compressed Sensing
  • Oracle EBS FORM界面获取某LOV的方法
  • CentOS 源码安装FFmpeg
  • 【Qt】报错error: undefined reference to `vtable for的最简单解决
  • 企业选择CPU服务器都有哪些用途?
  • 内部排序和外部排序以及常见算法和时间复杂度
  • C# VS的常用功能(一) 视图篇
  • 小地图(二)
  • yaml的学习记录