
# 云服务器端口不通怎样排查？
#### 操作场景
如果网站直接无法访问，可能是由于安全组没有放行网站或者远程连接工具使用的端口。
本节操作以80端口为例介绍排查云服务器端口不通问题的操作步骤。
#### 问题定位步骤
如果实例无法对外提供HTTP服务，可以按以下思路检查Web服务相关的接口（默认为TCP 80）是否正常工作。
1. 在ECS管理控制台，确认安全组已经放行该端口。
2. 远程连接ECS实例，确认服务已经开启。
3. 确认端口正常被监听。如没有，请修改监听地址。
4. 确认实例防火墙已经放行服务。
 
#### Windows操作系统
以下操作以Windows 2012操作系统云服务器，安装了IIS服务为例。
1. 确认安全组已经放行80端口。 
   1. 登录管理控制台。
   
   2. 单击管理控制台左上角的![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002188678994.png)，选择区域和项目。
   
   3. 选择"计算 \> 弹性云服务器"。
   
   4. 在弹性云服务器列表，单击待变更安全组规则的弹性云服务器名称。 系统跳转至该弹性云服务器详情页面。
      
   
   5. 选择"安全组"页签，查看安全组规则。
   
   6. 确保云服务器所在的安全组已添加如下安全组规则。
      图1安全组规则   
      ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002334417542.png "点击放大") 
   
   
   
   
2. 远程登录云服务器，确认服务已经开启。 
   1. 在"服务器管理器"窗口，单击"工具 \> Internet Information Services (IIS) 管理器"。 如果找不到这个选项，则说明没有成功安装IIS服务，需要重新安装IIS服务。
      
   
   2. 在Internet Information Services (IIS) 管理器窗口中确认以下信息。
      - 在"连接"导航栏里，右键单击实例ID，如果"启动"处于灰色状态，表示IIS服务已经开启。
      
      - 单击"网站"，在右边列表页查看您安装的网站的状态。如果网站状态为"已停止"，则单击网站，在右侧操作栏的"管理站点"，单击"启动"，启动网站。
       
   
   
   
   
3. 查看端口在实例中是否正常被监听的操作步骤。 
   打开cmd窗口，执行如下命令。
   **netstat -ano \| findstr :80**
   如果回显信息如下则说明80端口正常全网监听。否则，请修改监听地址。
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0194294242.png "点击放大")
   
   
4. 确认实例防火墙已经放行服务。 
   1. 单击"控制面板 \> Windows防火墙"。
   
   2. 根据防火墙状态，执行不同操作。
      - 如果防火墙处于关闭状态，不需要再做其他处理。
      
      - 如果防火墙处于开启状态，则执行以下操作。
        1. 单击"高级设置"。
        
        2. 在弹出窗口的左侧导航栏中，单击"入站规则"。
        
        3. 选择"万维网服务 (HTTP 流入量)"，如果处于禁用状态，请重新启用规则。
         
       
   
   
   
   
 
#### Linux操作系统
以下操作以CentOS 7操作系统云服务器安装Nginx服务为例。
1. 确认安全组已经放行80端口。 
   1. 登录管理控制台。
   
   2. 单击管理控制台左上角的![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002188678994.png)，选择区域和项目。
   
   3. 选择"计算 \> 弹性云服务器"。
   
   4. 在弹性云服务器列表，单击待变更安全组规则的弹性云服务器名称。 系统跳转至该弹性云服务器详情页面。
      
   
   5. 选择"安全组"页签，查看安全组规则。
   
   6. 确保云服务器所在的安全组已添加如下安全组规则。
      图2安全组规则   
      ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002334418718.png "点击放大") 
   
   
   
   

2. 远程连接ECS实例，确认服务已经开启。 
   执行如下命令，检查nginx服务是否已经开启。
   **systemctl status nginx**
   回显信息如下所示，则说明Nginx已经启动。
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0191565358.png "点击放大")
   如果未开启，则执行以下命令启动Nginx。
   **systemctl start nginx**
   
   
3. 执行如下命令，查看端口在实例中是否正常被监听。 
   **netstat -an \| grep 80**
   回显信息则说明80端口正常全网监听。如果返回的不是上述结果，请修改监听地址。
   ```
   tcp   0 0 0.0.0.0:80    0.0.0.0:*     LISTEN
   ```
   
   
4. 查看云服务器防火墙iptables规则列表。 
   - 执行以下命令，查看防火墙状态。 **systemctl status firewalld**
     或
     **firewall-cmd --state**
     
   
   - 如果防火墙关闭可以执行以下命令开启。 **systemctl start firewalld**
     如果开启命令执行后提示"Failed to start firewalld.service: Unit is masked."请执行以下命令后再重新执行开启防火墙的命令。
     **systemctl unmask firewalld**
     
   
   - 查看打开的端口 **firewall-cmd --zone=public --list-ports**
     
   
   - 放行TCP 80端口 **firewall-cmd --zone=public --add-port=80/tcp --permanent**
     
   
   - 更新防火墙规则 **firewall-cmd --reload**
     
   
   
   
   
 
