Linux系统如何查看本地端口是否打开的详细操作步骤呢?

在Linux系统中,端口是网络通信的入口,服务是否正常运行、网络连接是否正常,都与端口状态密切相关,查看本地端口是否打开,通常需要确认两个层面:一是服务是否正在监听该端口(进程监听),二是防火墙是否允许该端口的流量通过(策略放行),本文将详细介绍多种查看端口状态的方法,涵盖命令行工具、防火墙检查及端口连通性测试。

linux如何查看本地端口是否打开

使用netstat命令(传统工具)

netstat是Linux系统中经典的网络状态查看工具,尽管在较新系统中逐渐被ss替代,但仍因其广泛的兼容性被使用,通过netstat可以查看端口监听状态、连接状态及关联进程信息。

基本语法

netstat [选项]

常用参数及作用

参数 作用
-t 显示TCP端口
-u 显示UDP端口
-l 仅显示监听状态的端口
-p 显示占用端口的进程ID(PID)和程序名
-n 以数字形式显示地址和端口,避免DNS解析,加快查询速度

示例

查看所有监听的TCP和UDP端口,并显示关联进程:

netstat -tulnp

输出结果解析:

  • Proto:协议类型(TCP/UDP)
  • Local Address:本地IP地址和端口(0.0.0表示监听所有IP,0.0.1表示仅本地监听)
  • State:端口状态(LISTEN表示监听中)
  • PID/Program name:占用端口的进程ID和程序名(如nginx: worker process

若需查看特定端口(如80端口)是否监听:

netstat -tulnp | grep :80

使用ss命令(推荐,更高效)

ssiproute2工具包的一部分,作为netstat的替代品,ss在查询大量连接时性能更优,输出信息也更简洁。

基本语法

ss [选项]

常用参数及作用

参数 作用
-t 显示TCP端口
-u 显示UDP端口
-l 仅显示监听端口
-n 数字形式显示,避免DNS解析
-p 显示进程ID和程序名
-a 显示所有端口(包括监听和非监听)

示例

查看所有监听的TCP/UDP端口及进程:

ss -tulnp

输出结果与netstat类似,但列更清晰,

  • State:端口状态(LISTENESTABLISHED等)
  • Recv-Q/Send-Q:接收队列和发送队列长度
  • Local Address:Port:本地IP和端口
  • Process:进程名和PID

过滤特定端口(如22端口):

ss -tulnp | grep :22

使用lsof命令(通过文件描述符查看)

lsof(list open files)用于列出系统打开的文件,包括网络连接、设备文件等,通过lsof可以查看指定端口被哪个进程占用。

基本语法

lsof -i :端口号

示例

查看8080端口占用情况:

lsof -i :8080

输出结果:

linux如何查看本地端口是否打开

  • COMMAND:进程名(如java
  • PID:进程ID
  • USER:进程所有者
  • FD:文件描述符(IPv6IPv4表示协议类型)
  • TYPE:网络类型(IPv4IPv6
  • DEVICE:设备标识
  • SIZE/OFF:文件大小
  • NODE:节点标识
  • NAME:端口和协议(如*:8080 (LISTEN)

若端口未被占用,则输出为空。

使用telnet或nc测试端口连通性

netstatss主要用于查看端口监听状态,而telnetnc(netcat)可用于测试本地或远程端口是否可达(即服务是否响应)。

使用telnet

telnet 本地IP 端口号

示例:测试本地80端口是否可访问

telnet localhost 80
  • 若端口开放,显示Connected to localhost.,并进入交互界面;
  • 若端口关闭,显示Connection refused

使用nc

nctelnet更灵活,支持多种模式,安装方式:

  • CentOS:yum install nc
  • Ubuntu:apt install netcat

基本语法:

nc -zv 本地IP 端口号

参数说明:

  • -z:扫描模式,不传输数据,仅连接测试
  • -v:显示详细输出

示例:测试3306端口

nc -zv localhost 3306

成功输出:Connection to localhost 3306 port [tcp/mysql] succeeded!
失败输出:Connection refused

检查防火墙状态(端口是否被阻止)

即使服务正在监听端口,若防火墙未开放该端口,外部仍无法访问,需根据系统使用的防火墙工具进行检查。

firewalld(CentOS 7+/RHEL 7+)

查看已开放的端口:

firewall-cmd --list-ports

查询特定端口是否开放(如8080/tcp):

linux如何查看本地端口是否打开

firewall-cmd --query-port=8080/tcp

返回yes表示开放,no表示未开放。

ufw(Ubuntu/Debian)

查看防火墙状态及规则:

ufw status

输出示例:

Status: active
To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere
8080/tcp                   ALLOW       Anywhere

iptables(传统防火墙)

查看所有规则(-L列出规则,-n数字形式,-v显示详细信息):

iptables -L -n -v

关注ACCEPT规则的端口,例如ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80表示允许80端口访问。

常用端口查看命令对比

命令 适用场景 优点 缺点
netstat 传统系统,兼容性需求高 参数直观,输出易理解 性能较差,新系统逐渐弃用
ss 新系统(CentOS 7+/Ubuntu 16.04+) 高效,输出简洁,支持更多过滤 参数较netstat复杂
lsof 查看端口占用进程 精准定位进程,支持文件描述符 仅显示监听端口,不区分连接状态
telnet/nc 测试端口连通性 直观反映端口是否可达 需额外安装,仅测试连通性

注意事项

  1. 端口状态区分LISTEN表示服务正在监听,等待连接;ESTABLISHED表示已有连接建立;CLOSED表示端口未开启。
  2. 防火墙优先级:即使服务监听端口,若防火墙阻止,仍无法访问,需结合防火墙工具检查。
  3. 系统差异:不同Linux发行版默认工具不同(如CentOS用firewalld,Ubuntu用ufw),需根据系统选择命令。

相关问答FAQs

Q1:为什么端口显示“LISTEN”,但外部设备仍无法连接?
A:可能原因有两个:一是防火墙未开放该端口(如firewalld、ufw或iptables阻止了流量),二是服务监听的IP地址非0.0.0(如仅监听0.0.1,则仅本地可访问),可先通过telnet 本地IP 端口测试本地连通性,再检查防火墙规则,确保服务监听地址为0.0.0或正确绑定公网IP。

Q2:如何查看所有已开放的端口及对应服务列表?
A:结合ssgrep可快速整理,查看所有监听端口及对应服务(过滤掉PID和内核线程):

ss -tulnp | grep -v "kernel" | awk '{print $5, $7}' | sort | uniq

输出格式为“IP:端口 进程名”,便于快速定位服务,若需更详细的服务信息(如端口号对应的服务名称),可结合/etc/services文件(如grep ":80" /etc/services查看80端口对应的标准服务名)。

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

(0)
酷番叔酷番叔
上一篇 2025年9月24日 10:12
下一篇 2025年9月24日 10:36

相关推荐

  • 如何避免数据丢失?

    完整备份数据使用外部硬盘或云存储备份Windows重要文件(文档/照片/下载目录等),创建Windows系统恢复盘(控制面板 > 备份和还原 > 创建系统修复盘),用于修复引导故障,准备Linux安装介质推荐发行版:Ubuntu LTS(易用性强)、Fedora(新硬件支持佳),从官网下载ISO镜像……

    2025年8月9日
    11900
  • Linux死锁如何预防检测恢复?

    死锁的成因死锁需同时满足四个条件:互斥:资源独占(如锁被一个进程持有),持有并等待:进程持有资源的同时请求新资源,不可抢占:资源只能由持有者主动释放,循环等待:多个进程形成资源请求的环形依赖,死锁预防(编程层)通过破坏死锁条件避免发生:锁顺序规则所有线程按全局固定顺序获取锁(如先锁A再锁B),破坏循环等待,示例……

    2025年7月4日
    13000
  • 如何从U盘移动文件到Linux系统的操作步骤?

    将U盘中的文件移动到Linux系统是日常使用中常见的操作,无论是备份数据、传输文件还是安装软件,都离不开这一过程,Linux系统以其稳定性和灵活性著称,但在文件操作上,尤其是与外部存储设备的交互,新手可能会遇到一些困惑,本文将详细介绍从U盘移动文件到Linux系统的完整流程,包括准备工作、设备识别、挂载操作、文……

    2025年10月5日
    7800
  • Linux各发行版如何安全高效安装软件?

    通过包管理器安装(推荐)原理:Linux发行版通过官方软件仓库管理软件,由维护者审核确保安全性和兼容性,优势:自动处理依赖关系、一键更新/卸载、安全性高,常用命令(根据发行版选择):发行版安装命令更新软件源卸载命令Ubuntu/Debiansudo apt install 软件名sudo apt updates……

    2025年7月8日
    12500
  • linux中txt如何编辑器

    Linux 中,可使用如 nano、vim、gedit

    2025年8月15日
    11100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信