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

Linux 下查看端口以及释放端口

目录

一、查看端口是否被占用

1、使用 `netstat` 命令

2、使用 `lsof` 命令

二、释放端口

1、使用kill命令

2、使用 fuser 命令

三、netstat

四、lsof

五、fuser


一、查看端口是否被占用

        在 Linux 系统上,你可以使用 `netstat` 或 `lsof` 命令来查看端口是否被占用。以下是两种方法:

1、使用 `netstat` 命令


netstat -tulpn | grep <端口号>

这将显示占用指定端口的进程信息。如果端口被占用,你将看到以下的输出项目:


tcp        0      0 0.0.0.0:<端口号>         0.0.0.0:*               LISTEN      <进程ID>/<进程名称>

        实例:

2、使用 `lsof` 命令


sudo lsof -i :<端口号>

这也会显示占用指定端口的进程信息。


COMMAND  PID   USER   FD          TYPE   DEVICE SIZE/OFF  NODE   NAME
<进程名> <PID> <用户> <文件描述符> <类型> <设备> <大小/偏移> <节点> <地址>

实例:

 如果端口没有被占用,这两个命令将没有输出。另外,以上命令可能需要使用 `sudo` 或具有足够权限的用户才能运行。

二、释放端口

        如果通过上面的操作发现某个端口被占用,决定释放该端口。通常,端口的释放是通过终止占用该端口的进程来实现的。

1、使用kill命令

        使用 `kill` 命令结束占用端口的进程,其中 `<PID>` 是进程的标识符:

sudo kill <PID>

2、使用 fuser 命令

        另一种找到并杀死占用端口的进程的方法是使用 `fuser` 命令:


sudo fuser -k <端口号>/tcp

三、netstat

  netstat 是一个用于显示网络相关信息的命令行工具,通常用于检查网络连接、路由表、接口统计等。

        上述 netstat 命令中,选项 -tulpn 是一组选项的缩写,每个字母表示特定的信息:

  • -t: 显示 TCP 连接信息。
  • -u: 显示 UDP 连接信息。
  • -l: 显示监听状态的连接。
  • -p: 显示正在使用套接字的进程。
  • -n: 以数字形式显示地址和端口,而不进行名称解析。

四、lsof

        `lsof`(List Open Files)是一个用于列出在Unix和类Unix系统上打开文件的工具。它还可以用于显示进程打开的网络连接、Unix域套接字等。以下是一些常见的用法示例:

1. 列出所有打开的文件

lsof

    这将列出所有打开的文件,包括普通文件、目录、设备文件和网络套接字等。

2. 列出特定进程打开的文件

lsof -p <PID>

    将 `<PID>` 替换为要查看的进程的进程ID,这样你就可以查看特定进程打开的文件。

3. 列出特定端口被哪个进程占用

lsof -i :<端口号>

    替换 `<端口号>` 为要查看的端口号,这将显示占用该端口的进程信息。

4. 列出某个目录下被哪个进程占用的文件

lsof /path/to/directory

    这将显示在指定目录下被打开的文件。

5. 列出网络连接信息

lsof -i

    这将显示系统上的所有网络连接,包括打开的套接字、端口和连接状态。

6. 列出Unix域套接字信息:

lsof -U

    这将显示系统上的所有Unix域套接字信息。

五、fuser

        这个命令用于显示使用特定文件、套接字或文件系统的进程信息。

以下是一些常见选项的解释:

`-a, --all`:显示所有进程的信息,包括没有访问任何文件的进程。

`-i, --interactive`:在终止进程之前请求确认。与 `-k` 选项一起使用时生效。

`-I, --inode`:使用 inode 号码而不是文件名进行比较。

`-k, --kill`:终止访问指定文件的进程。

`-l, --list-signals`:列出可用的信号名称。

`-m, --mount`:显示使用指定文件系统或块设备的所有进程。

`-M, --ismountpoint`:只在指定名称是挂载点时执行。

`-n, --namespace SPACE`:在指定的命名空间中搜索(file、udp 或 tcp)。

`-s, --silent`:静默执行操作,不显示消息。

`-SIGNAL`:在终止进程时发送指定的信号,而不是默认的 SIGKILL。

`-u, --user`:显示用户 ID 以及进程信息。

`-v, --verbose`:提供详细输出。

`-w, --writeonly`:仅终止具有写访问权限的进程。

`-V, --version`:显示版本信息。

`-4, --ipv4`:仅搜索 IPv4 套接字。

`-6, --ipv6`:仅搜索 IPv6 套接字。

相关文章:

  • 【51单片机系列】proteus中的LCD12864液晶屏
  • Unity之Cinemachine教程
  • Vue好看的组件库:Element
  • 7.FPR/TNR-机器学习模型性能的常用的评估指标
  • 【2024】新建mysql数据库,如何选择字符集和排序规则
  • Spring Security放行Knife4j静态资源
  • uniapp canvas做的刮刮乐解决蒙层能自定义图片
  • macOS Sonoma 14.3(23D56)发布(附黑/白苹果系统镜像)
  • 【AI大模型】WikiChat超越GPT-4:在模拟对话中事实准确率提升55%终极秘密
  • python三数之和
  • Java中文乱码浅析及解决方案
  • 如何使用docker实现越权漏洞-webug靶场搭建(超详解)
  • 第四十周:文献阅读+GAN
  • 2024年华为OD机试真题-转盘寿司-Python-OD统一考试(C卷)
  • macOS修改默认时区显示中国时间
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • EventListener原理
  • HTML-表单
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Sequelize 中文文档 v4 - Getting started - 入门
  • spring + angular 实现导出excel
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 仿天猫超市收藏抛物线动画工具库
  • 记一次用 NodeJs 实现模拟登录的思路
  • 检测对象或数组
  • 三栏布局总结
  • 一份游戏开发学习路线
  • 硬币翻转问题,区间操作
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​iOS实时查看App运行日志
  • #100天计划# 2013年9月29日
  • ${ }的特别功能
  • (C++20) consteval立即函数
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)Linux+Windows下安装ffmpeg
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .htaccess配置常用技巧
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET gRPC 和RESTful简单对比
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net和jar包windows服务部署
  • .net连接MySQL的方法
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .net下的富文本编辑器FCKeditor的配置方法
  • .ui文件相关
  • ::
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution