这篇档为你介绍如何排查及定位网络无法访问的问题。
一、可能原因
| 可能原因 | 处理措施 |
| 服务器关机、硬件故障、CPU、内存和带宽使用率过高造成网站无法访问 | 检查并排查服务器相关问题 |
| 因丢包或延时高造成网站无法访问 | 检查并排查网络相关问题 |
| 安全组端口未放通造成网络无法访问 | 检查并排查安全组设置相关问题 |
| 防火墙端口限制导致网站无法访问 | 检查并排查防火墙设置相关问题 |
| 域名未备案和解析造成网络无法访问 | 检查并排查域名备案和解析相关问题 |
二、检查并排查服务器相关问题
服务器关机、硬件故障、CPU、内存和带宽使用率过高都可能造成网站无法访问,因此建议你依次排查服务器的运行状态、CPU、内存和带宽的使用情况。
1. 登录 云服务器控制台,并在实例的管理页面查看实例的运行情况是否正常。如下:
·实例的运行情况正常,请执行 步骤2。
·实例的运行情况异常,请重启云服务器实例。
2. 单击实例的 ID/实例名,进入该实例的详情页面。
3. 选择监控页签,查看 CPU、内存和带宽的使用情况。如下:
·如果存在 CPU/内存使用过高的情况,请参见 Windows 实例:CPU 与内存占用率高导致无法登录 和 Linux 实例:CPU 与内存占用率高导致无法登录 进行排查。
·如果存在带宽使用过高的情况,请参见 带宽占用高导致无法登录 进行排查。
·如果 CPU/内存/带宽的使用情况正常,请执行 步骤4。
4. 执行以下命令,检查 Web 服务相应的端口是否被正常监听。
注意:说明:
注意:以下操作以 HTTP 服务常用的80端口为例。
·Linux 实例:执行 netstat -ntulp |grep 80 命令。如下:
·Windows 实例:打开 CMD 命令行工具,执行 netstat -ano|findstr :80 命令。如下:
·如果端口被正常监听,请执行 步骤5。
·如果端口没有被正常监听,请检查 Web 服务进程是否启动或者正常配置。
5. 检查防火墙设置,是否放行 Web 服务进程对应的端口。
·Linux 实例:执行 iptables -vnL 命令,查看 iptables 是否放通80端口。
·若已放通80端口,请 检查并排查网络相关问题。
·若未放通80端口,请执行 iptables -I INPUT 5 -p tcp –dport 80 -j ACCEPT 命令,放通80端口。
·Windows 实例:在操作系统界面,单击开始 > 控制面板 > 防火墙设置,查看 Windows 防火墙是否关闭。
·Windows 防火墙已关闭,请 检查并排查网络相关问题。
·Windows 防火墙未关闭,请关闭防火墙设置。
三、检查并排查网络相关问题
网络相关问题也有可能引起网站无法访问,你可以执行以下命令,检查网络是否有丢包或延时高的情况。
ping <目的服务器的公网 IP>
·如果返回类似如下结果,则表示存在丢包或延时高的情况,请使用 MTR 进一步进行排查。具体操作请参见 云服务器网络延迟和丢包。
·如果没有丢包或延时高的情况,请 检查并排查安全组设置相关问题。
四、检查并排查安全组设置相关问题
安全组是一个虚拟防火墙,可以控制关联实例的入站流量和出站流量。安全组的规则可以指定协议、端口、策略等。如果你没有放通 Web 进程相关的端口也会造成网站无法访问。
1. 登录 云服务器控制台,并在实例列表页面单击实例的 ID/实例名,进入该实例的详情页面。
2. 选择安全组页签,查看绑定的安全组以及对应安全组的出站和入站规则,确认是否放通 Web 进程相关的端口。如下:
·已放通 Web 进程相关的端口,请 检查并排查防火墙设置相关问题。
·未放通 Web 进程相关的端口,请修改安全组设置,放通 Web 进程相关的端口。
五、检查并排查防火墙设置相关问题
iptables 是 Linux 中常用的防火墙软件,可通过直接配置的方式进行设置。
1. 执行以下命令以查看 iptables 的四张表:
iptables -t filter -nvL iptables -t nat -nvL iptables -t mangle -nvL iptables -t raw -nvL
2. 请在表中检查是否有 drop 记录以及具体的 drop 规则。例如,以下案例记录了 IP 地址 8.8.8.8 被 iptables 拦截的情况:
3. 如果发现非预期的拦截,可以手动执行以下类似命令清除掉 iptables 规则:
iptables -D OUTPUT -d 8.8.8.8 -j DROP
4. 除非有特殊需求,建议仅通过安全组对公有云进行访问控制,并关闭内部防火墙。在完全关闭之前,请记得手动执行以下命令进行临时备份,以防意外删除部分规则。
# 备份防火墙命令iptables-save > iptables-save.bak# 内部关闭防火墙命令iptables -t filter -Fiptables -t nat -Fiptables -t raw -Fiptables -t mangle -F
六、检查并排查域名备案和解析相关问题
排查了 服务器相关问题、网络相关问题 和 安全组设置相关问题 后,你可以尝试使用云服务器的公网 IP 进行访问。如果使用 IP 地址可以访问,而使用域名访问失败,则可能是域名备案或者解析相关问题造成网站无法访问。
1. 国家工信部规定,对未取得许可或者未履行备案手续的网站不得从事互联网信息服务,否则就属于违法行为。为不影响网站长久正常运行,如需开办网站,建议你先办理网站备案,待备案成功取得通信管理局下发的 ICP 备案号后,才开通访问。
·如果你的域名没有备案,请先进行 域名备案。
·如果你使用的是腾讯云的域名服务,你可以登录 域名管理控制台 查看相应的域名情况。
·如果你的域名已备案,请执行 步骤2。
2. 参见 解析生效相关,排查解析相关问题。
·如果已解决网站无法访问的问题,则任务完成。
·如果仍无法解决网站无法访问的问题,请通过 在线支持 反馈。