十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用 Atmosphere DNS.mitm 重定向并屏蔽指定服务器

如何用 Atmosphere DNS.mitm 重定向并屏蔽指定服务器 如何用 Atmosphere DNS.mitm 重定向并屏蔽指定服务器【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/AtmosphereSwitch 联网时系统里的应用要把域名解析成 IP 才能发起连接。Atmosphere 的 DNS.mitm 模块从 0.18.0 版本起内置可以接管这个解析过程你想拦的域名会被指向你指定的地址默认就是回环地址 127.0.0.1。本文以屏蔽任天堂遥测服务器为主线带你走完默认规则、自定义配置和日志验证的完整流程。先搞懂DNS 拦截到底拦的是什么把 DNS 想象成一本电话簿应用说我要联系某个域名DNS 负责查出对应的 IP。DNS.mitm 做的事就是在电话簿查询入口加了一道前台——每次查询先到它这里过一遍命中规则就直接给出指定号码不再走正常查询。它拦截的是GetHostByName/GetAddrInfo这两类解析请求。模块本身运行在 ams 的 mitm 框架下源码位于 stratosphere/ams_mitm/source/dns_mitm/你不需要关心实现细节只需要知道它通过一份扩展版 hosts 文件来定义规则。匹配流程很短规则文件只在系统启动时解析一次。不过同名的自研程序可以通过向sfdnsres会话发送扩展 IPC 命令 65000AtmosphereReloadHostsFile触发重新加载改完规则不重启也能生效。Atmosphere 会优先读取哪份 hosts 文件如果你同时存在多份 hosts 文件Atmosphere 按下面的顺序尝试成功读取第一个就停止顺序文件路径适用环境1/atmosphere/hosts/emummc_%04lx.txt%04lx 为 emummc 的 id 号仅 emummc2/atmosphere/hosts/emummc.txt仅 emummc3/atmosphere/hosts/sysmmc.txt仅 sysmmc4/atmosphere/hosts/default.txt通用最后一个default.txt是个保底如果它不存在Atmosphere 会自动创建并写入默认规则。所以大多数情况下你只需要编辑这一个文件。快速上手让屏蔽跑起来要做的只有两件事确认配置开关、准备 hosts 规则。 在 config_templates/system_settings.ini 的[atmosphere]段启用功能模板里默认已按启用给出注释示例[atmosphere] enable_dns_mitm u8!0x1这个开关控制 DNS.mitm 是否工作设为u8!0x0即可整体关闭不需要删除 hosts 文件。然后在你的 hosts 文件里写规则。Atmosphere 自带的默认规则是127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net这里的%是占位符会被替换为nsd!environment_identifier的值生产设备上就是lp1最终等效于屏蔽receive-lp1.dg.srv.nintendo.net和receive-lp1.er.srv.nintendo.net这两个遥测域名。把域名指向127.0.0.1意味着解析结果指向设备自身连接自然无法到达真实服务器。 需要知道的一个默认行为Atmosphere 会把上述内置规则叠加在你自己的 hosts 文件内容之前解析而不是替代它。这样即使你写了自定义文件、系统更新后任天堂换了遥测服务器也不会漏掉。想关掉这个叠加行为在[atmosphere]段设置add_defaults_to_dns_hosts u8!0x0即可。规则怎么写通配符与生效顺序这份 hosts 格式比标准 hosts 多了两个扩展符号*通配符匹配任意个含 0 个字符出现在域名的任何位置都有效%如前所述环境标识符占位符。写规则时最常用的两条心法粗屏蔽用通配想拦一整片域名用127.0.0.1 *.nintendo.net比逐条罗列省事细放行靠顺序当多条规则都能匹配同一个域名时最后一条定义生效。所以你可以先写宽泛的屏蔽规则再在后面追加更具体的规则把它覆盖回去实现默认全拦、个别放行的效果。用日志确认规则真的生效不用猜DNS.mitm 自己会留痕日志都写在/atmosphere/logs/下dns_mitm_startup.log每次启动或规则重载时自动写入记录选中的 hosts 文件和解析出的全部重定向条目。先看这个文件就能确认它到底读了哪份文件、读到了什么规则。dns_mitm_debug.log需要手动开启。在[atmosphere]段设置enable_dns_mitm_debug_log u8!0x1后所有解析请求及发生的重定向都会记录在这里适合定位某个具体域名为什么没被拦。排查顺序建议先读 startup 日志确认文件选择无误再开 debug 日志盯具体请求两步下来基本能覆盖大多数疑问。常见现象与解决办法现象可能原因解决办法配了规则仍连上了目标服务器enable_dns_mitm未启用或 hosts 文件放错了路径确认[atmosphere]段开关为u8!0x1对照前面的优先级表把文件放到正确位置某个不该被拦的域名被拦了通配规则太宽且没有更靠后的具体规则覆盖它在文件末尾追加针对该域名的具体规则最后定义者生效系统更新后遥测服务器变了、自定义文件没跟上关闭了默认规则叠加或自定义文件规则与内置规则冲突保持add_defaults_to_dns_hosts为u8!0x1让内置规则兜底日志目录里找不到 dns_mitm 相关文件debug 日志未开启startup 日志应始终存在请求级记录需设置enable_dns_mitm_debug_log u8!0x1并重启想彻底停用此功能—设置enable_dns_mitm u8!0x0后重启hosts 文件可原样保留 如果规则本身没问题但连接行为怪异可以再回头看一次 startup 日志里的选中文件一行——多数玄学问题最后都归结为它读的不是你以为的那份文件。到这里从开关、规则到日志验证的链路已经完整默认配置足以屏蔽任天堂遥测服务器深度定制则靠通配符与规则顺序。想进一步了解的细节例如完整规则语义可以直接阅读官方文档 docs/features/dns_mitm.md这个模块在 docs/changelog.md 里也有 0.18.0 引入及后续修复的记录升级 Atmosphere 前值得扫一眼。【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表