遇到端口不通,直接关闭整个防火墙看似省事,却会掩盖问题并扩大暴露面。更稳妥的办法是先确认服务,再读规则,最后只改需要的端口。
明确服务实际使用的端口
ss -lntp
systemctl status ssh --no-pager不同发行版中 OpenSSH 服务名可能是 ssh 或 sshd,以本机 systemctl list-unit-files 的结果为准。即使服务显示运行,也要确认它是否真的监听预期端口。
只读地查看防火墙状态
Ubuntu 常见 ufw,Fedora/RHEL 系常见 firewalld。先确认系统实际用了哪一种,再查看:
sudo ufw status verbose
sudo firewall-cmd --list-all这两条是不同工具的示例,不需要两种都安装。规则还可能来自 nftables、容器网络或云平台安全组。云服务器上,主机防火墙放行了端口,也不代表云平台入口规则已经放行。
修改前写下回退方案
记下现有规则、来源 IP、目标端口和协议。远程调整 SSH 时保留当前连接,确认新连接可用后再退出。公开服务也尽量按需要限制来源范围;不要为了临时测试开放所有端口。
参考:Ubuntu UFW 文档 · firewalld 官方文档
封面插画:unDraw(https://undraw.co/license)。
区分临时规则与持久规则
firewalld 的运行时规则与 permanent 配置不是一回事,只修改其中一份可能在重载或重启后变化。先检查实际 zone 与接口归属,再决定来源、协议和端口;应用监听回环地址时,开放外部规则也不会让它自动对外监听。此文不提供关闭整个防火墙的捷径;每次变更记录原规则和撤回步骤,并用新连接复核。
内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
你好!!!!!