云服务器端口不通怎样排查?
操作场景
如果网站直接无法访问,可能是由于安全组没有放行网站或者远程连接工具使用的端口。
本节操作以80端口为例介绍排查云服务器端口不通问题的操作步骤。
问题定位步骤
如果实例无法对外提供HTTP服务,可以按以下思路检查Web服务相关的接口(默认为TCP 80)是否正常工作。
- 在ECS管理控制台,确认安全组已经放行该端口。
- 远程连接ECS实例,确认服务已经开启。
- 确认端口正常被监听。如没有,请修改监听地址。
- 确认实例防火墙已经放行服务。
Windows操作系统
以下操作以Windows 2012操作系统云服务器,安装了IIS服务为例。
- 确认安全组已经放行80端口。
- 远程登录云服务器,确认服务已经开启。
- 查看端口在实例中是否正常被监听的操作步骤。
打开cmd窗口,执行如下命令。
netstat -ano | findstr :80
如果回显信息如下则说明80端口正常全网监听。否则,请修改监听地址。
- 确认实例防火墙已经放行服务。
- 单击“控制面板 > Windows防火墙”。
- 根据防火墙状态,执行不同操作。
- 如果防火墙处于关闭状态,不需要再做其他处理。
- 如果防火墙处于开启状态,则执行以下操作。
- 单击“高级设置”。
- 在弹出窗口的左侧导航栏中,单击“入站规则”。
- 选择“万维网服务 (HTTP 流入量)”,如果处于禁用状态,请重新启用规则。
Linux操作系统
以下操作以CentOS 7操作系统云服务器安装Nginx服务为例。
- 确认安全组已经放行80端口。
- 远程连接ECS实例,确认服务已经开启。
执行如下命令,检查nginx服务是否已经开启。
systemctl status nginx
回显信息如下所示,则说明Nginx已经启动。
如果未开启,则执行以下命令启动Nginx。
systemctl start nginx
- 执行如下命令,查看端口在实例中是否正常被监听。
netstat -an | grep 80
回显信息则说明80端口正常全网监听。如果返回的不是上述结果,请修改监听地址。
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
- 查看云服务器防火墙iptables规则列表。
- 执行以下命令,查看防火墙状态。
或
firewall-cmd --state
- 如果防火墙关闭可以执行以下命令开启。
如果开启命令执行后提示“Failed to start firewalld.service: Unit is masked.”请执行以下命令后再重新执行开启防火墙的命令。
systemctl unmask firewalld
- 查看打开的端口
- 放行TCP 80端口
- 更新防火墙规则
- 执行以下命令,查看防火墙状态。