Linux系统中解决端口占用问题
在日常的 Linux 系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在 Linux 系统中如何识别和解决端口占用问题,帮助你高效地管理系统资源。
一、常见的端口检测工具
Linux 提供了多种命令行工具,用于检测端口的使用情况。
以下是几种常用工具的介绍:
工具 | 功能描述 | 使用场景 |
---|---|---|
netstat | 显示网络连接、路由表、接口统计等信息 | 用于查看系统的网络连接情况,已被标记为过时,但仍然被广泛使用。 |
lsof | 列出当前系统打开的文件,包括网络连接 | 查看哪些进程占用了特定端口,因为一切皆文件,包括网络连接。 |
ss | netstat 的替代工具,速度更快,功能更强大,显示套接字统计信息 | 查看所有网络连接、监听端口等,比 netstat 更高效、功能更强。 |
fuser | 显示哪些进程正在使用指定的文件、目录或套接字,并可以终止占用端口的进程 | 显示并终止占用特定端口的进程,特别有用来清理占用端口的进程。 |
每个工具都有其独特的用途,选择使用哪个工具主要取决于你的具体需求和系统环境。
二、查找占用端口的进程
假设你想查找哪个进程占用了 5000 端口,可以使用以下几种方法:
方法一:使用 netstat
netstat -tuln | grep 5000
-t
:显示 TCP 连接。-u
:显示 UDP 连接。-l
:仅显示监听状态的套接字。-n
:以数字形式显示地址和端口。
输出示例:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
然后,使用 netstat
搭配 -p
参数查看进程:
netstat -tulnp | grep 8080
输出示例:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1234/java
这里,1234
是进程 ID(PID),java
是进程名称。
方法二:使用 lsof
lsof -i :8080
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1234 user 45u IPv6 0x... 0t0 TCP *:http-alt (LISTEN)
方法三:使用 ss
ss -tuln | grep 8080
或者查看详细信息:
ss -tulnp | grep 8080
输出示例:
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=1234,fd=45))
方法四:使用 fuser
fuser 8080/tcp
输出示例:
8080/tcp: 1234
三、终止占用端口的进程
一旦确定了占用端口的进程,可以选择终止该进程以释放端口。以下是几种终止进程的方法:
方法一:使用 kill
首先,获取进程的 PID(假设为 1234)。
kill 1234
如果进程没有响应,可以使用强制终止信号:
kill -9 1234
方法二:使用 fuser
直接使用 fuser
终止占用端口的进程:
fuser -k 8080/tcp
-k
:发送 SIGKILL 信号,强制终止进程。
方法三:使用 pkill 或 killall
如果知道进程名称,可以使用 pkill
或 killall
:
pkill java
或
killall java
注意:使用 pkill
或 killall
时要小心,以免终止其他不相关的进程。
四、总结
端口占用是 Linux 系统管理中常见的问题,但通过掌握合适的工具和方法,可以快速识别和解决。本文介绍了几种常用的端口检测工具,如 netstat
、lsof
、ss
和 fuser
,并详细讲解了如何查找和终止占用端口的进程。掌握这些技巧,不仅能提高你的问题解决能力,还能提升系统管理的效率。希望本文对你在 Linux 系统中处理端口占用问题有所帮助!
相关文章:
Linux系统中解决端口占用问题
在日常的 Linux 系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在 Linux 系统中如何识别和解决端口占用问题…...
两种方式实现Kepware与PLC之间的心跳检测
两种方式实现Kepware与PLC之间的心跳检测 实现Kepware与PLC之间的心跳检测1.OPCUA 外挂程序2.Kepware Advanced Tag 实现Kepware与PLC之间的心跳检测 1.OPCUA 外挂程序 这是通过上位程序来触发心跳的一种机制,在C#中,可以利用OPC UAOPCAutodll的方式…...
使用DockerCompose部署服务
由于格式或图片解析问题,为了更好的阅读体验,可前往 阅读原文 以前我们总是用命令管理每个容器的启动、停止等等,若有多个容器时可能还存在启动优先级的问题,那就要等到指定的容器启动后再去启动另一个容器,对于整体的…...
第P5周-Pytorch实现运动鞋品牌识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: Pytorch (二)具体步骤 时间…...
react-quill 富文本组件编写和应用
index.tsx文件 import React, { useRef, useState } from react; import { Modal, Button } from antd; import RichEditor from ./RichEditor;const AnchorTouchHistory: React.FC () > {const editorRef useRef<any>(null);const [isModalVisible, setIsModalVis…...
因泰立科技激光车检器,高速公路的精准流量统计专家
高速公路自由流门架激光车检器,专为解决高速公路交通管理中的各种挑战而设计。该产品采用先进的激光测量技术,能够对动态通过的车辆进行高速动态扫描,通过测量物体表面点的反射距离,迅速换算成三维空间坐标,实现对车辆…...
windows中,git bash 使用conda命令
1、首先在Anaconda的安装路径如/Anaconda3/Scripts下,打开git bash窗口,然后输入下面的命令。 ./conda init bash 运行之后,会在用户目录下面生成.bash_profile文件,文件内容如下: # >>> conda initialize…...
《繁星路》V1.8.3(Build16632266)官方中文学习版
《繁星路》官方中文版https://pan.xunlei.com/s/VODae2_2Z3QyMF02I5y321uHA1?pwdqgsh# 作为一款星际模拟游戏,完美融合了硬科幻元素与基地建设玩法,体验改造行星的恢弘与壮阔。化身人工意识AMI,遵照基本指示推进火星改造的各项工作…...
vscode 无法使用npm, cmd命令行窗口可以正常执行
解决方法: 执行命令获得命令的位置 get-command npm 得到如下 然后删除或者修改 npm.ps1文件 让其不能使用就行。然后重启vscode即可。 pnpm 同理即可 另外加速源 国内镜像源(淘宝): npm config set registry https://regist…...
html + css 顶部滚动通知栏示例
前言 在现代网页设计中,一个吸引人的顶部滚动通知栏不仅能够有效传达重要信息,还能提升用户体验。通过使用HTML和CSS,我们可以创建既美观又功能强大的组件,这些组件可以在不影响网站整体性能的情况下提供实时更新或紧急通知。 本…...
阿里mod_asr3.0集成webrtc静音算法
alibabacloud-nls-cpp-sdk-master 先到阿里官网下载nls库的源代码,编译生成对应的库文件和头文件。 我编译的放到了以下目录。 /home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/ /home/jp/2025/alibabacloud-nls-cpp-sdk-…...
【MySQL】表的基本查询
文章目录 1. 插入 insert1.1 单行插入2.2 多行插入2.3 插入 否则更新2.4 替换 2. 查找 select2.1 select 列2.2 where 条件2.3 order by 排序2.4 筛选分页结果 3. 更新 update4. 删除 delete5. 截断 truncate6. 插入查询结果7. 聚合函数8. group by子句 我们经常说数据库就是CR…...
2025-01-07日SSH钓鱼日志
今天发现了挖矿程序部署脚本,可针对性排查。 时间来源类型详情20:16:08146.190.50.206:36694CHANNEL_REQUEST通道:1,类型:exec(command:uname -a)20:16:08146.190.50.206:36694OPEN_CHANNEL通道:1,类型&am…...
C++语言的计算机基础
C语言的计算机基础 引言 C是一种通用的编程语言,由Bjarne Stroustrup于1979年开发。它在C语言的基础上增加了面向对象的特性,使得程序设计变得更加灵活和高效。C广泛应用于系统软件、游戏开发、实时仿真等领域。本文将深入探讨C语言的基础知识…...
怎么把word试题转成excel?
在教育行业、学校管理以及在线学习平台中,试题库的高效管理是一项核心任务。许多教育工作者和系统开发人员常常面临将 Word 中的试题批量导入 Excel 的需求。本文将详细介绍如何快速将试题从 Word 转换为 Excel,帮助您轻松解决繁琐的数据整理问题&#x…...
在线商城系统设计与开发-代码(源码+数据库+文档)
亲测完美运行带论文:文末获取源码 文章目录 项目简介(论文摘要)运行视频包含的文件列表(含论文)前端运行截图后端运行截图 项目简介(论文摘要) 现代经济快节奏发展以及不断完善升级的信息化技术…...
HCIE-day10-ISIS
ISIS ISIS(Intermediate System-to-Intermediate System)中间系统到中间系统,属于IGP(内部网关协议);是一种链路状态协议,使用最短路径优先SPF算法进行路由计算,与ospf协议有很多相…...
解决SSH连接时遇到的“远程主机身份验证已更改 (WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)”警告
文章目录 引言警告信息解读造成原因解决方案 引言 在使用SSH协议进行远程服务器管理的过程中,可能会遇到这样的情况:当尝试通过SSH连接到某个远程主机时,终端突然弹出一条警告信息,提示“远程主机身份验证已更改”。 警告信息解…...
C语言的循环实现
C语言的循环实现 C语言是一种功能强大且广泛使用的编程语言,其语法简单易懂,适用于系统软件、嵌入式系统和高性能应用程序等多个领域。在C语言中,控制程序执行流程的基本结构之一就是循环。循环允许程序在满足某个条件的情况下重复执行一段代…...
如何使用vue引入three.js
在 Vue.js 项目中引入和使用 Three.js 是一个常见的需求,Three.js 是一个用于在浏览器中创建和显示动画 3D 计算机图形的 JavaScript 库。以下是一个基本的示例,展示如何在 Vue 项目中引入和使用 Three.js。 1. 创建 Vue 项目 如果你还没有一个 Vue 项…...
【C++】深入理解迭代器(Iterator)
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯什么是迭代器?迭代器与指针的比较 💯std::string 中的迭代器示例代码与图示分析运行结果:图示说明: 小提示 💯正…...
微信小程序实现长按录音,点击播放等功能,CSS实现语音录制动画效果
有一个需求需要在微信小程序上实现一个长按时进行语音录制,录制时间最大为60秒,录制完成后,可点击播放,播放时再次点击停止播放,可以反复录制,新录制的语音把之前的语音覆盖掉,也可以主动长按删…...
QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?
QPS 和 TPS 的区别是什么?QPS 大了会有什么问题,怎么解决? QPS(Queries Per Second)和 TPS(Transactions Per Second)都是衡量系统性能的重要指标,尤其是在 Web 服务、数据库和分布…...
小程序开发-页面事件之上拉触底实战案例
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…...
[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)
3.4特质 3.4.1什么是特质 特质使用trait开头,它与单例对象很像,两者都不能有输入参数,但单例对象是具体的,特质是抽象的。两者都不能用new实例化,类,单例对象,特质三者内部都可以包含字段和方…...
导航技术的分类
导航技术可以根据不同的分类标准进行划分,以下是从不同角度对导航技术的分类: 一、按导航信息获取原理分类 无线电导航:利用无线电波的传播特性来测定运动体的位置、速度等导航参数。常见的无线电导航系统包括罗兰-C、奥米加、台卡等。卫星…...
学习标准库atomic_base.h中typedef enum memory_order
1、背景 在多线程编程中,特别是在使用原子操作时,内存顺序(Memory Order)是一个关键的概念。在C11及其之后的标准中,memory_order 枚举类型(typedef enum memory_order)用于控制原子操作的内存…...
git push -f 指定分支
要将本地代码推送到指定的远程分支,你可以使用以下步骤和命令: 确认远程仓库: 确保你的本地仓库已经与远程仓库关联。你可以使用以下命令查看当前的远程仓库状态: git remote -v查看本地分支: 使用命令查看当前存在的本…...
ADO.NET知识总结3---SqlCommand命令对象
目录 4.1 SqlCommand对象介绍 4.2 SqlCommand创建 4.3 Command执行方法 4.1 SqlCommand对象介绍 SqlCommand:Ado.Net中执行数据库命令的对象。 它对SQLServer数据库执行一个T-SQL语句或存储过程。 重要属性: Connection: SqlCommand对象使用的SqlConnection对…...
CANopen转EtherCAT网关连接伺服驱动
在现代工业自动化领域,CANopen和EtherCAT是两种常见的通信协议,各自在不同的应用场景中发挥着重要作用。然而,随着工业自动化系统的日益复杂化,不同设备间的通信需求也变得多样化。因此,如何实现不同协议设备之间的无缝…...
前端基础技术全解析:从HTML前端基础标签语言开始,逐步深入CSS样式修饰、JavaScript脚本控制、Ajax异步通信以及WebSocket持久通信
目录 前言: 1.前端技术html简单了解: 1.1HTML代码是由标签构成的。 1.2.HTML 文件基本结构 1.3.HTML 常见标签 标题标签: 段落标签: p 文本格式化标签 图片标签: 超链接标签: a 测试代码: 展示效果: 表单…...
试用kotlin multiplatform
目录 多平台框架简介 示例工程建立与运行 常用库 桌面平台遇到的一些问题 使用总结 多平台框架简介 多平台的框架不少,flutter,rust,每一个都是优点明显,缺点也明显. flutter的桌面端控件少,质量不一.dart语言丑陋又慢.我不喜欢它. rust,桌面gui不成熟,成熟一些的slint…...
Scratch023-(沙漠变绿洲)
提示: 知识回顾: 1、画笔的各个属性 2、“将笔的颜色设为”积木 3、“将笔的颜色增加”积木 文章目录 前言一、案例展示二、功能分析三、步骤拆解1.背景角色和画笔的初始化(1)初始化画笔2、一起绘制一个小雨滴3、绘制多个随机的小…...
【Linux】深入理解文件系统(超详细)
目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 📌补充: 📌通常网络中用高低电平,磁盘中用磁化方向来表示。以下是具体说明: 📌如果有一块磁盘要进行销毁该怎么办? 1-2 磁盘存储结构 编辑…...
基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化
基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息,帮助分析连接池的状态和性能瓶颈: import org.apache.commons.pool2.impl.GenericO…...
微信小程序实现登录注册
文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…...
网络安全-kail linux 网络配置(基础篇)
一、网络配置 1.查看网络IP地址, 我的kail:192.168.15.128 使用ifconfig查看kail网络连接情况,ip地址情况 又复制了一台kail计算机的IP地址。 再看一下windows本机:使用ipconfig进行查看: 再看一下虚拟机上的win7I…...
Lua语言的软件工程
Lua语言的软件工程 引言 在软件工程领域,编程语言的选择对项目的成功与否有着至关重要的影响。Lua语言作为一种轻量级、高效、可扩展的脚本语言,近年来在游戏开发、嵌入式系统以及其他高性能应用程序中得到了广泛应用。本文将深入探讨Lua语言的特点、优…...
【Rust自学】11.4. 用should_panic检查恐慌
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.4.1. 验证错误处理的情况 测试函数出了验证代码的返回值是否正确,还需要验证…...
基于深度模型的印章检测(c++)
效果展示: 有点: (1)快速(几十毫秒级别); (2)精度高; int main() {std::string imagePath;// 提示用户输入图像路径std::cout << "请输入图像路…...
C#Struct堆栈
Struct若其内部含有堆对象,Struct的该对象放在堆上; Struct当做参数传递时,其堆属性作为引用传递,值属性还是作为值传递; struct TS { public int[] t1; public int t2; } public void TF1(TS t) { int[] t1 t.t1; …...
STM32之一种双通路CAN总线消息备份冗余处理方法(十三)
STM32F407 系列文章 - Dual-CANBus-ProMethod(十三) 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...
深入学习RabbitMQ的Direct Exchange(直连交换机)
RabbitMQ作为一种高性能的消息中间件,在分布式系统中扮演着重要角色。它提供了多种消息传递模式,其中Direct Exchange(直连交换机)是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…...
客户端 ORA-12537: TNS: 连接已关闭
现象: 1、双节点数据库. 2、客户端连接 db1 正常 3、客户端连接db2 显示:ORA-12537: TNS: 连接已关闭 4、数据库正常启动 5、lsnrctl status 检查 监听正常 6、lsnrctl stop/start 重启监听正常 过程: 冲浪 查看网友的解决方法。 连接&…...
.net开发环境安装配置以及程序发布 详细教程
文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.22.2.1 选择Window窗体应用 三、发布.net应用 一、安装visual studio 1.1推荐win10操作系统 1.2推荐vs2022 社区版、专业版、企业版都…...
盛最多水的容器
一、题目 给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。也就是求x轴与y轴的面积。 说明:你不能倾…...
spring boot解决swagger中的v2/api-docs泄露漏洞
在配置文件中添加以下配置 #解决/v2/api-docs泄露漏洞 springfox:documentation:swagger-ui:enabled: falseauto-startup: false 处理前: 处理后:...
MySQL和Hive中的行转列、列转行
水善利万物而不争,处众人之所恶,故几于道💦 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group,sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…...
【关于 vite 使用plugin-legacy兼容低版本浏览器仍出现的问题的情况】
项目使用了vitevue3ts的方案,采用plugin-legacybabel适配低版本浏览器 在开发工作中,项目使用了vitevue3ts的方案,但是需要适配低版本浏览器。首先使用了vitejs/plugin-legacy插件,配置完成后发现并不能解决问题, 出现…...
【集成学习】Bagging算法详解及代码实现
文章目录 1. Bagging集成学习算法1.1 简介1.2 基本步骤1.3 Bagging优缺点1.4 随机森林:Bagging的一个重要应用1.5 总结 2. Python代码实现3. 如何理解偏差与方差3.1 偏差(Bias)3.2 方差(Variance)3.3 方差与偏差的权衡…...