«

CentOS7 firewalld开放80、443端口永久生效命令

时间:2026-10-5 08:17     作者:emer     分类: 无


前言

CentOS 7 开始,系统默认的防火墙管理工具从原来的 iptables 换成了 firewalld。很多刚接触 CentOS 7 的运维同学,部署完 Nginx 或者 Apache 之后发现网站访问不了,最后排查半天发现是防火墙没放行 80 和 443 端口。

这篇文章就详细讲讲 CentOS 7 下用 firewalld 开放 80、443 端口,并且确保重启后依然生效的完整操作步骤。

操作步骤

1. 先确认 firewalld 服务状态

在配置端口之前,先确认防火墙服务是否正在运行:

systemctl status firewalld

如果看到 active (running) 就说明防火墙正在运行。如果是 inactive 状态,说明防火墙没启动,可以先启动它:

systemctl start firewalld
systemctl enable firewalld

2. 查看当前已经开放的端口和服务

firewall-cmd --list-all

执行完之后会看到类似下面的输出:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

从这里可以看到,默认只开放了 ssh 和 dhcpv6-client 两个服务,80 和 443 端口都没开。

3. 永久开放 80 端口

这里要注意,必须加上 --permanent 参数,否则重启服务器之后配置就丢了。

firewall-cmd --permanent --add-port=80/tcp

执行成功之后会返回 success。

4. 永久开放 443 端口

同样的方式开放 443 端口,这个是 HTTPS 默认端口:

firewall-cmd --permanent --add-port=443/tcp

5. 重载防火墙使配置生效

很多同学加完端口就以为完事了,其实不对。firewalld 有运行时配置和永久配置之分,加了 --permanent 的配置写入了永久配置,但还需要重载一下才能在当前运行时生效:

firewall-cmd --reload

6. 验证端口是否真的开放了

最后再检查一下:

firewall-cmd --list-ports

如果看到 80/tcp 和 443/tcp 都在列表里,就说明配置成功了。

常见坑

坑 1:忘记加 --permanent 参数

这是最常见的错误。如果不加 --permanent,配置只在当前运行时生效,服务器一重启就没了。很多同学配置完当时测试没问题,第二天服务器重启网站又打不开了,就是这个原因。

正确写法:firewall-cmd --permanent --add-port=80/tcp

坑 2:加完端口忘记 reload

加了 --permanent 之后,必须执行 firewall-cmd --reload 才能生效。不然你会发现配置写进去了,但端口还是不通。

坑 3:想一次性开放多个端口怎么办

如果要开放一批连续的端口,比如 1000 到 2000,可以用这个写法:

firewall-cmd --permanent --add-port=1000-2000/tcp

如果要开放多个不连续的端口,就执行多次 add-port 命令就行。

坑 4:怎么移除已经开放的端口

如果不小心开错了端口,要移除的话用 remove-port:

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

总结

CentOS 7 下 firewalld 开放端口的核心就三步:

  1. 用 --permanent --add-port=端口号/tcp 添加永久规则
  2. 执行 firewall-cmd --reload 重载生效
  3. 用 firewall-cmd --list-ports 确认结果

记住这三个关键点,基本不会踩坑。Web 服务常用的 80 和 443 端口开放之后,外部才能正常访问你的网站。

遇到问题加QQ23979811 协助处理

标签: firewalld CentOS7 开放端口 80端口 443端口