Nginx安装后需通过firewalld永久开放http和https服务并重载规则才能对外访问;先确保firewalld运行,再执行sudo firewall-cmd --permanent --add-service=http、--add-service=https及--reload,并用--list-services验证。

安装 Nginx 后,默认监听 80(HTTP)和 443(HTTPS)端口,但 firewalld 若未放行,外部无法访问。需永久开放对应端口并重载规则,才能让服务真正对外可用。
确认 firewalld 正在运行
执行以下命令检查状态:
sudo systemctl status firewalld
若显示 active (running),说明已启用;若为 inactive,先启动并设为开机自启:
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
永久开放 HTTP 和 HTTPS 端口
firewalld 推荐使用 service 方式管理(比直接开 port 更规范),Nginx 对应的标准服务是 http 和 https:
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
如需临时开放(重启后失效),去掉 --permanent 参数即可;但生产环境务必加该参数保证持久生效。
重载防火墙配置使规则生效
添加规则后必须重载,否则不生效:
sudo firewall-cmd --reload
验证是否成功:
- 查看当前启用的服务:sudo firewall-cmd --list-services(应含 http https)
- 检查端口映射:sudo firewall-cmd --list-ports(通常为空,因我们用的是 service 模式)
补充:自定义端口或非标准配置
若 Nginx 改为监听其他端口(如 8080),需按端口方式添加:
- sudo firewall-cmd --permanent --add-port=8080/tcp
- 再执行 sudo firewall-cmd --reload
注意指定协议(/tcp 或 /udp),HTTP/HTTPS 均为 TCP。

















