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如何卸载myeclipse

    在Linux系统中卸载MyEclipse需要根据不同的安装方式采取不同的操作步骤,常见的安装方式包括压缩包(tar.gz)解压安装、二进制安装包(.bin/.run)安装以及通过包管理器(如apt、yum)安装(较少见,因MyEclipse非开源软件),卸载过程需彻底删除安装目录、配置文件、环境变量及相关残留进……

    2025年8月28日
    9700
  • Linux部署Tomcat如何高效安全运行Java应用?

    环境准备系统要求推荐系统:Ubuntu 20.04+/CentOS 7+最小配置:1核CPU、2GB内存、10GB磁盘空间确保sudo权限安装Java JDKTomcat依赖Java环境(需JDK 8+):# Ubuntu/Debiansudo apt updatesudo apt install openjd……

    2025年7月5日
    10300
  • linux如何与服务器通讯

    nux可通过SSH、Telnet等协议与服务器通讯,使用相应命令连接并操作服务器

    2025年8月17日
    7900
  • Linux硬盘如何格式化?详细操作步骤与命令解析

    Linux硬盘格式化是系统管理中常见的操作,指通过特定工具在硬盘上创建文件系统,使其能够被操作系统识别和存储数据,格式化会清空硬盘原有数据,因此操作前需谨慎,本文将详细介绍Linux环境下硬盘格式化的准备工作、常用工具、具体步骤及注意事项,帮助用户安全完成操作,格式化前的准备工作确认硬盘设备名Linux中硬盘设……

    2025年9月9日
    7700
  • 如何用linux的批量命令

    在Linux系统中,批量命令是提升运维效率、自动化重复任务的核心工具,通过结合shell循环、文本处理工具、文件查找命令等,可实现对大量文件、数据、系统任务的批量处理,本文将详细介绍Linux批量命令的使用方法、常见场景及实践技巧,基础批量命令:循环与管道for循环批量处理for循环是批量任务中最基础的语法,适……

    2025年9月23日
    6700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信