开启或关闭Linux实例中的系统防火墙

2026-08-17 03:09:53

操作说明

Linux系统存在不同的发行版本,不同发行版本中开启或关闭系统防火墙的命令不同,请根据现场环境匹配下列发行版本的操作命令。

重要

为避免因使用管理员权限不当造成不可预期的风险,建议您使用ecs-user用户或普通用户操作。如果普通用户没有sudo权限,具体操作,请参见如何为普通用户添加sudo权限。

CentOS 7/CentOS Stream 8/Red Hat 7、8/Alibaba Cloud Linux2、3

查看防火墙运行状态

系统防火墙默认为关闭状态,您可以使用此命令确认防火墙当前状态。

sudo firewall-cmd --state

说明

not running:系统防火墙为关闭状态。

running:系统防火墙为开启状态。

出现报错-bash: firewall-cmd: command not found:表示未安装系统防火墙,若您需开启防火墙,请执行命令sudo yum install firewalld -y安装防火墙,再参考下方操作开启。

开启防火墙

sudo systemctl start firewalld

注意:如果您希望实现在每次重开机时自动启动服务,执行如下命令,开启开机自动启动防火墙服务。

sudo systemctl enable firewalld

关闭防火墙

sudo systemctl stop firewalld

注意:如果您不希望实现在每次重开机时自动启动服务,执行如下命令,关闭开机自动启动防火墙服务。

sudo systemctl disable firewalld

Ubuntu

查看防火墙运行状态

系统防火墙默认为关闭状态,您可以使用此命令确认防火墙当前状态。

sudo ufw status

说明

Status: inactive:系统防火墙为关闭状态。

Status: active:系统防火墙为开启状态。

开启防火墙

执行如下命令开启防火墙,如果Linux实例重启,防火墙仍会自动开启。

sudo ufw enable

关闭防火墙

执行如下命令关闭防火墙,如果Linux实例重启,防火墙仍为关闭状态。

sudo ufw disable

Debian

在Debian系统中,默认没有安装防火墙,可以通过清空防火墙策略,删除相关屏蔽规则。清空策略前,请务必备份防火墙策略。若需恢复规则,可以使用备份文件恢复防火墙策略。

查看防火墙策略

sudo iptables -L

关闭防火墙:清空防火墙策略

您可以通过清空防火墙策略,删除相关屏蔽规则,实现关闭防火墙功能。

说明

请替换[$Iptables]为实际防火墙策略的备份文件地址。

创建备份文件

sudo touch [$Iptables]

备份防火墙策略

sudo sh -c "iptables-save > [$Iptables]"

清空防火墙策略

sudo iptables -F

开启防火墙:根据备份文件恢复防火墙策略

您可以通过恢复防火墙策略或者添加新的防护规则开启防火墙功能。

说明

请替换[$Iptables]为实际防火墙策略的备份文件地址。

sudo iptables-restore < [$Iptables]

常见问题

如何为普通用户添加sudo权限?

CentOS 7/CentOS Stream 8/Red Hat 7、8/Alibaba Cloud Linux2、3

Ubuntu/Debian

使用root用户远程连接Linux服务器。

具体操作,请参见使用Workbench工具以SSH协议登录Linux实例。

运行以下命令,新建一个普通用户test并设置密码。

useradd test

passwd test

运行以下命令,为/etc/sudoers文件赋予权限。

chmod 750 /etc/sudoers

运行以下命令,编辑/etc/sudoers文件。

vim /etc/sudoers

按i键进入编辑模式并添加以下配置:

test ALL=(ALL) NOPASSWD: ALL

按Esc键,输入:wq,按Enter键保存并退出文件。

运行以下命令,切换到test用户。

su - test

运行以下命令,测试sudo权限。

sudo cat /etc/shadow

如果能看到该文件内容,表示sudo权限已经添加成功。

关闭系统防火墙后,仍无法访问实例

如果关闭防火墙后,您仍无法远程访问实例,您可以尝试排查其他可能原因,详情请参见无法连接Linux实例的排查方法。