本文介绍无法访问ECS实例中的服务的排查方法。
操作场景
无法访问ECS实例中的服务可能有以下原因:
可能原因 |
排查方案 |
ECS实例的安全组未开放相应端口 |
|
ECS实例中,该服务未启动/开启或服务对应端口未被监听 |
|
ECS实例内防火墙设置错误 |
本文以排查无法访问ECS实例中的Nginx服务(默认端口为80)为例,排查其他服务时,请替换命令中的服务名和对应的端口。
检查ECS实例安全组规则
- 登录 ECS管理控制台 。
- 在左侧导航栏,选择 。
- 在顶部菜单栏左上角处,选择地域。
-
在ECS实例列表页面,单击目标ECS实例ID。
-
在ECS实例详情页面,单击 安全组 页签。
-
在 安全组列表 页签下,单击安全组ID。
-
在安全组规则页面,查看入方向规则是否开放80端口。
-
未开放80端口,请添加入方向为80的安全组规则。具体操作,请参见 添加安全组规则 。
-
已开放80端口,请执行 检查服务状态及端口监听状态 。
-
检查服务状态及端口监听状态
Linux实例
本操作以CentOS 7.9为例,其他版本的Linux系统操作可能有所差异。
-
远程连接Linux实例。
具体操作,请参见 通过密码或密钥认证登录Linux实例 。
-
执行如下命令,查看Nginx服务状态。
systemctl status nginx
-
如果返回类似如下信息,则说明Nginx已经启动。
-
如果未开启,请执行如下命令,启动Nginx命令。
systemctl start nginx
-
-
执行如下命令,查看端口是否正常被监听。
netstat -an | grep 80
-
如果返回如下信息,则说明80端口被正常监听,请执行 检查ECS防火墙设置 。
-
如果返回的不是以上信息,表示80端口未处于监听状态。说明该端口可能被其他端口占用,您需要修改该端口。具体操作,请参见 如何修改Nginx服务端口监听地址 。
-
Windows实例
本操作以Windows Server 2012为例,其他版本的Windows Server系统操作类似。
-
远程连接Windows实例。
具体操作,请参见 通过密码或密钥认证登录Windows实例 。
-
选择 开始 > 运行 ,输入
service.msc
,单击 确定 ,打开 服务 。 -
查看nginx状态。
-
如果nginx无状态,请右键单击该nginx服务,然后单击 启动(S) 。
-
如果nginx状态为 正在运行 ,请继续执行步骤 4 。
-
-
在Windows PowerShell中执行如下命令,查看端口是否正常被监听。
netstat -ano | findstr "80"
-
如果返回如下信息,则说明80端口被正常监听,请执行 检查ECS防火墙设置 。
-
如果返回的不是以上信息,表示80端口未处于监听状态。说明该端口可能被其他端口占用,您需要修改该端口。具体操作,请参见 如何修改Nginx服务端口监听地址 。
-
检查ECS防火墙设置
Linux实例
本操作以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端口。
-
Windows实例
本操作以Windows Server 2012为例,其他版本的Windows Server系统操作类似。
-
远程连接Windows实例。
具体操作,请参见 通过密码或密钥认证登录Windows实例 。
-
单击左下角的 图标,打开服务器管理。
-
选择右上角的 工具 (T)> 高级安全 Windows防火墙 。
-
查看防火墙状态。
-
如果防火墙处于关闭状态,无需进行任何操作。
-
如果防火墙状态为已启用,请继续以下操作。
-
在 高级安全 Windows防火墙 页面,单击 入站规则 。
-
查看 Windows 远程管理-兼容模式(HTTP-In) 的状态。
-
如果协议已启动,无需进行任何操作。
-
如果该规则未启用,请右键单击该规则,然后单击 启用规则(E) 。
-
-
-