Atmosphere DNS 重定向:3 步屏蔽任天堂遥测服务器的完整教程
【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere
你的 Switch 连着 WiFi,却没登录任何账号,后台也在定期往任天堂服务器发数据。这些看不见的遥测请求,可以在解析环节就被掐断。Atmosphere 的 DNS 重定向功能(0.18.0 及以后版本)把目标域名指到本机地址,连接自然建立不起来。下面按实际操作顺序讲一遍:从写 hosts 文件,到确认屏蔽真的生效。
🔍 为什么需要挡住这些请求
不登录账号,Switch 也会定期上报设备与使用情况。 这些遥测请求发往receive-*.dg.srv.nintendo.net一类的域名。 系统设置里并没有开关能关掉它们,需要外部机制介入。 Atmosphere 从 0.18.0 起内置了这个机制,而且默认就是开启的。
它自带的默认规则只有两行:
# Nintendo telemetry servers 127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net127.0.0.1是回环地址,意思是"本机自己"。 把域名指过去,相当于撕掉门牌改贴"此路不通",连接会立刻失败。
💡 DNS 重定向:一句话讲清它是什么
DNS 重定向做的事是:程序查询域名时(DNS 解析,就是把域名翻译成 IP 的过程),由 Atmosphere 拦截并改写结果。 匹配上规则的域名,会被指到你指定的 IP;没匹配的,照常解析。
用它你可以:
- 不改任何系统设置,直接拦住遥测请求
- 用一个通配符批量屏蔽一整族域名
- 出厂就带内置默认规则,不用配置也能挡遥测
- 开调试日志,逐条看到哪些请求被重定向了
⚙️ 动手前,先弄懂这套拦截机制
白话版机制,五句话:
- 开机时,Atmosphere 读取一次 hosts 文件,之后每次解析都按它匹配
*是通配符,代表任意一串字符%代替设备的环境标识,真机上恒为lp1- 同一条域名被多条规则匹配时,后写的规则生效
- 内置默认规则相当于"拼在你的文件最前面",所以你的规则天然能覆盖它
✍️ 配 hosts 文件的完整流程
先确认 Atmosphere 会读哪个文件
Atmosphere 按下面的顺序查找,找到第一个存在的文件就停:
| 优先级 | 场景 | 文件路径 |
|---|---|---|
| 1 | emummc | /atmosphere/hosts/emummc_%04lx.txt(按 emummc 编号命名) |
| 2 | emummc | /atmosphere/hosts/emummc.txt |
| 3 | sysmmc | /atmosphere/hosts/sysmmc.txt |
| 4 | 默认 | /atmosphere/hosts/default.txt |
如果default.txt不存在,Atmosphere 会自动创建一个并写入默认规则。 所以最省事的起点,就是直接编辑default.txt。
把规则写进 hosts 文件
语法很简单:一行 =IP+ 一个或多个域名,空格分隔。 想让某个域名"失联",就把它指到127.0.0.1:
127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net 127.0.0.1 *.your-game-server.com注意后写的规则优先,所以规则顺序直接决定最终结果。
打开调试日志(可选)
把system_settings.ini放到 SD 卡根目录,可参考仓库里的模板 config_templates/system_settings.ini:
[atmosphere] enable_dns_mitm = u8!0x1 add_defaults_to_dns_hosts = u8!0x1 enable_dns_mitm_debug_log = u8!0x1enable_dns_mitm:功能总开关,默认开启add_defaults_to_dns_hosts:在你自定义规则之外,继续保留内置默认规则enable_dns_mitm_debug_log:把每次解析请求都记到 SD 卡日志里
✅ 如何确认屏蔽已经生效
三条检查,各看一处:
- 重启后打开
/atmosphere/logs/dns_mitm_startup.log:能看到选中了哪个 hosts 文件、解析出的全部重定向 - 开启调试日志后打开
/atmosphere/logs/dns_mitm_debug.log:每次 GetHostByName 请求和每次重定向都有记录 - 系统设置里联网测试显示已连接(基础网络不受影响),但需要访问任天堂服务器的操作(如账户验证)会失败
🚀 进阶:选择性屏蔽与例外放行
场景一:整族域名一起挡。一个通配符就够:127.0.0.1 *.nintendo.net。
场景二:先大范围屏蔽,再放行个别域名。利用后写的规则优先,先写屏蔽,再写例外:
127.0.0.1 *.nintendo.net 0.0.0.0 api.accounts.nintendo.net场景三:只挡遥测,其余放行。保持默认行为即可,且把add_defaults_to_dns_hosts打开。 这样系统更新后即使遥测域名变了,内置规则也会自动跟上。
还有个省事技巧:自制软件可以向sfdnsres会话发送 IPC 命令 65000(AtmosphereReloadHostsFile),让 Atmosphere 重新解析 hosts 文件,不用重启。
⚠️ 避坑清单:现象、原因与解法
现象:配完规则,任天堂服务器照样能连上。原因:enable_dns_mitm被设成了 0(功能关闭),或者你编辑了 Atmosphere 不会读的文件。 解法:核对system_settings.ini里的取值,再看dns_mitm_startup.log确认实际加载的是哪个文件。
现象:想临时关掉,删掉 hosts 文件却没反应。原因:功能默认开启,删文件并不会停掉内置的默认规则。 解法:设置enable_dns_mitm = u8!0x0后重启即可,hosts 文件可以原封不动。
现象:自己写的规则好像没生效。原因:同一条域名被多条规则匹配,后写的规则把你那条顶掉了。 解法:把想生效的规则挪到文件末尾,或者把匹配写得更精确。
现象:系统更新后,遥测又冒出来了。原因:任天堂换了遥测服务器域名,你手写的旧文件里没有新条目。 解法:保持add_defaults_to_dns_hosts开启,让内置规则替你覆盖新域名。
写在最后
hosts 文件决定域名指到哪,配置文件决定跑不跑,日志文件告诉你结果。 理清这三样,Atmosphere 的 DNS 重定向就完全在你手里了。 更多细节见官方功能文档 docs/features/dns_mitm.md 与更新日志 docs/changelog.md。
【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考