CentOS服务器开放端口需按系统版本选择工具:CentOS 6及更早用iptables,需手动保存规则至/etc/sysconfig/iptables;CentOS 7/8默认用firewalld,须加--permanent参数并执行--reload生效,且需同步配置云平台安全组。

CentOS 服务器开放端口,关键看系统版本——CentOS 6 及更早用 iptables,CentOS 7/8 默认用 firewalld。两者命令、保存机制和生效逻辑完全不同,不能混用。
firewalld(CentOS 7/8 推荐)
这是默认且动态管理的工具,规则分“运行时”和“永久”两层,必须加 --permanent 才能重启不丢。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 先确认服务在运行:
sudo systemctl status firewalld,没启动就执行sudo systemctl start firewalld && sudo systemctl enable firewalld - 永久开放 TCP 端口(比如 8080):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent - 立即重载配置生效:
sudo firewall-cmd --reload - 验证是否成功:
sudo firewall-cmd --query-port=8080/tcp返回yes即开;sudo firewall-cmd --list-ports查所有已开端口
iptables(CentOS 6 或手动降级场景)
规则直接写入内核链,但重启后清空,必须显式保存。
- 检查状态:
sudo service iptables status,未运行则sudo service iptables start并sudo chkconfig iptables on - 添加规则(如开放 3306):
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT - 保存到文件:
sudo service iptables save(会写入/etc/sysconfig/iptables) - 重启生效:
sudo service iptables restart
通用注意事项
无论用哪种方式,都得同步考虑云平台安全组——阿里云、腾讯云、AWS 等控制台里的“安全组规则”必须也放行对应端口,否则流量根本到不了服务器防火墙。
- 操作前务必保留 SSH 端口(默认 22)畅通,避免锁死;建议提前配好控制台或 VNC 访问方式
- 只开放业务必需端口,避免全端口放行(如
--dport 1:65535) - UDP 端口写法类似,把
tcp换成udp即可,例如--add-port=53/udp

















