Linux如何查看电脑当前开放的端口是多少?

在Linux系统中,端口是网络通信的重要标识,每个端口对应一个特定的服务或进程,查看端口状态(如是否监听、被占用、所属进程等)是系统管理和网络故障排查的常见需求,本文将详细介绍Linux下查看端口的多种方法,包括常用命令的参数、示例及适用场景,帮助用户灵活应对不同场景下的端口查询需求。

linux如何产看电脑 端口是多少

端口的基本概念

端口是TCP/IP协议中用于区分不同服务的逻辑 endpoint,取值范围为0-65535,0-1023为知名端口(如HTTP服务的80端口、SSH服务的22端口),1024-49151为注册端口,49152-65535为动态或私有端口,在Linux中,端口状态可分为“监听”(LISTEN,等待连接)、“已连接”(ESTABLISHED,通信中)、“关闭”(CLOSED,未使用)等,了解这些状态有助于判断服务是否正常运行及网络连接是否正常。

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

ss是Linux下新一代的网络连接工具,属于iproute2包,相比传统的netstat命令,ss在性能和功能上更优,尤其是在处理大量连接时速度更快,ss命令通过读取内核中的netlink套接字信息,实时获取网络连接状态。

常用参数及功能

  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听(LISTEN)状态的端口
  • -n:以数字形式显示地址和端口,不解析域名和服务名(提高查询速度)
  • -p:显示占用端口的进程ID(PID)和进程名
  • -a:显示所有端口(包括监听和非监听)

示例操作

  1. 查看所有监听的TCP和UDP端口

    ss -tuln

    输出结果包含协议(State)、本地地址(Local Address:Port)、对端地址(Peer Address:Port)等信息,

    State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port  
    LISTEN  0       128          0.0.0.0:22          0.0.0.0:*  
    LISTEN  0       4096         127.0.0.1:631       0.0.0.0:*  

    0.0.0:22表示系统在所有网络接口上监听22端口(SSH服务)。

  2. 查看指定端口的占用情况
    若需查看80端口是否被占用,可结合grep过滤:

    ss -tuln | grep ':80'

    若输出包含LISTEN,表示80端口被监听;若无输出,则端口未被使用。

  3. 查看端口对应的进程信息
    添加-p参数可显示占用端口的进程详情:

    ss -tulpn | grep ':3306'

    输出示例:

    LISTEN  0       80               0.0.0.0:3306         0.0.0.0:*    users:(("mysqld",pid=1234,fd=11))

    可知3306端口被MySQL进程(mysqld,PID=1234)占用。

    linux如何产看电脑 端口是多少

使用netstat命令查看端口(传统方法)

netstat是早期的网络工具,属于net-tools包,虽然功能被ss替代,但在一些旧系统中仍常用,其参数与ss类似,但性能较差,适合少量连接查询。

常用参数及功能

  • -t:TCP端口
  • -u:UDP端口
  • -l:监听端口
  • -n:数字形式显示
  • -p:显示进程ID和名称
  • -a:所有端口

示例操作

  1. 查看所有监听端口

    netstat -tuln
  2. 查看指定端口及进程

    netstat -tulpn | grep ':8080'

使用lsof命令查看端口占用

lsof(list open files)用于列出系统中被进程打开的文件,包括网络端口(端口本质也是一种文件),通过lsof可快速定位占用端口的进程,尤其适合已知端口查找进程的场景。

常用参数及功能

  • -i:指定协议和端口,格式为[协议]:[端口](如-i :80或-i tcp:22)
  • -P:不显示端口号对应的服务名(避免DNS解析延迟)
  • -n:不解析主机名
  • -t:仅显示PID(简化输出)

示例操作

  1. 查看80端口被哪个进程占用

    lsof -i :80

    输出示例:

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

    可知nginx进程(PID=567和568)占用80端口。

  2. 仅显示占用端口的PID

    lsof -ti :8080

    输出直接为进程ID(如789),便于后续kill操作。

通过/proc文件系统查看端口(底层方法)

/proc是Linux内核提供的虚拟文件系统,包含系统运行时的实时数据,如网络连接状态、进程信息等,通过读取/proc/net/tcp和/proc/net/udp文件,可查看TCP和UDP端口的底层信息,适合高级调试。

