Linux如何查看网络端口状态及占用情况?

在Linux系统中,网络端口管理是系统运维和开发中的核心任务之一,无论是排查服务是否正常监听、诊断端口冲突,还是进行安全审计,都需要掌握查看网络端口的方法,Linux提供了多种命令和工具来查看端口状态、关联进程及详细信息,下面将详细介绍这些工具的使用方法及适用场景。

linux如何查看网络端口

使用netstat命令查看端口

netstat是传统的网络工具,虽然在新版Linux中逐渐被ss替代,但在旧系统或兼容性场景中仍广泛使用,它通过读取/proc文件系统和内核信息,展示网络连接、路由表、接口统计等数据。

基本语法

netstat [选项] [协议]

常用选项及示例

  • 查看所有监听端口(TCP/UDP)

    netstat -tuln

    选项说明:-t显示TCP端口,-u显示UDP端口,-l仅显示监听状态端口,-n以数字形式显示地址和端口(避免DNS解析,加快速度)。
    输出示例:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp6       0      0 :::80                   :::*                    LISTEN     
    udp        0      0 0.0.0.0:68              0.0.0.0:*                          

    其中Local Address为本地IP和端口,State为端口状态(LISTEN表示监听中)。

  • 查看所有端口(包括非监听)及进程ID

    netstat -tulnp

    选项-p显示占用端口的进程ID(PID)和名称,便于定位问题进程。

  • 查看指定端口的连接状态

    netstat -an | grep :80

    通过grep过滤特定端口(如80端口),查看所有连接及其状态(如ESTABLISHED表示已建立连接)。

使用ss命令查看端口(推荐)

ssiproute2包中的工具,旨在替代netstat,性能更高(尤其是连接数多时),且支持更多TCP状态和统计信息,现代Linux发行版(如Ubuntu 18.04+、CentOS 7+)默认已安装。

基本语法

ss [选项] [协议]

常用选项及示例

  • 查看所有监听端口

    ss -tuln

    选项与netstat类似,-t/-u/-l/-n含义相同,输出示例:

    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN     0      511          0.0.0.0:22              0.0.0.0:*                  
    LISTEN     0      4096             :::80                   :::*                   

    字段说明:State为端口状态,Local Address:Port为本地IP和端口。

    linux如何查看网络端口

  • 查看监听端口及进程信息

    ss -tulpn

    选项-p显示进程PID和名称,

    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN     0      511          0.0.0.0:22              0.0.0.0:*      users:(("sshd",pid=1234,fd=3))  

    可直接看到sshd进程占用22端口。

  • 查看TCP连接状态统计

    ss -s

    输出TCP/UDP连接总数、监听端口数等统计信息,快速了解网络负载。

使用lsof命令查看端口关联进程

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

基本语法

lsof [选项] [名称]

常用选项及示例

  • 查看指定端口的进程

    lsof -i :80

    80表示80端口,输出示例:

    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    nginx     567   root    6u  IPv4   12345      0t0  TCP *:http (LISTEN)
    nginx     568   www-data 7u  IPv4   12345      0t0  TCP *:http (LISTEN)

    可看到nginx进程(PID 567/568)占用80端口,LISTEN表示监听状态。

  • 查看所有监听端口及进程

    lsof -i -P -n | grep LISTEN

    选项-P显示端口号而非服务名,-n避免DNS解析,grep LISTEN过滤监听状态。

通过/proc文件系统查看端口

/proc是Linux内核提供的虚拟文件系统,包含系统运行时的实时信息,可直接读取网络端口数据。

linux如何查看网络端口

查看TCP/UDP端口

  • TCP端口

    cat /proc/net/tcp
    cat /proc/net/tcp6  # IPv6

    输出为十六进制格式,需转换IP和端口(如0A0000010.0.10016为22端口)。

  • UDP端口

    cat /proc/net/udp
    cat /proc/net/udp6  # IPv6

关联进程

通过inode号查找进程:

  1. /proc/net/tcp中获取端口的inode号(第10列);
  2. /proc/*/fd/中搜索该inode
    find /proc -name fd -exec ls -l {} ; 2>/dev/null | grep inode号

    输出中的/proc/PID/fd/文件描述符即为占用该端口的进程文件。

工具对比与选择

工具名称 所属软件包 推荐场景 核心优势 常用参数组合
netstat net-tools 旧系统兼容 命令简单,广泛支持 -tuln(监听端口)、-tulnp(进程信息)
ss iproute2 新系统首选 性能高,支持更多TCP状态 -tulpn(监听+进程)、-s(统计)
lsof lsof 精准定位进程 直接关联端口与进程,支持文件类型过滤 -i :端口(指定端口)、-iTCP -sTCP:LISTEN(TCP监听)
/proc 内置 底层调试 无需安装,数据实时 /proc/net/tcp(TCP端口)、find(关联进程)

相关问答FAQs

问题1:为什么推荐使用ss而不是netstat查看端口?
解答:ssnetstat的升级版,通过Netlink接口直接从内核获取网络信息,避免了netstat/proc/dev文件的遍历,因此在连接数较多时(如高并发服务器)性能优势显著。ss支持更多TCP状态(如NETLINKPACKET等),输出信息更详细,且现代Linux发行版默认集成,是当前查看网络端口的首选工具。

问题2:如何查看指定进程占用的所有端口?
解答:可通过lsofss结合进程ID(PID)实现。

  • 使用lsof
    lsof -p <PID> -i

    例如查看PID 1234的进程占用的端口:lsof -p 1234 -i,输出会列出该进程所有网络连接及端口。

  • 使用ss
    ss -tulpn | grep <PID>

    例如ss -tulpn | grep 1234,可显示PID 1234占用的端口及监听状态。

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

(0)
酷番叔酷番叔
上一篇 2025年8月22日 00:54
下一篇 2025年8月22日 01:24

相关推荐

  • 医保新规能省多少钱

    根据官方表述,该政策/措施的核心原则是[此处替换具体原则,如:坚持人民至上、安全发展理念等],旨在[此处替换核心目标,如:保障民生、促进经济高质量发展、维护社会稳定等]。

    2025年7月25日
    11900
  • 手机如何关闭SELinux?详细步骤与方法指南

    SELinux(Security-Enhanced Linux)是Linux内核中的安全模块,通过强制访问控制(MAC)机制增强系统安全性,限制应用和进程的权限操作,但在部分场景下,如某些第三方应用兼容性不佳或需要调试时,用户可能需要临时关闭SELinux,需要注意的是,关闭SELinux可能降低系统安全性,增……

    2025年9月22日
    12500
  • Linux系统里如何配置OTG USB以实现设备连接?

    在Linux系统中配置OTG(On-The-Go)USB功能,可以让设备在主机(Host)和外设(Device)模式间灵活切换,实现如U盘互传、键盘鼠标连接、串口通信等场景,以下是详细的配置步骤,涵盖硬件准备、驱动加载、模式切换及实际应用场景,硬件准备与基础检查支持OTG的硬件主控芯片:需内置OTG控制器,常见……

    2025年9月22日
    13600
  • 为何选择Firefox?你的理由呢

    图形界面打开Firefox(适合新手)通过应用程序菜单打开GNOME桌面(Ubuntu/Fedora/Debian默认)点击屏幕左上角或底部的”Activities”(活动)按钮 → 在搜索栏输入 Firefox → 点击图标启动,(示意图:应用程序菜单中的Firefox图标)KDE Plasma桌面(Kubu……

    2025年6月23日
    15700
  • linux 如何切割文件

    Linux 中,可使用split命令切割文件,如`split -b 1

    2025年8月16日
    11200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信