操作场景
无法访问ECS实例中的服务可能有以下原因:
| 可能原因 | 排查方案 | 
| ECS实例的安全组未开放相应端口 | 检查ECS实例安全组规则 | 
| ECS实例中,该服务未启动/开启或服务对应端口未被监听 | 检查服务状态及端口监听状态 | 
| ECS实例内防火墙设置错误 | 检查ECS防火墙设置 | 
本文以排查无法访问ECS实例中的Nginx服务(默认端口为80)为例,排查其他服务时,请替换命令中的服务名和对应的端口。
检查ECS实例安全组规则
-  登录ECS管理控制台。 
-  在左侧导航栏,选择实例与镜像 > 实例。 
-  在顶部菜单栏左上角处,选择地域。 
-  在ECS实例列表页面,单击目标ECS实例ID。 
-  在ECS实例详情页面,单击安全组页签。 
-  在安全组列表页签下,单击安全组ID。 
-  在安全组规则页面,查看入方向规则是否开放80端口。  -  未开放80端口,请添加入方向为80的安全组规则。具体操作,请参见添加安全组规则。 
-  已开放80端口,请执行检查服务状态及端口监听状态。 
 
-  
检查服务状态及端口监听状态
Linux实例
Windows实例
本操作以CentOS 7.9为例,其他版本的Linux系统操作可能有所差异。
-  远程连接Linux实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 
-  执行如下命令,查看Nginx服务状态。 systemctl status nginx -  如果返回类似如下信息,则说明Nginx已经启动。  
-  如果未开启,请执行如下命令,启动Nginx命令。 systemctl start nginx 
 
-  
-  执行如下命令,查看端口是否正常被监听。 netstat -an | grep 80 -  如果返回如下信息,则说明80端口被正常监听,请执行检查ECS防火墙设置。  
-  如果返回的不是以上信息,表示80端口未处于监听状态。说明该端口可能被其他端口占用,您需要修改该端口。具体操作,请参见如何修改Nginx服务端口监听地址。 
 
-  
检查ECS防火墙设置
Linux实例
Windows实例
本操作以CentOS 7.9为例,其他版本的Linux系统操作可能有所差异。
-  远程连接Linux实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 
-  执行如下命令,查看防火墙状态。 systemctl status firewalld -  如果回显中出现 Active: inactive (dead)信息,说明防火墙为关闭状态,无需再进行任何操作。
-  如果回显中出现 Active: active (running)信息,说明防火墙已开启,请继续执行步骤3。
 
-  
-  执行如下命令,查看防火墙中已开放的端口。 firewall-cmd --list-all -  如果回显中出现ports: 80/tcp信息,说明防火墙规则中已放行80端口,无需再进行任何操作。  
-  如果回显中没有ports: 80/tcp信息,请执行如下命令,放行80端口。 firewall-cmd --zone=public --add-port=80/tcp --permanent 若返回结果为 success,表示已经放行TCP 80端口。
 
-  



















