在Linux系统中配置防火墙和开放端口,许多用户误以为只需简单的“开启”或“关闭”操作。然而实际情况是,即使停止了firewalld或ufw服务,网络服务仍可能无法访问。问题的根源往往涉及服务监听配置、云平台安全组规则,甚至是SELinux安全策略。因此,正确的方法是先根据Linux发行版选择对应的
Linux防火墙关闭与端口开放配置指南
时间:2026-05-21
浏览:189
文章目录
在Linux系统中配置防火墙和开放端口,许多用户误以为只需简单的“开启”或“关闭”操作。然而实际情况是,即使停止了firewalld或ufw服务,网络服务仍可能无法访问。问题的根源往往涉及服务监听配置、云平台安全组规则,甚至是SELinux安全策略。因此,正确的方法是先根据Linux发行版选择对应的管理工具,然后进行系统性的逐层排查。

如何确认系统当前使用的防火墙工具
首要步骤是准确识别当前生效的防火墙管理工具,不同Linux发行版的默认配置存在差异,使用错误的命令将无法生效。
- 在CentOS、RHEL或Fedora系统中,通常默认使用
firewalld。执行sudo systemctl status firewalld命令,若显示active (running)状态,则表明该服务正在运行。 - 在Ubuntu或Debian系统中,默认防火墙工具为
ufwsudo systemctl status ufw命令检查状态,active表示服务已启用。 - 如果上述两个服务均显示
inactive状态,但执行sudo iptables -L -n却能查看到规则,则说明系统直接使用了底层的iptables。这种情况常见于旧版本系统或某些容器宿主机环境。
需要特别注意:firewalld和ufw不建议同时启用,两者可能存在规则冲突。若确定使用其中一种工具,请确保将另一种工具彻底停止并禁用,而非仅暂停服务。
firewalld防火墙开放与关闭端口操作
使用firewalld时最常见的误区是规则配置后未生效。其规则分为“临时”与“永久”两种类型,要确保配置在重启后持续有效,必须遵循两个关键步骤:添加--permanent参数,然后执行--reload重载配置。
- 开放TCP端口(以8080为例):
sudo firewall-cmd --permanent --add-port=8080/tcp - 开放UDP端口(以53为例):
sudo firewall-cmd --permanent --add-port=53/udp - 删除已开放端口:
sudo firewall-cmd --permanent --remove-port=8080/tcp - 重载配置(关键步骤):
sudo firewall-cmd --reload - 查看当前开放端口:
sudo firewall-cmd --list-ports
请注意:协议类型/tcp或/udp必须明确指定,仅输入端口号如8080会导致命令执行失败。
ufw防火墙快速管理端口指南
ufw的命令语法相对直观,但仍需注意其特定操作逻辑。该服务默认可能处于禁用状态,需要先启用。
- 首次启用服务:
sudo ufw enable - 开放TCP端口:
sudo ufw allow 8080(默认协议为TCP),也可显式指定sudo ufw allow 8080/tcp - 开放UDP端口:
sudo ufw allow 53/udp - 删除规则:此处需掌握技巧。不能直接使用端口号删除,应先通过
sudo ufw status numbered查看规则编号,再根据编号执行删除,例如删除第二条规则:sudo ufw delete 2。直接运行ufw deny 8080并不会移除原有允许规则,而是在其前添加拒绝规则,可能导致策略混乱。 - 查看所有规则:
sudo ufw status verbose
需知悉:ufw规则按顺序生效。若某条deny规则排列在allow规则之前,则放行将失效。除非明确了解规则结构,否则建议仅通过命令增删规则,避免手动编辑/etc/ufw/user.rules等配置文件。
防火墙关闭后端口仍不通的排查要点
这是最常遇到的复杂情况:防火墙已关闭,端口配置也已完成,但连接仍然失败。问题可能存在于以下多个层面。
- 服务监听状态检查:防火墙已放行,但服务本身是否在监听?使用
sudo ss -tlnp | grep :8080或sudo netstat -tlnp | grep :8080命令进行验证。若未发现对应进程,可能是服务未启动,或仅绑定在127.0.0.1本地回环地址上,导致外部无法访问。 - 云服务器安全组配置:如果使用的是阿里云、腾讯云、AWS等云服务,在系统防火墙之上还存在“安全组”或“网络ACL”层。这层配置具有更高优先级,必须登录云平台控制台,确保对应端口和IP范围已正确放行。
- SELinux策略影响:在RHEL、CentOS等系统中,SELinux可能会拦截网络连接。可临时执行
sudo setenforce 0将其切换至宽容模式进行测试。但这仅为临时解决方案,长期而言应配置正确的SELinux策略,而非简单关闭。 - 最终连通性验证:不要仅依赖配置检查。本地测试可使用
telnet 127.0.0.1 8080命令,远程服务器验证则推荐nc -zv 服务器IP地址 8080进行端口连通性测试。
最后特别提醒两个最高频的疏忽点:在firewalld中添加永久规则后忘记执行--reload重载;在ufw中删除规则时未核对编号导致误删。这两个步骤一旦遗漏,之前的所有配置工作都将无法生效。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。