CentOS 防火墙开启步骤
一、适用于 CentOS 7 与 CentOS 8 的 firewalld 步骤
- 查看状态:执行 firewall-cmd --state 或 systemctl status firewalld,确认为 not running 再继续。
- 若提示被屏蔽:执行 systemctl unmask firewalld,解除屏蔽后再启动。
- 启动防火墙:执行 systemctl start firewalld。
- 设置开机自启:执行 systemctl enable firewalld。
- 验证:再次执行 firewall-cmd --state,应返回 running。
- 说明:CentOS 7/8/Stream 8 默认使用 firewalld 管理防火墙服务。
二、开启后放行端口或服务
- 放行单端口(示例:8080/TCP):
执行 firewall-cmd --zone=public --add-port=8080/tcp --permanent,然后 firewall-cmd --reload 使配置生效。
- 放行端口区间(示例:9002–9005/TCP):
执行 firewall-cmd --zone=public --add-port=9002-9005/tcp --permanent,然后 firewall-cmd --reload。
- 放行常用服务(示例:http/https):
执行 firewall-cmd --permanent --add-service=http 与 firewall-cmd --permanent --add-service=https,然后 firewall-cmd --reload。
- 常用查询:
查看已放行端口 firewall-cmd --list-ports;查看全部规则 firewall-cmd --list-all。
三、CentOS 6 的 iptables 步骤(如仍在使用)
- 即时开启:service iptables start
- 重启后永久生效:chkconfig iptables on
- 保存规则:/etc/rc.d/init.d/iptables save
- 重启防火墙:/etc/init.d/iptables restart
- 查看状态:/etc/init.d/iptables status
- 开放端口示例(8080/TCP):
执行 iptables -A INPUT -p tcp --dport 8080 -j ACCEPT,然后保存并重启。
四、常见问题与排查
- 启动失败并提示 “Failed to start firewalld.service: Unit is masked.”:先执行 systemctl unmask firewalld 再启动。
- 规则未生效:添加 –permanent 的规则后必须执行 firewall-cmd --reload 才会生效。
- 云服务器场景:除系统防火墙外,还需在云平台安全组放行对应 端口/协议/源IP,否则仍可能无法访问。