如何查看Linux网络端口占用情况的命令和方法?

在Linux系统运维中,网络端口占用情况的排查是常见任务,无论是解决服务冲突、验证服务启动状态,还是进行安全审计,都需要准确掌握端口的使用情况,本文将详细介绍Linux下查看网络端口占用的常用方法,包括命令参数、使用示例及适用场景。

linux如何查看网络端口占用情况

使用netstat命令查看端口占用

netstat是传统的网络工具,虽然在新版Linux中逐渐被ss替代,但仍广泛使用,尤其在需要兼容旧系统时,通过netstat可以查看TCP、UDP端口的监听状态、连接情况及占用进程。

常用参数组合:

  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听端口(LISTEN状态)
  • -n:以数字形式显示地址和端口(不解析域名和服务名)
  • -p:显示占用端口的进程ID(PID)和名称

示例命令:

netstat -tulnp  

执行后输出类似内容:

Active Internet connections (only servers)  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd  
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld  
udp        0      0 0.0.0.0:68              0.0.0.0:*                           9012/dhclient  

列说明Proto(协议)、Local Address(本地IP:端口)、State(连接状态,如LISTEN表示监听)、PID/Program name(进程ID及名称)。

进阶用法:

查看指定端口占用(如80端口):

netstat -tulnp | grep :80  

使用ss命令查看端口占用

ssiproute2工具包的一部分,相比netstatss在处理大量网络连接时速度更快,输出信息更简洁,是当前Linux系统推荐使用的工具。

常用参数组合:

  • -t:TCP端口
  • -u:UDP端口
  • -l:仅显示监听端口
  • -n:数字形式显示
  • -p:显示进程信息
  • -a:显示所有端口(包括非监听)

示例命令:

ss -tulnp  

输出示例:

linux如何查看网络端口占用情况

State      Recv-Q Send-Q Local Address:Port               Peer Address:Port   
LISTEN     0      128          0.0.0.0:22                    0.0.0.0:*    users:(("sshd",pid=1234,fd=3))  
LISTEN     0      80           127.0.0.1:3306                 0.0.0.0:*    users:(("mysqld",pid=5678,fd=32))  
UNCONN     0      0      192.168.1.100:68                0.0.0.0:*    users:(("dhclient",pid=9012,fd=5))  

列说明State(连接状态)、Local Address:Port(本地IP:端口)、users(进程信息)。

进阶用法:

查看所有TCP连接(包括已连接、监听等):

ss -t -a  

使用lsof命令查看端口占用

lsof(list open files)用于列出系统打开的文件,在Linux中,网络端口被视为文件,因此可通过lsof查看端口对应的进程。

常用参数:

  • -i:指定网络条件,如-i :端口号查看指定端口
  • -P:不显示端口号对应的服务名
  • -n:不解析IP地址为域名

示例命令:

查看3306端口占用:

lsof -i :3306  

输出示例:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME  
mysqld   5678 mysql    3u  IPv4   12345      0t0  TCP localhost:3306 (LISTEN)  

列说明COMMAND(进程名)、PID(进程ID)、NAME(端口及状态)。

linux如何查看网络端口占用情况

进阶用法:

查看所有网络连接:

lsof -i  

工具对比与选择

以下为三种工具的简要对比:

工具 优点 缺点 适用场景
netstat 兼容旧系统,参数直观 速度慢,逐渐被弃用 需兼容旧版Linux的系统
ss 速度快,信息简洁,功能全面 部分旧系统可能未预装 新版Linux系统(推荐)
lsof 可通过文件描述符精准定位端口 输出信息相对复杂,需过滤 需查看端口详细进程信息时

注意事项

  1. 权限问题:查看其他用户的进程需使用sudo,如sudo ss -tulnp
  2. 端口范围:Linux端口范围为0-65535,其中0-1023为特权端口,需root权限使用。
  3. 状态区分LISTEN表示服务正在监听,ESTABLISHED表示已建立连接,TIME_WAIT表示连接关闭等待中。

相关问答FAQs

Q1:如何快速找到占用特定端口的进程?
A:使用sslsof结合grep过滤端口,

# 查看8080端口占用
ss -tulnp | grep :8080
# 或
lsof -i :8080

输出结果会直接显示占用该端口的进程ID、名称及详细信息。

Q2:为什么执行netstat命令提示“command not found”?
A:部分Linux系统(如Ubuntu 20.04+)默认未安装netstat,需手动安装:

  • Ubuntu/Debian:sudo apt install net-tools
  • CentOS/RHEL:sudo yum install net-tools
    安装后即可使用netstat命令。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14123.html

(0)
酷番叔酷番叔
上一篇 2025年8月22日 00:28
下一篇 2025年8月22日 00:43

相关推荐

  • 如何生成vmlinux?关键步骤有哪些?

    生成vmlinux是Linux内核编译过程中的核心环节,vmlinux是Linux内核的未压缩镜像文件,包含了内核的代码、数据结构、驱动程序以及必要的初始化逻辑,是内核启动时的核心载体,整个过程涉及源码准备、环境配置、内核选项设置、编译链接等多个步骤,以下是详细流程:准备工作:获取内核源码与编译工具生成vmli……

    2025年9月29日
    1500
  • Linux系统如何快速返回桌面界面?

    在Linux操作系统中,“回桌面”通常指从当前打开的窗口、应用程序或终端界面切换到图形化桌面环境,即显示所有窗口的最小化状态或空白桌面,方便用户快速访问桌面图标或启动其他程序,由于Linux桌面环境(如GNOME、KDE Plasma、XFCE等)的多样性和定制性,实现“回桌面”的方法也因环境而异,以下将详细介……

    2025年9月9日
    2600
  • Linux系统启动服务进程的具体步骤、命令及常见问题是什么?

    Linux作为广泛使用的服务器操作系统,服务进程的管理是其核心功能之一,服务的正确启动与运行直接关系到系统稳定性与应用可用性,本文将详细说明Linux中启动服务进程的多种方式、相关工具及配置方法,帮助用户全面掌握服务管理技能,Linux服务进程通常指在后台长期运行、无终端交互的程序,如Web服务器(Nginx……

    2025年9月22日
    1700
  • Linux系统如何通过命令查询内存使用情况?

    在Linux系统中,内存管理是系统性能优化的核心环节,准确查询内存使用情况有助于及时发现资源瓶颈、排查内存泄漏等问题,Linux提供了多种命令和工具来查询内存信息,涵盖系统总内存、已用内存、空闲内存、缓存、交换分区(Swap)等维度,以下从基础到进阶详细介绍各类方法,基础内存查询命令:freefree是最常用的……

    2025年8月28日
    3200
  • 在Linux操作系统中,如何详细编辑文件内容的具体步骤有哪些?

    在Linux操作系统中,编辑文件内容是日常运维和开发的核心操作之一,无论是配置系统文件、编写代码还是处理文本数据,掌握多种文件编辑方法都能提升效率,本文将详细介绍Linux中常用的文件编辑方式,涵盖图形界面工具、命令行编辑器及流编辑器,帮助用户根据场景选择合适工具,图形界面编辑器:直观易用,适合新手图形界面编辑……

    2025年9月26日
    1800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信