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 系统中,查看设备信息是系统管理、故障排查和硬件维护的基础操作,以下详细介绍多种专业方法,涵盖存储设备、PCI/USB 硬件、CPU 等关键组件,所有命令均经过严格测试,适用于主流 Linux 发行版(如 Ubuntu、CentOS、Fedora),lsblk 命令功能:直观显示块设备(硬盘、分区……

    2025年7月17日
    7300
  • Linux下如何用GCC编译C程序?权威指南在此

    环境准备安装GCC终端执行(以Ubuntu为例):sudo apt update && sudo apt install build-essential验证安装:gcc –version(需返回版本号如gcc 11.4.0)创建测试文件用文本编辑器创建hello.c:#include &lt……

    2025年7月24日
    6900
  • 如何从零开始配置Linux服务器?

    配置Linux服务器是运维和开发中的核心任务,涉及系统安装、基础配置、安全加固、服务部署及监控维护等多个环节,合理的配置能确保服务器稳定、安全、高效运行,本文将详细说明关键步骤及注意事项,系统安装与初始准备选择合适的Linux发行版是首要任务,常见选择包括Ubuntu Server(适合新手,社区支持丰富)、C……

    2025年9月9日
    3600
  • Linux如何暂停进程并随时唤醒?

    进程挂起的作用释放CPU资源:暂停非紧急任务,让出CPU给高优先级进程,调试与排查:冻结进程状态以便检查资源占用(如strace跟踪),批量控制:暂停一组进程后再统一恢复(如脚本任务管理),挂起进程的4种方法方法1:快捷键挂起(前台进程)在终端中直接启动的进程(如ping baidu.com),按下 Ctrl……

    2025年8月7日
    6100
  • 如何轻松备份数据?3步防丢失!

    在Linux系统中更新数据库通常涉及两个层面:更新数据库软件版本(如MySQL、PostgreSQL等)和更新数据库内的数据(执行SQL操作),以下是详细操作指南,涵盖常见场景和注意事项,确保安全性与专业性,更新数据库软件(升级版本)重要提示:务必先备份数据(见第四节),生产环境建议在低峰期操作,并提前测试,不……

    2025年6月15日
    7900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信