文档首页/ 弹性云服务器 ECS/ 故障排除/ 防火墙设置/ Linux云服务器怎样开启或关闭防火墙、添加例外端口?
更新时间:2024-08-15 GMT+08:00

Linux云服务器怎样开启或关闭防火墙、添加例外端口?

操作场景

本节操作指导用户开启或关闭Linux操作系统云服务器的防火墙,以及防火墙添加例外端口的操作。

防火墙开启和设置安全组是对云服务器的双重保护,如果选择关闭防火墙,建议安全组谨慎开放端口。

开启或关闭防火墙

根据操作系统不同,分别执行以下命令开启或关闭防火墙。

操作系统

开启

关闭

CentOS 6

service iptables start

service iptables stop

CentOS 7

systemctl start firewalld.service

systemctl stop firewalld.service

Ubuntu

ufw enable

ufw disable

Debian

/etc/init.d/iptables start

/etc/init.d/iptables stop

防火墙添加例外端口

  • CentOS 6添加防火墙例外端口。
    1. 以添加23端口为例,执行以下命令,添加防火墙例外端口:tcp协议23端口。

      iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT

    2. 保存新配置。

      service iptables save

    3. (可选)设置防火墙开机自启动。
      chkconfig iptables on
      • 可执行以下命令关闭防火墙开机自启动。

        chkconfig iptables off

      • CentOS 6启动防火墙时可能会出现"iptables"no config file"错误 ,原因是未找到配置文件iptables。解决方法如下:
        1. 新建一条规则。

          iptables -P OUTPUT ACCEPT

        2. 保存配置。

          service iptables save

        3. 再次启动防火墙。

          service iptables start

  • 以CentOS 7添加防火墙例外端口及防火墙常用操作。
    1. 查看防火墙状态。

      systemctl status firewalld

      firewall-cmd --state

    2. 如果防火墙关闭可以执行以下命令开启。

      systemctl start firewalld

      如果开启命令执行后提示“Failed to start firewalld.service: Unit is masked.”请执行以下命令后再重新执行开启防火墙的命令。systemctl unmask firewalld

    3. 重新检查防火墙状态是否打开。

      firewall-cmd --state

      回显信息:

      [root@ecs-centos7 ~]# firewall-cmd --state
      running
    4. 以添加23端口为例,执行以下命令,添加防火墙例外端口:tcp协议23端口。

      firewall-cmd --zone=public --add-port=23/tcp --permanent

      回显信息如下说明设置成功:

      [root@ecs-centos7 ~]# firewall-cmd --zone=public --add-port=23/tcp --permanent
      success
    5. 重新加载策略配置,使新配置生效。

      firewall-cmd --reload

    6. 可以执行以下命令查看开启的所有端口。

      firewall-cmd --list-ports

      [root@ecs-centos7 ~]# firewall-cmd --list-ports
      23/tcp
    7. (可选)设置防火墙开机自启动。

      systemctl enable firewalld.service

      查看防火墙设置开机自启是否成功。

      systemctl is-enabled firewalld.service;echo $?

      回显信息如下说明已设置成功:

      [root@ecs-centos7 ~]# systemctl is-enabled firewalld.service;echo $?
      enabled
      0

      可执行以下命令关闭防火墙开机自启动。

      systemctl disable firewalld.service