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系统中,查看文件内容是日常操作中最频繁的任务之一,无论是配置文件、日志文件还是文本数据,都需要通过合适的命令来快速定位和阅读信息,Linux提供了多种查看文件内容的命令,每种命令都有其独特的功能和适用场景,掌握这些命令能显著提升工作效率,本文将详细介绍这些命令的使用方法、核心选项及实际应用场景,基础……

    2025年9月22日
    4200
  • linux 如何使用虚拟机共享磁盘

    在Linux系统中,使用虚拟机共享磁盘是常见的操作,主要用于多虚拟机间数据共享、数据迁移或构建集群环境,本文将详细介绍两种主流的共享磁盘实现方式:本地文件系统共享和网络iSCSI共享,涵盖环境准备、配置步骤、注意事项等内容,帮助读者快速上手实践,环境准备在开始配置前,需确保宿主机和虚拟机满足基本要求:宿主机:推……

    2025年9月27日
    4300
  • linux如何生成ssh key

    Linux中,可以使用ssh-keygen命令生成SSH密钥对,

    2025年8月15日
    6300
  • 虚拟机中linux如何全屏

    虚拟机中,可通过安装VMware Tools或调整虚拟机显示设置

    2025年8月17日
    5800
  • 如何在Linux系统中启动HTTP服务?

    在Linux系统中,启动HTTP服务是搭建网站或提供Web服务的常见需求,可通过多种HTTP服务器软件实现,如Apache、Nginx、Python内置服务器等,不同软件的安装、配置和启动步骤略有差异,下面分别详细介绍其操作流程,通过Apache HTTP Server启动服务Apache是广泛使用的开源HTT……

    2025年9月30日
    3800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信