深色模式
DNS 与 CDN
本章你将学到:DNS 是怎么把"网址"翻译成"地址"的;运营商 DNS 和公共 DNS 有什么区别;DNS 缓存、劫持、污染分别是什么、有什么表现;hosts 文件是什么、在哪、被改了会怎样;为什么"能开网页但登录不了"常常和 DNS 有关;CDN 是什么、为什么它决定了下载快慢;以及怎么让用户查看解析结果、怎么换 DNS。
什么时候用得上:登录失败、客户端界面空白、某个功能一直转圈、下载速度远低于带宽、
ping 域名提示"找不到主机"或解析到奇怪地址的时候。
DNS 是什么
大白话:人记名字,电脑用数字地址。你输入 www.example.com,电脑并不知道这是谁,它要先去问一个"电话簿"——DNS 服务器——"这个名字对应的地址是多少",拿到 203.0.113.45 之后才能去连。
每一次联网的第一步都是 DNS 查询。 打开网页、客户端登录、下载游戏文件、连对战服务器(如果用的是域名),无一例外。DNS 出问题,后面所有步骤都没法开始。
大白话
你要去"老王家"吃饭,但导航只认地址不认名字。你先打电话给 114 查"老王家在哪",114 告诉你"XX 路 XX 号",你才能出发。114 打不通、或者 114 告诉你一个错地址,你就到不了老王家——哪怕你的车(带宽)再好、路(延迟)再顺。
解析流程
用大白话说这六步:
- 电脑先看自己有没有记过(本机缓存),以及 hosts 文件里有没有手动写死。
- 没有就问"DNS 服务器"(
ipconfig /all里那一行,通常是路由器地址,路由器再转给运营商)。 - DNS 服务器也不知道的话,一级一级往上问,最终问到这个域名的"主人"(权威服务器)。
- 主人给出地址。
- DNS 服务器把答案记下来(缓存),下次别人问就直接答,同时把答案给电脑。
- 电脑用这个地址去连目标。
这个过程通常只需要几十毫秒。但任何一步出错,用户看到的都是"打不开""连接失败""一直转圈",和真正的"网断了"表现几乎一样。
为什么客服要懂 DNS
因为 DNS 问题的表现极其有欺骗性:
- 用户能开百度、能看视频(这些域名解析正常),但登不上客户端(平台域名解析出错)。用户会坚信"我网络没问题,是你们服务器挂了"。
- DNS 问题往往是"某个域名不通"而不是"全部不通",很难用常识判断。
- DNS 问题的解决方法(换 DNS、清缓存、查 hosts)非常简单,两分钟搞定;但如果没往这个方向想,可能让用户白白重装客户端。
运营商 DNS 与公共 DNS
电脑用哪个 DNS,看 ipconfig /all 里"DNS 服务器"那一行(见 网络基本概念)。默认情况下电脑问路由器、路由器问运营商,用的就是运营商 DNS。
| 运营商 DNS | 公共 DNS | |
|---|---|---|
| 是什么 | 电信 / 联通 / 移动自己的 DNS,路由器默认转给它 | 第三方提供的、任何人都能用的 DNS |
| 优点 | 离你近,解析快;CDN 调度通常最准(它知道你是哪家运营商、在哪) | 稳定、干净,少数运营商 DNS 有劫持插广告的问题时可以绕开 |
| 缺点 | 部分地区的运营商 DNS 会劫持(打错网址跳广告页)、偶尔不稳 | CDN 调度可能不准(它不一定知道你在哪);国外公共 DNS 在国内慢且不稳 |
| 什么时候换 | 怀疑运营商 DNS 有问题时 | 换了公共 DNS 下载变慢时换回来 |
常见公共 DNS:
| 地址 | 提供方 | 备注 |
|---|---|---|
114.114.114.114 | 114 DNS | 国内老牌 |
223.5.5.5 / 223.6.6.6 | 阿里 | 国内常用 |
119.29.29.29 | 腾讯 DNSPod | 国内常用 |
180.76.76.76 | 百度 | 国内 |
8.8.8.8 / 8.8.4.4 | 国外,国内用可能慢、被干扰、CDN 调度差,不推荐作为日常 | |
1.1.1.1 | Cloudflare | 同上 |
建议:排查时用 223.5.5.5 和 119.29.29.29 作为验证 DNS。不要建议国内用户日常用 8.8.8.8。
DNS 缓存与 flushdns
电脑会把查过的结果记一段时间(几分钟到几小时),叫 DNS 缓存。好处是快;坏处是如果记住的是错的(比如刚才劫持了一次、或者服务器换了地址),一段时间内会一直错。
ipconfig /flushdns 就是把这个缓存清空,让电脑重新去问。
让用户怎么做:
- "按 Win + R,输入
cmd,回车,出来黑窗口。" - "输入
ipconfig /flushdns,回车。" - "应该显示一行'已成功刷新 DNS 解析缓存'。然后重新打开客户端试一次。"
预期看到:已成功刷新 DNS 解析缓存。
| 结果 | 说明什么 |
|---|---|
| 显示成功,重试后问题解决 | 之前缓存了错误结果;可以问用户最近有没有开过加速器 / VPN / 换过网络 |
| 显示成功,重试后没变化 | 不是本机缓存问题,继续查 DNS 服务器本身、hosts、代理 |
| 提示"无法刷新 DNS 解析缓存:执行期间,函数出了问题" | DNS Client 服务没运行,见 服务与启动项 |
这个操作无副作用、可逆(缓存会自动重建),可以放心作为第一步。
浏览器也有自己的 DNS 缓存,但客户端登录不经过浏览器,一般不用管。
DNS 劫持与污染
两个词经常混用,客服层面可以这么理解:
- 劫持:DNS 服务器故意给你一个错的地址。典型是某些运营商在你输错网址时跳到广告页,或者路由器被恶意改了 DNS 后所有网站都被塞广告。
- 污染:查询过程中被第三方插入了假答案,导致某些域名解析到根本不相关的地址(或根本解析不出来)。
表现:
| 表现 | 说明 |
|---|---|
| 打开正常网站,莫名跳到广告 / 导航页 | 典型劫持 |
| 输错网址不显示"找不到",而是跳到一个推广页 | 运营商劫持 |
nslookup 平台域名 返回一个和技术给的不一样、看起来奇怪的地址(比如 127.0.0.1、0.0.0.0、或明显不是国内 CDN 的地址) | 污染 / 被 hosts 改写 |
| 浏览器打开客户端相关页面提示"证书错误""连接不是私密连接" | 解析到了别人的服务器,证书对不上 |
| 换成公共 DNS 后问题消失 | 运营商 DNS 有问题 |
| 别的设备(手机连同一 WiFi)也有同样问题 | 路由器 DNS 被改或运营商问题;只有电脑有 → 电脑本机 DNS / hosts 问题 |
路由器 DNS 被改是一种常见但隐蔽的情况:路由器用默认密码,被恶意程序改了 DNS 设置,家里所有设备都被劫持。确认方法:登录路由器管理页看 WAN / 上网设置里的 DNS 是不是奇怪地址。
hosts 文件
是什么:电脑上的一个文本文件,可以手动写"某个域名 = 某个地址"。电脑查 DNS 之前会先看它。它优先级最高——只要 hosts 里写了,DNS 服务器说什么都不算。
位置:C:\Windows\System32\drivers\etc\hosts(没有扩展名)。
正常内容:几乎全是 # 开头的注释行,没有任何生效的条目。少数软件会往里加几行。
谁会改它:
| 谁 | 目的 | 后果 |
|---|---|---|
| 加速器 | 把某些游戏域名指向加速节点 | 加速器关了、卸载了但 hosts 没恢复 → 那些域名指向一个不存在的节点,永远连不上 |
| 某些破解 / 修改软件 | 屏蔽正版验证服务器 | 把相关域名指向 127.0.0.1,登录失败 |
| 恶意软件 | 劫持 | 把安全软件、常用网站指向假地址 |
| 用户自己或"优化"教程 | 屏蔽广告、"加速 Steam" | 教程过期后地址失效,Steam 相关域名打不开 |
| 某些安全软件 | 屏蔽恶意域名 | 一般无害 |
让用户怎么查看(只看):
- "按 Win + R,输入
notepad C:\Windows\System32\drivers\etc\hosts,回车。" - "会打开一个记事本。把整个内容截图给我,内容多的话滚动分几张。"
- "看完直接关掉,如果它问要不要保存,选'不保存'。"
预期看到:一堆 # 开头的灰色说明文字,最下面可能有几行 127.0.0.1 localhost 之类。
| 看到什么 | 说明什么 |
|---|---|
全是 # 开头,或只有 localhost 相关 | 干净,hosts 不是问题 |
有不带 # 的行,且域名和 Steam / 我们平台 / 游戏相关 | 被改过,很可能是残留。记下这些行,升级给技术确认后再处理 |
有大量不带 # 的行,指向 127.0.0.1 或 0.0.0.0 | 屏蔽列表(广告屏蔽或破解软件),看有没有涉及我们的域名 |
| 打不开 / 提示没权限 | 文件被安全软件保护或权限问题;只看的话可以先跳过 |
注意
只让用户看,不要让用户改。 修改 hosts 需要管理员权限,改错一行可能让 Windows 更新、Steam 或其他软件都出问题。发现 hosts 里有可疑条目,先截图升级给技术,由技术判断是否需要删除、删除哪几行。如果技术确认要删,让用户在删之前把整个文件内容截图保存(作为备份),然后只删技术指定的那几行。
禁止
不要让用户删除 hosts 文件本身,也不要让用户按网上教程往 hosts 里"加几行加速"。前者会让某些依赖 localhost 的程序出问题;后者过期后会导致相关服务永久打不开,而且用户自己不知道原因。
为什么"能开网页但登录不了"常和 DNS 有关
用户能开百度,说明百度的域名解析正常、TCP 443 通、有网。这不能证明我们平台的域名解析正常。因为:
- DNS 是按域名分别查的。劫持、污染、hosts 都可以只影响某几个域名。
- 加速器 / VPN 残留经常只改了游戏相关域名的解析。
- 某些运营商 DNS 对特定域名解析异常,对大网站正常。
- 客户端可能同时用到好几个域名(登录、长连接、下载、CDN),其中一个坏了就会表现为"登录后一直转圈""界面空白""能登录但下载不动"。
确认方法:用 nslookup 平台域名 看解析结果对不对(见下文),并对比 nslookup 平台域名 223.5.5.5(指定用公共 DNS 查)的结果。两者一样且正常 → 不是 DNS 问题;不一样 → DNS 问题;都解析不出来 → 可能是域名本身或更上游的问题,升级。
待技术确认
平台客户端用到的域名清单、每个域名正常解析出来的地址范围(是 CDN 地址还是固定 IP),由技术同事提供。没有这份清单时,客服只能判断"能不能解析出来",不能判断"解析出来的对不对"。
CDN 是什么
大白话:几十 GB 的游戏文件如果只放在一个机房,全国用户都从那一个地方下,那条线一定堵死。CDN 的做法是把文件复制到全国各地几十上百个节点,用户下载时被分配到离自己最近、最快的那个节点。
大白话
CDN 像连锁便利店。总仓库在北京,但全国每个城市都有门店备着货,你去楼下门店买就行,不用从北京发货。但如果你被分到了一个很远的门店,或者楼下门店恰好没货要从总仓调(缓存未命中),你就得等。
为什么下载快慢很大程度取决于 CDN:
| CDN 层面的问题 | 表现 | 为什么 |
|---|---|---|
| 被分到远节点 | 测速满,下载慢;换个时间可能又快了 | 调度算法根据你的 DNS 判断你在哪,判断错了就分到远的 |
| 被分到跨运营商节点 | 电信用户被分到联通节点,速度只有几 MB/s,晚高峰更差 | 用了公共 DNS 或错误的 DNS 导致调度不准 |
| 节点缓存未命中 | 新版本刚发布时慢,几小时后正常 | 节点上还没这个文件,要回源取 |
| 节点本身故障 / 过载 | 部分地区用户集体慢,其他地区正常 | 需要技术反馈给 CDN 服务商 |
| 单连接限速 | 无论带宽多大都是固定的几 MB/s | CDN 或客户端的策略 |
DNS 和 CDN 的关系:CDN 的调度是通过 DNS 实现的——你查平台下载域名,CDN 的 DNS 根据"是谁在问"返回离你近的节点地址。所以:
- 换 DNS 会改变 CDN 调度。用运营商 DNS,CDN 知道你是电信用户、在广东,分给你广东电信节点;用
8.8.8.8,CDN 只知道"有个人通过 Google 问",可能分给你一个不合适的节点。 - 这也意味着,下载慢时"换一个 DNS 再试"是一个有效的验证手段——它可能让你被分到另一个节点。快了,说明是节点问题;没变化,说明不是 CDN 调度的锅。
- 反过来,用户为了"上外网"设了国外 DNS,下载慢,改回国内 DNS 往往立竿见影。
用 nslookup 看解析结果
nslookup 是"手动查一次电话簿"的命令。详细读法见 网络排查工具,这里讲和 DNS 排查直接相关的用法。
让用户怎么做:
- 打开黑窗口(Win + R →
cmd→ 回车)。 - 输入
nslookup 域名(比如nslookup www.baidu.com),回车,截图。 - 再输入
nslookup 域名 223.5.5.5(用阿里 DNS 查同一个域名),回车,截图。
预期看到:
服务器: UnKnown
Address: 192.168.1.1
非权威应答:
名称: www.a.shifen.com
Addresses: 110.242.68.4
110.242.68.3
Aliases: www.baidu.com- 前两行"服务器 / Address"是用哪个 DNS 查的(这里是路由器)。
- "名称 / Addresses"是查到的结果。
- "非权威应答"是正常字样,意思是"这是缓存的答案",不是错误。
| 看到什么 | 说明什么 |
|---|---|
| 两次查询结果一致,地址看起来合理 | DNS 解析正常,问题不在 DNS |
默认 DNS 查出来的地址和 223.5.5.5 查出来的差很多,而且默认那个奇怪 | 默认 DNS 有问题(劫持 / 污染 / 路由器 DNS 被改),换 DNS 验证 |
| 默认 DNS 提示"DNS request timed out"或"服务器超时" | DNS 服务器不响应,本地 DNS 链路有问题 |
| 提示"Non-existent domain"或"找不到 xxx" | 域名不存在(拼错了)或被污染为不存在 |
结果是 127.0.0.1、0.0.0.0 | 被 hosts 或本地软件屏蔽 |
| 两个 DNS 都解析不出来,但百度能解析 | 这个域名本身有问题,升级 |
nslookup 直接问 DNS 服务器,不看 hosts。所以"nslookup 正常但 ping 域名 解析到奇怪地址"= hosts 被改。这是个很有用的对照。
怎么换 DNS
换 DNS 是"验证是否是 DNS 问题"的标准手段,也是解决运营商 DNS 劫持的方法。它是可逆的,但一定要先记录原设置。
注意
改之前必须让用户把当前设置截图。原设置绝大多数是"自动获得",但也有用户或前一位维修人员手动填过。不记录就改,用户日后出问题你也不知道怎么还原。改完如果没解决问题,改回去。
让用户怎么做(Win10 / Win11 通用,经典界面):
- "按 Win + R,输入
ncpa.cpl,回车。" - "会出来几个网络图标。找到正在用的那个——有线叫'以太网',WiFi 叫'WLAN'或'Wi-Fi',图标上没有红叉的那个。右键点它,选'属性'。"
- "弹出一个列表,找到'Internet 协议版本 4 (TCP/IPv4)'这一行,双击它。"
- "先把这个窗口截图发给我。"
- "下半部分,点选'使用下面的 DNS 服务器地址'。"
- "'首选 DNS 服务器'填
223.5.5.5,'备用 DNS 服务器'填119.29.29.29。" - "点'确定',再点'确定'。然后按 Win + R,输入
cmd,回车,输入ipconfig /flushdns,回车。" - "重新打开客户端试一次。"
预期看到:第 4 步的截图里,多数用户是"自动获得 DNS 服务器地址"被选中。
| 第 4 步截图里看到什么 | 说明什么 |
|---|---|
| 自动获得 IP 地址 + 自动获得 DNS | 默认状态,正常 |
| 自动获得 IP,但手动填了 DNS,地址是国内公共 DNS | 用户或别人改过,一般无害;如果是 8.8.8.8 建议改成国内 |
| 手动填了 DNS,地址很奇怪 | 可疑,记下来,可能是加速器 / 恶意软件改的 |
| 手动填了 IP 地址("使用下面的 IP 地址") | 固定 IP 配置,改 DNS 前问用户为什么设固定 IP,别碰 IP 部分 |
改完之后的结果:
| 结果 | 说明什么 |
|---|---|
| 问题解决 | 原 DNS 有问题;可以保留新设置,并建议用户检查路由器 DNS 设置 |
| 下载变快 / 变慢 | CDN 调度变了;变慢就改回去 |
| 没变化 | 不是 DNS 问题,改回原设置,继续查代理、hosts、防火墙 |
改回去的方法:同样步骤到第 4 步,点选"自动获得 DNS 服务器地址"(或按截图填回原值),确定。
展开:Win11 新版设置里改 DNS
Win11 也可以在 设置 → 网络和 Internet → 以太网(或 WLAN → 当前网络的属性)→ "DNS 服务器分配" 旁边点"编辑" → 改成"手动" → 打开 IPv4 → 填首选和备用。但这个路径在不同版本里位置略有变化,ncpa.cpl 的经典界面所有版本都一样,建议统一用它。
展开:路由器上的 DNS
如果家里所有设备都有 DNS 问题,改电脑没用,要在路由器上改。路由器管理页地址就是 ipconfig 里的默认网关,登录后在"上网设置 / WAN 设置 / 互联网"里找 DNS。但路由器界面千差万别,客服一般只提示用户"登录路由器看看 DNS 是不是被改成奇怪的地址",不逐步指导。
对排查意味着什么
DNS 排查的通用顺序:
ping 平台域名:看能不能解析出地址、解析到什么地址。"找不到主机"= 解析失败;解析到奇怪地址 = 劫持 / hosts。ipconfig /flushdns:清缓存重试。无副作用,秒级。nslookup 域名对比nslookup 域名 223.5.5.5:判断是不是当前 DNS 服务器的问题。- 看 hosts:
nslookup正常但ping解析异常 → hosts。 - 换 DNS:作为验证手段,改前截图,无效改回。
- 手机连同一 WiFi 是否也有问题:有 → 路由器 / 运营商层面;无 → 电脑本机。
这套顺序主要用在 登录与连接问题;CDN 相关的判断用在 下载问题排查。相关的故障模式汇总见 常见网络故障模式。
常见误区
- "能开网页所以 DNS 没问题。" DNS 是按域名分别查的,百度正常不代表平台域名正常。
- "换 DNS 能提速。" DNS 只影响"查地址"这一步和 CDN 调度。它可能让下载变快(换了节点),但不改变带宽和对战延迟。
- "用
8.8.8.8最稳。" 国内用户用 Google DNS 通常更慢、CDN 调度更差。 - "
nslookup正常就排除了 DNS 相关问题。"nslookup不看 hosts,要再对比ping的解析结果。 - "hosts 里有几行不认识的直接删了。" 先截图升级,由技术判断。删错影响别的软件。
- "改了 DNS 没用就放着不管。" 一次只改一个变量,无效要改回去。
- "下载慢肯定是服务器问题。" CDN 节点分配和用户的 DNS、运营商、地区有关,同一时刻别的用户可能很快。
自检问题
- 用生活比喻解释 DNS 是什么,以及为什么"每一次联网的第一步都是 DNS"。
- 用户说"百度能开,就是你们客户端登不上",为什么这不能排除 DNS 问题?你会让他做什么来确认?
ipconfig /flushdns做了什么?有什么副作用?什么时候用?- hosts 文件在哪?让用户怎么查看?看到什么算可疑?为什么不能让用户自己改?
- 为什么换 DNS 会影响下载速度?国内用户为什么不建议日常用
8.8.8.8? - 写出让小白用户换 DNS 的完整步骤,包括改之前必须做的一件事。
nslookup 域名结果正常,但ping 域名解析到127.0.0.1,说明什么?