CentOS防火墙开放端口规则详解
防火墙工具选择
CentOS系统默认使用firewalld作为防火墙管理工具,旧版系统可能使用iptables。需根据系统版本选择对应操作方案。
firewalld开放端口
临时开放端口(重启失效)
firewall-cmd --add-port=8080/tcp
永久开放端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
开放端口范围
firewall-cmd --permanent --add-port=8000-9000/tcp
iptables开放端口(传统方案)
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save # 保存规则
service iptables restart
验证端口状态
使用nmap或telnet检查端口开放情况:
nmap localhost
telnet 服务器IP 端口号
服务关联方案
直接添加服务(如HTTP/SSH)更安全:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
错误排查
- 确认防火墙状态:
systemctl status firewalld
- 检查生效规则:
firewall-cmd --list-all
- 查看日志:
journalctl -xe -u firewalld
注意事项
生产环境中建议:
- 使用
--permanent
参数保持规则持久化 - 精确限制源IP(如
--add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept'
) - 修改后执行
firewall-cmd --reload
生效