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

相关推荐

  • 写作前如何高效准备?

    在Linux系统中修改IP地址是常见的网络管理任务,适用于服务器配置、网络调试等场景,以下是详细方法,涵盖临时修改与永久配置,确保操作安全可靠,操作前请备份重要数据,并确保具备管理员权限(使用sudo或root用户),查看当前网络信息使用以下命令获取网卡名称、现有IP、网关和DNS: ip addr show……

    2025年7月14日
    13900
  • Linux如何下载在线文件?

    在Linux系统中,下载在线文件是日常操作中的常见需求,无论是通过命令行工具实现高效批量下载,还是借助图形界面工具进行直观操作,Linux都提供了多样化的解决方案,本文将详细介绍Linux环境下下载在线文件的多种方法、工具使用技巧及常见场景处理,帮助用户根据实际需求选择最合适的下载方式,命令行工具:高效灵活的下……

    2025年9月16日
    7300
  • Linux系统如何实现IP地址映射?

    在Linux系统中,IP映射通常指将一个IP地址或端口与另一个IP地址或端口建立关联,实现网络流量的转发、负载均衡或虚拟化服务访问,常见的映射类型包括端口转发(DNAT/SNAT)、虚拟IP绑定(VIP)以及NAT地址转换等,广泛应用于服务器内网穿透、多服务端口共享、高可用集群等场景,以下从原理、工具和配置步骤……

    2025年9月23日
    9800
  • linux 如何查路由表

    Linux中,可以使用netstat -rn或`ip route

    2025年8月13日
    12900
  • Linux删除用户目录的正确姿势?

    操作前必备准备备份重要数据删除目录不可逆,建议先备份:tar -czvf /backup/user_home_backup.tar.gz /home/username将 /home/username 替换为目标目录路径,确认用户状态确保用户已退出系统: who | grep 'username&#39……

    2025年6月28日
    14500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信