服务器初始化时关闭SELinux和防火墙仅为开发测试快速排障,非生产推荐;需用getenforce/sestatus查状态,setenforce 0临时切Permissive,改/etc/selinux/config并重启方可永久禁用;firewalld需stop+disable,Ubuntu则用ufw disable。

服务器初始化时关闭 SELinux 和防火墙,主要是为快速验证服务部署、排除权限或网络拦截干扰,适用于开发、测试或内网集群环境。但要注意:这不是安全最佳实践,生产环境不建议直接关闭,而应精准开放端口、保留策略。
确认当前 SELinux 状态
先检查是否启用及当前模式:
- 运行 getenforce —— 快速返回
Enforcing、Permissive或Disabled - 运行 sestatus —— 查看完整状态,重点关注
SELinux status和Current mode
临时关闭 SELinux(重启失效)
适合调试中途快速绕过限制,无需重启:
- 执行 setenforce 0,立即切换为 Permissive 模式(只记录违规,不阻止操作)
- 再运行
getenforce应返回Permissive - 注意:该操作对已启动的服务(如 nginx、httpd)可能不立即生效,部分进程需重启才能脱离 SELinux 上下文约束
永久关闭 SELinux(需重启)
修改配置文件后必须重启才生效:
- 编辑 /etc/selinux/config(CentOS/RHEL 7/8/9 通用路径)
- 将
SELINUX=enforcing改为SELINUX=disabled - 保存退出,执行 reboot;重启后运行
sestatus,确认显示disabled - ⚠️ 注意:
disabled是唯一真正关闭的选项;permissive仍加载策略模块,仅不强制,不算“关闭”
关闭 firewalld 防火墙(CentOS/RHEL 7+)
firewalld 是默认防火墙服务,关闭分两步:
-
临时停用:运行
systemctl stop firewalld,立刻生效 -
禁止开机启动:运行
systemctl disable firewalld - 验证:执行
systemctl status firewalld,应显示inactive (dead)且Loaded行含disabled
补充说明
Ubuntu/Debian 系统默认不启用 SELinux(无需操作),防火墙通常为 ufw,关闭命令是 sudo ufw disable。若使用 iptables 旧规则,需额外处理 iptables-services 包并清空规则。关闭后建议至少保留 SSH 端口可访问,避免失联。


















