使用 Linux 云服务器搭建网站、部署项目,服务器安全非常重要。firewalld 是 CentOS7 及以上系统默认的防火墙服务,可以控制端口访问,防止恶意 IP 扫描和攻击。如果网站外部无法访问,很多情况是防火墙端口没有放行。
# 查看firewalld运行状态
systemctl status firewalld
# 启动防火墙
systemctl start firewalld
# 开机自动启动防火墙
systemctl enable firewalld
# 关闭防火墙
systemctl stop firewalld
# 开机禁用防火墙(不推荐生产环境使用)
systemctl disable firewalld
# 查看所有永久生效规则
firewall-cmd --list-all
# 永久放行80端口(http网站端口)
firewall-cmd --permanent --add-port=80/tcp
# 永久放行443端口(https网站端口)
firewall-cmd --permanent --add-port=443/tcp
# 放行自定义端口,例如8080
firewall-cmd --permanent --add-port=8080/tcp
添加--permanent代表永久生效;添加规则后,必须重载防火墙
# 重载防火墙,让规则生效
firewall-cmd --reload
如果不再使用某个端口,可以移除放行规则:
firewall-cmd --permanent --remove-port=8080/tcp
# 重载生效
firewall-cmd --reload
firewalld 支持直接放行服务名称,不用手动写端口
# 永久放行http服务(对应80端口)
firewall-cmd --permanent --add-service=http
# 永久放行https服务(对应443端口)
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
firewalld 用来管控服务器端口访问,搭建网站一定要放行 80 和 443 端口。云服务器防护需要防火墙 + 平台安全组双重配置,不要为了省事直接关闭防火墙,避免服务器遭受网络攻击。