linux如何产看电脑 端口是多少

示例操作

  1. 查看所有监听的TCP端口

    cat /proc/net/tcp | awk '{print $10}' | sort -u

    输出为十六进制格式的本地端口地址(如0016表示22端口),需通过printf '%dn' 0x0016转换为十进制。

  2. 查看指定端口状态
    以80端口为例,先转换为十六进制(80=0x50),再过滤:

    grep "50:" /proc/net/tcp

    输出中的状态字段(如0A表示LISTEN)可对照内核协议状态码理解。

不同查看方法的对比

为方便用户选择,以下表格总结常用端口查看工具的特点:

命令 适用场景 优点 缺点
ss 日常查看、高并发场景 速度快、功能全面、支持最新协议 部分旧系统可能未预装
netstat 兼容旧系统、少量连接 参数直观、广泛支持 性能较差、逐渐被ss替代
lsof 端口-进程关联查询 精确定位进程、支持文件类型过滤 仅显示已打开的端口,无状态信息
/proc 底层调试、内核级分析 数据实时、无需额外工具 输出复杂、需手动解析十六进制

相关问答FAQs

Q1: 如何查看端口被哪个进程占用,并强制终止该进程?
A: 可通过ss -tulpn | grep ':端口号'或lsof -i :端口号查看占用进程的PID,然后使用kill -9 PID强制终止(如kill -9 1234),注意:强制终止可能导致服务异常,建议先尝试kill PID(正常终止)。

Q2: 为什么ss命令比netstat更推荐?
A: ss命令通过netlink直接与内核通信,数据获取效率更高,尤其在处理大量连接(如高并发服务器)时速度远快于netstat;同时ss支持更多网络协议和状态统计(如TCP的快速打开状态),且是iproute2包的一部分,在新系统中默认预装,维护更积极,netstat作为旧工具,性能和功能已滞后,逐渐被ss替代。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年9月29日 01:11
下一篇 2025年9月29日 01:32

相关推荐

  • Linux文件夹如何高效管理文件?

    Linux目录通过索引节点(inode)存储文件元数据,目录项(dentry)关联文件名与inode,目录本质是dentry列表,共同实现文件的高效组织与访问。

    2025年6月19日
    21000
  • 如何远程连接Linux服务器?操作方法与步骤详解?

    远程连接Linux服务器是日常运维和开发中的常见操作,通过远程连接可以在本地电脑上高效管理服务器,无需直接接触物理设备,本文将详细介绍远程连接Linux服务器的准备工作、常用方法、安全配置及常见问题排查,帮助用户顺利完成连接并保障服务器安全,远程连接前的准备工作在开始连接前,需确保以下准备工作就绪,避免因配置问……

    2025年9月28日
    22900
  • Linux查看用户有哪些可靠方法?

    查看 /etc/passwd 文件(最直接)命令:cat /etc/passwd说明:所有用户信息存储在 /etc/passwd 文件中,每行代表一个用户,输出格式:用户名:密码占位符(x):用户ID(UID):组ID(GID):描述信息:家目录:默认Shelljohn:x:1001:1001:John Doe……

    2025年7月23日
    30200
  • linux下如何正确退出mysql数据库?

    在Linux系统中操作MySQL数据库时,正确退出MySQL客户端是日常管理的基础操作,无论是通过命令行还是图形化工具,掌握多种退出方法能帮助用户在不同场景下高效完成操作,本文将详细介绍Linux环境下退出MySQL的常用方法、注意事项及异常处理技巧,并通过表格对比不同方式的特点,最后附上常见问题解答,MySQ……

    2025年9月9日
    20200
  • 如何在Linux系统中测试微信的安装、运行及功能稳定性?

    在Linux系统中,由于微信官方未提供原生客户端,用户通常需要借助第三方工具或兼容方案来测试微信功能,本文将详细介绍几种主流方法,包括安装步骤、功能测试要点及注意事项,帮助用户在Linux环境下实现微信的日常使用与功能验证,第三方Linux客户端(Electron版)微信的第三方Linux客户端多基于Elect……

    2025年9月21日
    23300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信