文档首页/ 弹性云服务器 ECS/ 故障排除/ 防火墙设置/ Linux云服务器防火墙开放80端口后无法访问公网
更新时间:2024-08-15 GMT+08:00

Linux云服务器防火墙开放80端口后无法访问公网

问题描述

Linux云服务器开启了防火墙并在配置中开放了80端口,但是无法访问公网,关闭防火墙后,可以正常访问网站。

原因分析

出现该问题的原因可能是防火墙规则与网卡接口不在同一区域zone。您可以按照以下步骤查看:

  1. 执行如下命令,查看防火墙规则指定区域及开放端口。
    firewall-cmd --list-all

    下图示例中防火墙规则指定区域为public,开放端口为80,网卡接口为eth0。

    图1 查看防火墙信息
  2. 执行如下命令,查看网卡接口所在区域。
    firewall-cmd --get-active-zones

    下图示例中网卡接口指定区域为external。

    图2 查看网卡接口所在区域
  3. 执行如下命令,查看external区域下是否开放了80端口,具体示例如图3所示。
    firewall-cmd --zone=external --list-ports
    图3 external区域未开放端口

    external区域下暂未开放80端口。

  4. 执行如下命令,查看public区域下是否开放了80端口,具体示例如图4所示。
    firewall-cmd --zone=public --list-ports
    图4 public区域已开放端口

    public区域下开放了80端口。

由此可知,防火墙规则与网卡接口不在同一区域,导致无法访问网站。

解决方法

方案一

在网卡接口指定区域增加防火墙规则,开放80端口,具体操作如下。

  1. 执行如下命令,开放80端口。
    firewall-cmd --zone=external --add-port=80/tcp --permanent
    图5 开放80端口
  2. 执行如下命令,更新防火墙规则。
    firewall-cmd --reload
    图6 更新防火墙规则
  3. 执行如下命令,查看防火墙规则。
    firewall-cmd --zone=external --list-ports
    图7 查看防火墙规则

方案二

修改网卡接口指定区域,使其与防火墙规则处于同一区域,具体操作如下。

  1. 执行如下命令,修改网卡接口指定区域。
    firewall-cmd --zone=public --change-interface=eht0
    图8 修改网卡接口指定区域
  2. 执行如下命令,查看网卡接口指定区域。
    firewall-cmd --get-active-zones
    图9 查看网卡接口指定区域