Linux端口打开没?一键查看方法

在Linux中,查看端口是否打开的方法包括:,1. 使用 netstat -tuln | grep 检查监听状态。,2. 通过 ss -tuln | grep 快速查看(推荐)。,3. 用 lsof -i : 显示占用进程。,4. 测试连接:telnet nc -zv 。,5. 扫描工具:nmap -p

使用 netstat 命令(经典工具)

netstat 是传统网络工具,可查看所有活跃连接和监听端口。
操作步骤:

Linux端口打开没?一键查看方法

sudo netstat -tuln | grep <端口号>

参数解析:

  • -t:TCP 端口
  • -u:UDP 端口
  • -l:仅显示监听中的端口
  • -n:以数字形式显示端口(不解析服务名)

示例:
检查 80 端口是否监听:

sudo netstat -tuln | grep :80

输出说明:
若返回 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,表示端口已打开。


使用 ss 命令(推荐替代方案)

ss(Socket Statistics)是 netstat 的现代替代品,速度更快、功能更全。
操作步骤:

sudo ss -tuln | grep <端口号>

参数同 netstat,输出格式更简洁。
示例:
检查 22 端口(SSH):

sudo ss -tuln | grep :22

使用 lsof 命令(查看进程占用)

lsof 可显示端口关联的进程,适合定位服务冲突。
操作步骤:

sudo lsof -i :<端口号>

示例:
检查 3306 端口(MySQL):

Linux端口打开没?一键查看方法

sudo lsof -i :3306

输出说明:
若返回进程信息(如 mysqld),则端口被占用。


使用 nmap 工具(网络扫描)

nmap 可扫描本地或远程主机端口状态,功能强大。
安装与使用:

sudo apt install nmap  # Debian/Ubuntu
sudo yum install nmap  # CentOS/RHEL
nmap -p <端口号> localhost  # 扫描本机

示例:
扫描本机 443 端口:

nmap -p 443 localhost

输出关键字段:

  • open:端口开放
  • closed:端口关闭但可访问
  • filtered:被防火墙拦截

使用 telnetnc(测试连通性)

Telnet(测试TCP端口)

telnet <目标IP> <端口号>

示例:
测试远程主机的 80 端口:

telnet 192.168.1.100 80

结果判断:

  • 连接成功 → 端口开放
  • Connection refused → 端口关闭
  • 超时无响应 → 防火墙拦截

Netcat(nc)(支持TCP/UDP)

nc -zv <目标IP> <端口号>  # TCP测试
nc -zuv <目标IP> <端口号> # UDP测试

参数说明:

Linux端口打开没?一键查看方法

  • -z:扫描模式
  • -v:显示详细信息
  • -u:UDP协议

检查防火墙状态

端口未打开可能是防火墙阻止,需检查以下配置:

iptables(传统防火墙)

sudo iptables -L -n | grep <端口号>

firewalld(现代防火墙)

sudo firewall-cmd --list-ports | grep <端口号>

若端口被拦截:
开放端口(以 firewalld 为例):

sudo firewall-cmd --add-port=<端口号>/tcp --permanent
sudo firewall-cmd --reload

端口状态排查流程图

graph TD
    A[端口是否打开?] --> B{使用 ss/netstat 检查监听状态}
    B -->|是| C[端口正常开放]
    B -->|否| D{使用 telnet/nc 测试连通性}
    D -->|连接成功| E[远端服务正常]
    D -->|连接失败| F{检查防火墙}
    F -->|防火墙放行| G[服务未运行或配置错误]
    F -->|防火墙拦截| H[需添加规则]

总结与建议

  1. 快速诊断:优先使用 ssnetstat 检查本地监听。
  2. 远程测试:用 telnet/nc 验证网络连通性。
  3. 深度分析nmap 扫描或 lsof 定位进程。
  4. 防火墙规则:始终检查 iptables/firewalld 配置。

安全提示

  • 避免在公共网络暴露敏感端口(如 MySQL 的 3306)。
  • 使用 nmap 扫描他人主机前需获得授权。
  • 生产环境修改防火墙前务必备份规则。

引用说明参考 Linux man 手册(man netstat/man ss/man nmap)及 Red Hat/CentOS 官方防火墙文档,确保方法权威可靠。

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月10日 05:18
下一篇 2025年6月10日 05:22

相关推荐

  • Linux如何查看IPv6地址?简单方法一览!

    查看Linux系统的IPv6地址常用命令:,1. 使用ip -6 addr show 查看所有接口的IPv6地址,2. 使用ifconfig | grep inet6 过滤显示IPv6信息,3. 使用hostname -6 查看主机IPv6地址(部分系统支持)

    2025年5月30日
    400
  • Linux如何设置定时自动保存功能?

    在Linux中可使用cron设置定时任务,通过crontab -e编辑计划,添加如“*/5 * * * * cp /path/source /path/backup”实现每5分钟保存,也可编写备份脚本结合tar/rsync命令,用systemd定时器触发,配合日志记录确保数据安全。

    2025年5月28日
    300
  • Linux如何快速安装Oracle?

    在Linux系统上使用Oracle数据库需先下载安装包,配置内核参数与用户环境,运行安装程序创建数据库实例并启动监听器,随后可通过SQL*Plus、SQL Developer等工具连接数据库进行SQL操作及基本管理。

    2025年6月2日
    400
  • Linux如何快速返回终端?

    在Linux中返回终端:若在图形界面,打开终端应用(如Ctrl+Alt+T);若在虚拟终端(tty),用Ctrl+Alt+F1~F6切换;运行exit或Ctrl+D可退出当前会话返回上级终端。

    2025年6月6日
    200
  • Linux快速启动Nginx教程

    在Linux中启动Nginx,通常使用命令 sudo systemctl start nginx,启动后可通过 sudo systemctl status nginx 验证状态,设置开机自启使用 sudo systemctl enable nginx。,Start Nginx on Linux with sudo systemctl start nginx. Verify status using sudo systemctl status nginx. Enable automatic startup at boot with sudo systemctl enable nginx. Always verify configuration with sudo nginx -t first.

    2025年6月6日
    100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN