“云主机不能上网”在运维里很常见,表面看都是访问不了外网,实际原因差别很大。你可能还能正常 SSH 登录,服务进程也在,但业务突然调不了第三方接口、拉不下镜像、软件包更新失败。问题可能在云平台,也可能在系统里,还可能卡在 DNS、NAT、代理或安全策略上。

这种故障最容易卡住的地方,是排查顺序乱了。有人一上来就重启网络服务,有人先改 DNS,还有人直接怀疑第三方平台异常。结果折腾一圈,最后发现只是安全组出方向规则被收紧了。把顺序理顺,定位速度会快很多。
先把“不能上网”说清楚
排查前先分现象。不同现象,对应的方向完全不一样。
- 能解析域名,但访问不了外部 IP 或网站,通常要看路由、出口策略或目标端口。
- 能 ping 公网 IP,不能访问域名,多半是 DNS 异常。
- 公网 IP 和域名都不通,就别先盯着 DNS,先看网络路径。
- 只有部分端口不通,比如 80、443 正常,某些 API 端口失败,要重点查安全组、防火墙、白名单。
- 系统命令能联网,业务程序却报网络错误,问题往往在应用层代理、证书、进程权限或安全软件限制。
先做三个基础测试就够用:ping 公网 IP、ping 域名、curl 外部站点。这三项结果通常能帮你先把问题划到网络、DNS 或端口访问这几个方向里,不至于上来就乱改配置。
第1步:先看云平台侧配置
尤其是新开实例、切换网络、迁移配置之后,云平台控制台比操作系统更值得先看。很多“云主机不能上网”根本不是系统坏了,平台侧没有给出网条件时,系统里改再多也没用。
实例网络是不是接对了
确认云主机挂在哪个 VPC、哪个子网。有些子网就是给内网通信用的,实例能登录,不代表它默认能访问公网。测试环境、生产环境经常做隔离,接错子网后,现象看起来像故障,其实是网络设计本身就不允许出网。
有没有公网访问能力
有的云主机需要绑定弹性公网 IP,有的依赖 NAT 网关统一出网。如果实例本身没有公网 IP,同时也没配 NAT,那云主机不能上网就是预期结果,不算异常。这里要先确认架构,再谈排障。
安全组别只看入方向
不少人习惯盯着入站规则,觉得 SSH 能登录就说明网络没问题。实际上出方向规则一样会拦截访问公网。如果安全组只允许访问内网段,或者“允许全部出站”的规则被删了,外部网站、镜像仓库、第三方接口都会一起受影响。
ACL、云防火墙和边界策略也要过一遍
企业环境里常常不止一层控制。网络 ACL、云防火墙、集中出口策略、跨团队统一调整的边界规则,都可能让云主机不能上网。遇到批量实例同时异常,可以先怀疑这类统一策略,没必要一开始就逐台去改系统。
第2步:检查系统网卡、IP 和路由
平台配置没问题,再往系统里看。最常见的是网卡没起来、IP 丢了、默认路由没了,或者网关、掩码配错。
网卡状态正常吗
先确认网卡是不是 UP,IP 地址在不在,网段对不对。实例重装、克隆、改过网卡配置后,这一步尤其重要。有时问题只是网卡名变了,比如从 eth0 变成 ens33、ens5,原来的配置文件还在,但系统根本没用上。
默认路由在不在
没有默认路由时,服务器通常只能访问本地网段,出不了公网。这类问题在手动改网络配置文件、安装某些安全软件、切换 NetworkManager 管理方式后比较常见。表现往往很干脆:内网通,外网全不通。
网关和掩码别只看一眼
IP、子网掩码、网关,只要一项错了,就可能让云主机不能上网。有些错误不会表现成彻底中断,而是时通时不通,或者某些目标能到、某些目标到不了。这种“偶发性”反而更容易误导人,最好优先核对参数。
第3步:排查 DNS
很多时候大家说云主机不能上网,其实只是 DNS 解析失败。因为浏览器、包管理器、业务程序大多靠域名工作,一旦 DNS 失效,体感上就像整台机器断网了。
判断办法很直接:如果公网 IP 能访问,域名不行,问题大概率就在 DNS。这个时候重点看几处:
/etc/resolv.conf里的 DNS 服务器地址是否可用。- 有没有被自动配置工具覆盖成无效地址。
- 内部 DNS 是否限制了解析外网域名。
- 本机防火墙或安全软件有没有拦截 53 端口请求。
生产环境里最好别只配一个 DNS。单点一出问题,整批业务都会受影响。如果公司用的是自建 DNS 转发,还要顺着检查上游解析器是不是正常,否则你只改本机配置,过一会儿还会复发。
第4步:看系统防火墙和安全软件
云平台允许出网、路由也正常,不代表系统一定能访问外部资源。本机防火墙、加固策略、安全代理一样可能把连接拦下来。这个情况在做过安全加固、装过主机防护软件、跑过批量脚本以后很常见。
- 检查 iptables 或 nftables 有没有默认拒绝出站的规则。
- 看 firewalld 是否加载了限制性策略。
- 确认安全代理、主机防护软件有没有限制进程联网。
- 某些场景下,SELinux 也可能影响服务访问外网。
这里有个很好用的判断:如果系统命令能联网,业务程序不能联网,就别把时间都花在整机网络上,更应该查应用层限制、进程权限和安全策略。
第5步:别漏掉 NAT、代理和统一出口
很多企业云环境会统一走 NAT 网关、代理服务器或固定出口设备。这个架构下,云主机不能上网,问题经常不在主机本身,而在出口链路。
比较常见的情况有几种:NAT 网关配置改了,SNAT 规则失效;代理服务器宕机,而业务程序强依赖 HTTP 代理;出口带宽或连接数打满,被平台限流;第三方接口只允许白名单 IP 访问,但出口地址变了却没同步更新。
如果你所在环境本来就有固定出网架构,排查时要把整条路径一起看。只盯着云主机,很容易误判。
第6步:结合一个常见场景看排查顺序
比如夜间发布后,应用突然拉取不到外部配置文件,日志里全是超时。服务器还能 SSH 登录,CPU、内存看着也正常,团队很容易先怀疑第三方平台异常,或者怀疑应用发布有问题。
这类场景里,顺序很关键。先测公网 IP,如果连 IP 都 ping 不通,就别先改 DNS。再看域名解析,如果也失败,说明范围更大。接着去云平台控制台查安全组、NAT、出方向规则。很多时候,问题就出在近期变更上,比如安全组被批量收紧,只保留了内网访问规则,公网出站被一起挡掉了。
这种故障不复杂,但很耗人。因为一开始方向错了,后面每一步都在制造新变量。
第7步:按这8步查,通常不会漏
- 先确认范围:是整机不能上网,还是只有某个应用不能上网。这个判断决定你查系统,还是查应用层。
- 测试公网 IP、域名和目标端口。能不能到 IP、能不能解析域名、端口能不能连上,三者结果要分开看。
- 检查云平台配置:公网 IP、NAT、安全组、ACL、路由表。新实例或刚做过网络调整时,这一步优先级更高。
- 检查系统网卡、IP、掩码、网关、默认路由。尤其注意网卡名变更和配置文件未生效的情况。
- 核对 DNS 配置与解析结果。确认解析器可用,也要确认没有被自动工具反复覆盖。
- 查看本机防火墙、安全软件和加固策略。系统能联网但应用不通时,这一步往往能找到原因。
- 检查代理、NAT 出口、第三方白名单和限流策略。企业环境里,这类问题比单机故障更常见。
- 回看近期变更记录。谁改过安全组、路由、代理、DNS、网络配置,优先查这些,比盲查快得多。
这份清单不算复杂,但很实用。经验少的团队最怕漏基础项,按顺序走,至少不会在明显不对的方向上浪费时间。
第8步:想少踩坑,就把预防做起来
云主机不能上网反复出现,通常是配置管理太随意。靠人记住每台机器、每条策略、每次变更,迟早会出错。
- 给安全组、ACL、路由表建立变更审批和回滚机制,出问题时能迅速恢复。
- 把网络基线配置做成模板,少手工编辑网卡文件,减少配置漂移。
- 对 DNS、NAT、代理出口做监控和告警,别等业务报错才知道链路断了。
- 给关键业务准备标准化连通性检测脚本,发布前后都能快速验证。
- 发布前做网络健康检查,尤其是依赖外部接口、镜像仓库、包管理源的服务。
如果业务本身很依赖公网访问,那“外网连通性”就该放进日常巡检,而不是等接口超时了再临时救火。排查讲顺序,预防靠流程,这两件事做好,云主机不能上网这类问题处理起来会稳很多。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云小编。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/298732.html