用 curl 排查云主机连通性:从本机到公网的五步清单
【摘要】 刚拿到一台 ECS / Flexus,最常遇到的不是业务代码问题,而是「连不上」:SSH 超时、页面空白、健康检查失败。先别改安全组乱开端口,按下面五步,几分钟就能定位卡在哪一层。 1. 先确认实例本身活着在控制台看实例状态是否「运行中」,再看「弹性公网 IP」是否已绑定。没有公网 IP 时,外网当然访问不到;只有私网 IP 时,要用跳板机或 VPN。在机器里执行:hostname -Iip...
刚拿到一台 ECS / Flexus,最常遇到的不是业务代码问题,而是「连不上」:SSH 超时、页面空白、健康检查失败。先别改安全组乱开端口,按下面五步,几分钟就能定位卡在哪一层。
1. 先确认实例本身活着
在控制台看实例状态是否「运行中」,再看「弹性公网 IP」是否已绑定。没有公网 IP 时,外网当然访问不到;只有私网 IP 时,要用跳板机或 VPN。
在机器里执行:
hostname -I
ip -br a
uptime
能看到网卡地址、系统负载正常,说明操作系统层是活的。
2. 本机环回:服务有没有在听
在云主机本机测:
ss -tlnp | head
curl -sI http://127.0.0.1:80
curl -sI http://127.0.0.1:8080
ss没有对应端口:进程没起来,或绑定错了地址(只绑了别的网卡)。- 本机
curl失败:先看服务日志,别急着改安全组。 - 本机通、外网不通:多半是安全组 / 本机防火墙 / 只绑了 127.0.0.1。
Web 服务建议显式监听 0.0.0.0,不要默认以为「开了就对外」。
3. 安全组与本机防火墙分开看
华为云安全组是「云侧门禁」,firewalld / iptables / ufw 是「系统门禁」。两边都要放行。
检查思路:
- 控制台安全组入方向:放行业务端口(如 22、80、443),源地址按需要收紧。
- 本机:
sudo iptables -L -n | head
# 或
sudo ufw status
常见坑:安全组开了 80,但本机 firewalld 默认丢弃;或只开了 IPv4、忘了 IPv6。
4. 从外网用 curl 看真实响应
在你自己的笔记本或另一台机器:
curl -sI --connect-timeout 5 http://<公网IP>/
curl -sv --connect-timeout 5 http://<公网IP>/ -o /dev/null
关注三点:
- 连接超时:路由/安全组/实例未运行。
- 连接重置或空响应:服务崩溃或中间设备干扰。
- HTTP 状态码:
200/301/302说明链路通;502/503说明到了反代但上游挂了。
带路径验证时写全:
curl -sI http://<公网IP>/hc-activity/index.html
5. DNS 与 HTTPS 另算一层
域名访问失败、IP 却正常时,先查解析:
dig +short your.example.com
curl -sI https://your.example.com/
证书过期、SNI 配错、只监听 80 却用 https 访问,都会表现为「浏览器打不开」,但 curl -v 会把握手错误打出来。
一张速查表
| 现象 | 优先查 |
|---|---|
| SSH 超时 | 实例状态、公网 IP、22 端口安全组 |
| 本机 curl 通、外网不通 | 安全组、本机防火墙、监听地址 |
| 外网通但业务 5xx | 应用日志、上游依赖、磁盘满 |
| 域名不通、IP 通 | DNS、证书、HTTP/HTTPS 端口 |
今日小结
- 由内向外:实例 → 本机端口 → 安全组/防火墙 → 外网 curl。
curl -sI和ss -tlnp比盲目改配置更省时间。- 安全组与系统防火墙是两道门,只开一道不够。
- 域名和证书问题单独排查,别和「端口不通」混在一起。
下次上线新服务,先在本机 curl 通,再放开安全组,最后用外网 curl -sI 验收——养成这个顺序,排障会稳很多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)