Linux如何查看端口使用情况?

在Linux系统中,端口是网络通信的入口,查看端口使用情况是排查网络问题、安全监控和服务的日常运维的重要操作,本文将详细介绍几种常用的查看端口使用情况的命令,包括它们的用法、参数和适用场景,并通过表格对比不同工具的特点,最后附上常见问题解答。

linux如何查看端口使用情况

使用netstat命令查看端口

netstat是Linux中经典的网络工具,用于显示网络连接、路由表、接口统计等信息,几乎在所有Linux系统中都默认安装(部分新系统可能需手动安装),查看端口时,常用参数组合为-tunlp

  • -t:显示TCP端口
  • -u:显示UDP端口
  • -n:以数字形式显示地址和端口(不解析域名,加快查询速度)
  • -l:只显示监听端口(即正在等待连接的端口)
  • -p:显示占用端口的进程ID和名称

执行netstat -tunlp会输出类似以下内容:

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  
tcp6       0      0 :::80                   :::*                    LISTEN      5678/nginx  
udp        0      0 0.0.0.0:68              0.0.0.0:*                           9012/dhclient  

Local Address列显示本地IP和端口,State列的LISTEN表示端口处于监听状态,PID/Program name列显示占用端口的进程(如sshd、nginx),netstat的优势是兼容性强,输出信息详细,但当端口数量多时,查询速度较慢。

使用ss命令查看端口

ss是iproute2工具包的一部分,作为netstat的替代品,在现代Linux系统中(如Ubuntu 18.04+、CentOS 7+)逐渐普及,其查询速度更快,尤其是在处理大量端口时,且支持更多协议和统计信息,常用参数与netstat类似,如-tuln显示TCP/UDP监听端口(数字形式),-a显示所有端口(包括非监听端口),-p显示进程信息。

linux如何查看端口使用情况

执行ss -tuln输出:

Netid  State   Recv-Q  Send-Q Local Address:Port               Peer Address:Port  
tcp    LISTEN  0       128          0.0.0.0:22              0.0.0.0:*  
tcp    LISTEN  0       128             [::]:80                 [::]:*  
udp    UNCONN  0       0             0.0.0.0:68              0.0.0.0:*  

ss的优势在于高效,输出更简洁,适合实时监控,但部分老系统可能需要手动安装iproute2(sudo apt install iproute2sudo yum install iproute2)。

使用lsof命令查看端口

lsof(list open files)通过列出系统打开的文件来查看端口使用情况,因为网络端口在Linux中被视为文件,常用命令为lsof -i:端口号,例如查看8080端口:lsof -i:8080,输出:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME  
nginx     5678 www-data   6u  IPv6   12345      0t0  TCP *:http-alt (LISTEN)  

NAME列显示协议和端口,COMMANDPID列显示进程信息,lsof的优势是能直接关联端口与进程,支持按用户、协议等筛选,但需要root权限才能显示所有进程的详细信息(sudo lsof -i:端口号)。

linux如何查看端口使用情况

工具对比与选择

以下是不同查看端口工具的对比:

命令 特点 适用场景
netstat 兼容性好,输出详细 老系统,需要完整连接信息时
ss 高效,支持多协议,输出简洁 新系统,大量端口查询,实时监控
lsof 基于文件系统,关联进程信息 查看指定端口对应的进程和文件描述符

常见问题解答(FAQs)

为什么执行netstat -tunlp时提示“command not found”?
答:部分新Linux系统(如Ubuntu 20.04+、CentOS 8+)默认不再安装net-tools包(netstat所属包),可通过以下命令安装:

  • Ubuntu/Debian系统:sudo apt install net-tools
  • CentOS/RHEL系统:sudo yum install net-tools

如何快速查看某个端口是否被占用,并显示占用进程的详细信息?
答:可分两步操作:

  1. 使用ss -tuln | grep 端口号快速检查端口状态(如ss -tuln | grep :80确认80端口是否监听);
  2. 若需查看进程详情,结合lsof -i:端口号(如lsof -i:80),显示nginx/apache等进程的PID、用户等信息。

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

(0)
酷番叔酷番叔
上一篇 2025年8月29日 17:59
下一篇 2025年8月29日 18:20

相关推荐

  • CPU卡顿?快速定位瓶颈!

    处理Linux系统问题的专业指南作者: 资深Linux系统工程师 | 十年基础设施运维经验最后更新: 2023年[当前月份] [当前日期]适用系统: RHEL/CentOS, Ubuntu, Debian等主流发行版问题处理核心原则黄金法则:备份优先关键操作前执行: # 配置文件备份sudo cp /etc/f……

    2025年8月6日
    10100
  • Linux如何导入cer证书?

    在Linux系统中导入.cer证书(通常指X.509格式的证书)是确保安全通信(如HTTPS、SSL/TLS连接)或应用程序信任特定证书颁发机构(CA)的关键操作,根据使用场景(系统级信任、用户级信任或应用程序级配置),导入方法有所不同,以下是详细操作步骤和注意事项,系统级证书导入(影响整个系统)系统级导入后……

    2025年8月23日
    9700
  • linux如何查看系统配置文件位置

    Linux系统中,配置文件是控制操作系统和服务行为的核心,无论是系统启动、用户环境还是应用程序运行,都依赖配置文件的参数设置,准确查找配置文件位置是系统管理和故障排查的基础技能,本文将详细介绍Linux系统中各类配置文件的存储路径及常用查看方法,Linux配置文件的常见存储目录Linux配置文件主要分布在以下几……

    2025年9月16日
    7400
  • Linux中如何将文件复制到U盘?详细操作步骤有哪些?

    在Linux系统中将文件复制到U盘是一个常见操作,但需要经过设备识别、挂载、数据传输和卸载等步骤,由于Linux的文件系统结构与Windows不同,操作时需注意文件系统兼容性和权限问题,以下将详细介绍操作流程,涵盖命令行和图形界面两种方式,并解答常见问题,操作前提:识别U盘与文件系统准备识别U盘设备插入U盘后……

    2025年8月22日
    9100
  • 在Linux操作系统中,如何通过命令行工具查看当前系统时间的具体正确方法?

    在Linux系统中,时间的准确性和同步性对系统日志记录、任务调度、安全认证(如证书时效)以及分布式系统协同至关重要,本文将详细介绍Linux查看和操作时间的多种方法,涵盖基础命令、系统时间管理工具、硬件时钟操作以及时间同步配置,帮助用户全面掌握Linux时间管理技能,基础时间查看命令——datedate是Lin……

    2025年9月10日
    8000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信