国行 Switch 停服之后,如何联网
5 月 15 日 22:00 之后,我那台国行 Switch 就没再连上过网。
设置里的「互联网」挂着一个红叉,点任何联网相关的东西都会弹「需要连接互联网」。卡带照玩,存档都在,可每次开机都要先看一眼那个红叉。
5 个多月后我受不了了,决定搞清楚它到底在判断什么。

一、先说结论
这个工具只做一件事:在局域网里伪造连接自检的响应,让主机不再误判自己断网。
它不复活已经关掉的服务。
| 能 | 说明 |
|---|---|
| ✅ 消除「互联网:未连接」红叉 | 3 格自检全部通过 |
| ✅ 消除「需要连接互联网」类弹窗 | 部分游戏的前置联网检查会放行 |
| ✅ 记录主机在找哪些服务 | 便于确认边界 |
| ❌ 恢复 eShop | 服务端已下线,无内容可取 |
| ❌ 下载游戏更新、补丁 | 更新通道同样绑在已注销的域名上 |
| ❌ 在线联机、排行榜 | 服务器不存在 |
| ❌ 云存档 | 国行从未提供过 |
那 4 个 ❌ 与保守无关,物理上就做不到。原因在第五节。
二、我先搭了个透明的观察窗
不用破解,不改固件。在 PC 上起一个 HTTP 代理,把主机的 Wi-Fi 设置里的代理指过去。
连接自检走的是明文 HTTP,所以代理能直接看到目标域名,也能直接伪造响应。这里连证书都不用装。
一个对照值得记住:如果自检走的是 HTTPS,这条观察窗就完全不存在。零售机装不了根证书,任何本地中间人都过不了主机的校验。
整个方案只能停在明文这一层,边界是协议本身划的。
三、答案比想象中小得多
主机向 http://ctest.cdn.n.nintendoswitch.cn/ 发一个 GET,它只认 4 项:
HTTP/1.1 200 OK
Content-Type: text/plain
X-Organization: Nintendo
Content-Length: 2
ok
状态码 200,响应体恰好是 ok 这 2 个字节、不带换行,Content-Type 是 text/plain 且不能带 ; charset=...,最后一个 X-Organization: Nintendo。
第 4 项最容易漏,漏了也不会立刻失败。主机每 3 秒重试一次,一直重试下去。
ctest.cn 伪造 200,缺 X-Organization
ctest.cn 伪造 200,缺 X-Organization
ctest.cn 伪造 200,缺 X-Organization
我第一次跑就漏了这项,日志里 60 多次重试的间隔稳定在 3 秒。补上这一行,重试立刻停,自检转绿。
一个响应头字段决定一台主机的判断,听着脆弱。但对用户来说它只是「网连上了」,对主机来说这就是全部证据。
伪造的只是这一小段。主机拿到 200 之后会立刻往深处走,那里是我伪造不了的地方:
四、主机在找谁
连接测试、软件更新、系统更新,3 种触发方式都跑了一遍。主机发出的请求一共 6 条:
| 目标 | 用途 | 现状 |
|---|---|---|
ctest.cdn.n.nintendoswitch.cn:80 |
连接自检(明文) | 域名已注销,可伪造 |
api.hac.lp1.ctest.srv...cn:443 |
自检第二轮校验 | 域名已注销 |
sun.hac.lp1.d4c...cn:443 |
系统更新元数据 | 域名已注销 |
aqua.hac.lp1.d4c...cn:443 |
更新必须性判定 | 域名已注销 |
Service-status-lp1.cdn...cn:443 |
服务状态查询 | 域名已注销 |
dauth-lp1.ndas.srv...cn:443 |
设备与账号认证 | 域名已注销 |
关键一条:全程没有出现任何 *.nintendo.net 请求。
任天堂全球 CDN 在境内解析正常,但国行主机从不向它们发请求。它整条链路都指向腾讯自建的服务,而那些服务 5 月 15 日就关了。
这个观察直接堵死一条流传很广的路:把流量改道到全球服务器。主机压根不知道那些地址。
五、撞墙:362 毫秒和 24 个字节
自检通过后,主机会紧接着去 dauth-lp1.ndas.srv.n.nintendoswitch.cn:443 做设备认证。这一步是 HTTPS。
有人会问:那把 .cn 域名指到任天堂的全球节点,不就行了?
这个实验我真做过。在 PC 上起透明转发,把 sun.hac.lp1.d4c.n.nintendoswitch.cn:443 映射成 sun.hac.lp1.d4c.nintendo.net:443,TCP 直连任天堂真实节点,不做任何 TLS 中间人。主机看到的就是任天堂服务器原样吐出来的字节。
517B 主机发 ClientHello,SNI=cn
2769B 服务器回 证书整趟,慢 4.2 秒
24B 主机发 AppData,362 毫秒后
连接关闭
24 字节是判据。
TLS 1.3 的记录格式是 5B 头 + AEAD(内容 + 1B 类型) + 16B tag:
| 主机若在发什么 | 算式 | 长度 |
|---|---|---|
| 加密 Alert(证书被拒) | 5 + 1 + 1 + 1 + 16 | 24 |
| Finished(握手第 1 步) | 5 + 32 + 1 + 16 | 54 |
| Finished 加 HTTP 请求 | 54 加 300 以上 | 350+ |
实测上行 541 字节,正好是 517 加 24。服务器回的 2769 字节是证书那一整趟。
结论写得出来:主机完整收到了证书,用 362 毫秒校验完,判定不受信任,发一个加密的告警就断开。它没发过 Finished,更没发过 HTTP 请求。
那 2769 字节里装的是什么?拿同一个 .cn 的 SNI 直连该节点,取到的证书是 Akamai 的兜底证书,SAN 全是 *.akamaihd-staging.net 这类。任天堂节点按 SNI 找不到 .cn 的证书,回落成一张与请求主机名完全无关的证书。
地址能换,证书换不了。任天堂 CDN 的证书由自家私有 CA 签发,根证书只内置在主机固件里。公网证书、自签证书、本地中间人,主机一律不认。
到这一步我把 4 层全试了一遍:
| 层 | 需要什么 | 结果 |
|---|---|---|
| 区域标志 | 固件切到全球分支 | 锁死「中国大陆」,界面灰色不可改 |
| DNS | *.nintendoswitch.cn 可解析 |
记录已清空,任意子域返回 NXDOMAIN |
| TLS | 目标持有国行域名的有效证书 | 节点证书 SAN 只有 *.cdn.nintendo.net |
| 内容 | 国行签名的系统包 | 海外包与国行包不可混用 |
4 层没有一层能在局域网内绕过去。
六、那个「升到 23」的传说
国行停在 19.0.2,2026 年 1 月发布的最后一版。海外现在是 23.0.1,10 月 1 日发的。
中间隔了 4 个大版本。
网上有不少教程说国行能升到 23。我挑了 2 篇流传最广的读了原文,结论是它们全是破解机操作,第一步是改固件里的区域标志,与换服务器地址无关。
原文写得很直白:「国行机器需要先转换为国际版之后再升级,不然会成砖」。另一篇给的窗口是 19.0.1,与我这台同版本。
所以「他能升」不等于「换地址能升」。
判断一张教程真假,看有没有这 5 个特征,出现任一项就是破解路线:
| 出现 | 意味着 |
|---|---|
| 大气层 / Atmosphere / hekate / fusee | 自定义固件 |
| emuMMC / SysNAND / 备份 NAND | 承认有变砖风险 |
| Tencent-switcher / 转区 / 全球版本 | 改的是区域标志 |
| 「离线固件包」「整合包」 | 系统包来自非官方来源 |
| 「先转区再升级」 | 与官方通道无关 |
区域标志为什么动不了?Switch 的 CDN 地址是 {server}.hac.{env}.{serverset}.{host},host 二选一:nintendo.net 或 n.nintendoswitch.cn。
国行机的区域固定在中国大陆,这个分支是编译进系统的。改 DNS 改不了主机要拼的字符串。
还有个副作用值得提一句。要求最低系统 20.0 的海外卡带,在国行机上跑不起来。卡带里确实带着 20.0 的系统包,可两边的包互不通用,插卡只会提示「需要更新主机」然后失败。
七、4 条路,代价不对称
| 路径 | 成本 | 得到 | 失去 |
|---|---|---|---|
| 就地当单机 | 0 | 卡带、已下载数字版、本地联机全在 | 线上功能永久缺失 |
| 二手海外版 OLED | 千元级 | 23.x、eShop、联机、云存档 | 数字版需重买,卡带通用 |
| Switch 2 | 三千元级 | 同上加新作 | 同上 |
| 破解加转区 | 违法、失保、变砖无官方修复 | 23.x、能跑新作 | 机内已下载的国行数字版可能全部失效,而且永久无法重下 |
这张表里最想说的一句是:代价不对称。
赌掉的是「已经无法重新获取」的资产,换来的是「能玩更新的卡带」。前者不可逆,后者有更便宜的替代方案。
收尾
这个工具 600 行,纯标准库,38 个测试。代码在 GitHub 上,仓库名 switch-net-fix。
Github: https://github.com/chengjungao/switch-net-fix
无法访问GitHub的国内用户点击:https://gitee.com/chengjungao/switch-net-fix
它做的事只有一件:在局域网里回一个几十字节的响应,让主机别再把「服务没了」当成「网线没插」。
我的 Switch 现在 3 格全绿,卡带照玩。eShop 是不会回来了,联机也不会。
但每次开机,不用再看那个红叉。
