Atmosphère DNS.mitm:Switch 上基于 hosts 的 DNS 请求重定向与遥测屏蔽
Atmosphère DNS.mitmSwitch 上基于 hosts 的 DNS 请求重定向与遥测屏蔽【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/AtmosphereAtmosphère DNS.mitm 是 Nintendo Switch 定制固件 Atmosphère 内置的 DNS 请求重定向机制通过 SD 卡上的 hosts 文件把任意域名指向指定 IP并默认屏蔽官方遥测上报域名在 DNS 层面切断遥测数据。为什么需要它你发现某个域名必须屏蔽或者想把某个域名指到本地 IP。Switch 系统里基本没有系统级的手段通常只能去折腾路由器。但多数玩家并不控制路由器路由器也没法按 emummc 环境做不同处理。改起来麻烦影响面还大。DNS.mitm 解决的就是这个缺口。它在系统内部做 DNS 重定向SD 卡上一个文本文件就能完成 hosts 屏蔽、遥测拦截和本地重定向。不用动路由器且规则对全系统进程生效。该特性自 0.18.0 起可用属于 ams_mitm 模块的一部分。ams_mitm 是 Atmosphère 里的一组系统服务代理模块DNS.mitm 是其中的 DNS 成员。它到底做了什么机制速览先说 MITM 代理是什么。直白点它站在客户端和服务器中间替客户端收请求替服务器回响应客户端全程无感知。DNS.mitm 顶替的就是系统 DNS 解析服务 sfdnsres。sfdnsres 是 Switch 官方的域名解析服务任何进程发起的 gethostbyname、getaddrinfo 调用把域名翻成 IP 的两个函数都会先经过它。核心链路分三步环节干什么接管环节顶替 sfdnsres 服务系统里所有域名解析请求都先过它匹配环节拿请求的主机名去 hosts 文件生成的重定向规则表里逐条匹配应答命中直接伪造一个解析成功的响应返回规则里配置的 IP不查外网应答未命中把请求原样转发给真实的 sfdnsres行为跟没开 DNS.mitm 一样默认规则把官方遥测域名指向 127.0.0.1。这是回环地址也就是机器自己连它必失败遥测上报自然被掐断。两个行为边界需要记牢规则对全系统进程生效包括系统服务、游戏和 homebrew没有白名单hosts 文件只在开机时解析一次运行期间改文件不会自动加载。把 hosts 跑起来配置实战文件放哪hosts 文件选择顺序文件都放在/atmosphere/hosts/目录下对应 SD 卡根目录的 atmosphere/hosts 文件夹。Atmosphère 按顺序尝试读到第一个存在的就停优先级文件适用条件1emummc_%04x.txtemummc id 的 4 位小写十六进制如 emummc_0001.txt仅 emummc2emummc.txt仅 emummc3sysmmc.txt仅 sysmmc4default.txt兜底任何环境文档里第一条写作 emummc_%04lx.txt源码实际格式串是 %04x以 4 位小写十六进制输出。emummc id 来自 emummc.ini 配置。default.txt 不存在时首次启动会自动创建它并写入默认规则。你不用手动建。怎么写最小可用 hosts格式就是经典 hosts一个 IP 后跟一个或多个主机名。改这里在 SD:/atmosphere/hosts/default.txt 新建# 一个 IP 后面可跟多个主机名空格分隔 127.0.0.1 ads.example.com track.example.com 10.0.0.5 my.local.server第一行屏蔽两个域名第二行把本地服务域名指到内网 IP。指向 127.0.0.1 意味着连接必然失败是常用屏蔽手法。默认规则怎么叠加除你的文件外还会额外先解析一份默认规则。效果等价于把默认规则拼在你的文件之前# Nintendo telemetry servers 127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net这是有意设计。系统更新换掉遥测域名、而你的文件没跟上时默认规则还能兜住新域名把遥测风险降到最低。配合后定义覆盖先定义的优先级你自己的文件也能覆盖默认规则对同一域名的设置。优先级细节下一节讲。改动后如何生效只有两条路重启系统开机会重新解析文件homebrew 向已连接的 sfdnsres 会话发扩展 IPC 命令 65000AtmosphereReloadHostsFile触发重解析。IPC 是进程间通信机制。65000 是 Atmosphère 私有扩展命令普通解析调用不会触发它。homebrew 不发这条命令时重启是唯一办法。语法与优先级进阶两个扩展语法hosts 文件在标准格式上多了两个扩展语法写法匹配效果**.example.com匹配 a.example.com、b.c.example.com任意位置匹配 0 个或多个任意字符%receive-%.dg.srv.nintendo.net解析时展开为系统环境标识 nsd!environment_identifier量产机恒为 lp1等价于 receive-lp1.dg.srv.nintendo.net通配匹配用的是经典 wildcardcmp 算法逐字符比较遇到不匹配回溯。实现在stratosphere/ams_mitm/source/dns_mitm/dnsmitm_host_redirection.cpp#L27-L65。% 占位符在解析时从系统设置读取环境标识词法阶段直接替换。量产机常量 lp1 定义在libraries/libstratosphere/include/stratosphere/nsd/nsd_types.hpp#L34非量产环境可能是 dd1以实际机器为准。覆盖优先级后定义者赢同一文件里多条规则匹配同一域名时后定义的那条赢。实现有个小技巧AddRedirection 先把同名主机名的旧规则删掉再把新规则插到列表头部。查询从列表头开始匹配命中即返回。后定义的规则天然排在头部天然优先。默认规则先解析你的文件内容后解析。所以同一域名你的自定义设置总能覆盖默认值。三条硬限制仅 IPv4。重定向结果统一构造为 IPv4 地址调用方显式要求 IPv6 时直接触发断言系统会崩。文件里别写 IPv6。32 KiB 上限。hosts 文件大小达到 0x8000 字节会拒绝解析并断言。全系统生效。ResolverImpl::ShouldMitm 对所有客户端进程返回 true规则作用于每个进程。接口声明见stratosphere/ams_mitm/source/dns_mitm/dnsmitm_resolver_impl.hpp。出了问题怎么查排障现象原因解法改了 hosts 文件不生效文件只在开机时解析一次重启或让 homebrew 发 IPC 65000emummc 专用文件没被识别文件名必须是 4 位小写十六进制 emummc idemummc_%04x.txt重命名或改用 emummc.txt某进程解析域名时系统崩溃重定向只支持 IPv4请求强制 IPv6 触发断言排查文件条目与该程序的解析方式整行规则被静默忽略行首不是数字IPv4 首位的行当注释丢弃注释单独成行规则行必须以 IP 开头文件无法解析超过 32 KiB0x8000大小上限精简或拆分文件不知道启动选了哪个文件没看启动日志查看 /atmosphere/logs/dns_mitm_startup.log启动日志默认生成无需任何配置。它记录选择过程选中了哪个文件、跳过了哪些、是否追加默认规则、最终规则列表主机名 - IP。文件每次开机删除重建只保留当次结果。想看每一次请求需要打开 DNS 调试日志。把这一行加进 system_settings.ini 的 [atmosphere] 段enable_dns_mitm_debug_log u8!0x1之后每次 GetHostByName/GetAddrInfo 请求和命中的重定向都会追加写入 /atmosphere/logs/dns_mitm_debug.log。行形如[0000000000000000]: Redirecting host.example.com to 127.0.0.1括号里是发起进程的程序 id方便查哪个进程在解析什么域名。写入逻辑见stratosphere/ams_mitm/source/dns_mitm/dnsmitm_debug.cpp。一页速查三个配置项都在system_settings.ini的 [atmosphere] 段配置项默认值作用enable_dns_mitmu8!0x1总开关置 0 完全禁用 DNS.mitm含遥测屏蔽add_defaults_to_dns_hostsu8!0x1是否在自定义 hosts 之外追加默认遥测屏蔽规则enable_dns_mitm_debug_logu8!0x0是否把每次 DNS 请求与命中写入调试日志⚠️ 表中默认值以配置模板注释为准配置项缺省时源码按禁用处理以实际版本为准。想行为稳定建议三项都显式写出。三条一句话提醒默认规则永远排在你的自定义规则前面所以自定义规则可以覆盖同一域名的默认设置。hosts 文件只在开机解析一次改完必须重启或发 IPC 65000 才生效。重定向只支持 IPv4请求强制 IPv6 会触发断言文件里别写 IPv6。参考资料核心实现stratosphere/ams_mitm/source/dns_mitm/dnsmitm_module.cpp模块入口、线程模型、总开关检查stratosphere/ams_mitm/source/dns_mitm/dnsmitm_host_redirection.cpphosts 解析、通配匹配、文件选择、默认规则生成stratosphere/ams_mitm/source/dns_mitm/dnsmitm_resolver_impl.cpp请求拦截、命中直返与未命中转发、IPC 65000 实现stratosphere/ams_mitm/source/dns_mitm/dnsmitm_resolver_impl.hpp服务接口声明与 65000 命令号stratosphere/ams_mitm/source/dns_mitm/dnsmitm_debug.cpp调试日志实现libraries/libstratosphere/include/stratosphere/nsd/nsd_types.hpp环境标识常量lp1 / dd1配置模板config_templates/system_settings.ini[atmosphere] 段含三个 DNS.mitm 配置项相关文档docs/features/dns_mitm.mdDNS.mitm 特性官方说明docs/components/modules/ams_mitm.mdams_mitm 模块总览【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Loop Mac 窗口管理完整指南:免费开源的径向菜单、分屏与循环动作,5 分钟上手

Loop Mac 窗口管理完整指南:免费开源的径向菜单、分屏与循环动作,5 分钟上手

Loop Mac 窗口管理完整指南:免费开源的径向菜单、分屏与循环动作,5 分钟上手 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop Loop 是一款免费开源的 macOS 窗口管理工具&#xf…

2026/10/5 2:11:29 阅读更多 →
10 分钟跑通 TradingAgents-CN 股票分析:装完就能出报告,不用写代码

10 分钟跑通 TradingAgents-CN 股票分析:装完就能出报告,不用写代码

10 分钟跑通 TradingAgents-CN 股票分析:装完就能出报告,不用写代码 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 盯 K…

2026/10/5 2:11:29 阅读更多 →
vllm-ascend 算子深度解析:aclnnDequantSituQuant 融合 Dequant–Situ–Quant 的实现原理与调用实战

vllm-ascend 算子深度解析:aclnnDequantSituQuant 融合 Dequant–Situ–Quant 的实现原理与调用实战

人工智能大模型模型推理服务AscendCANN 【免费下载链接】vllm-ascend Community maintained hardware plugin for vLLM on Huawei Ascend 项目地址: https://gitcode.com/gh_mirrors/vl/vllm-ascend 点击查看 免费下载 aclnnDequantSituQuant 是 vllm-ascend 仓库 …

2026/10/5 2:11:29 阅读更多 →

最新新闻

Claude Code Skills生态爆发:索引站检索、安装与避坑全指南

Claude Code Skills生态爆发:索引站检索、安装与避坑全指南

最近这个Claude Code Skills生态的热度,说实话涨得比我预想快太多了。我看到7.7万个Skills这个数字的时候愣了一下,因为往前推十个月,社区里能叫得上名字的Skill可能就三位数,大家还在互相分享"你写了个什么好玩的技能文件&q…

2026/10/5 2:47:46 阅读更多 →
计算机系统基础:CPU指令执行与存储层次全解析

计算机系统基础:CPU指令执行与存储层次全解析

你正在维护一个千人规模的微服务系统,线上出了问题,需要快速定位是GC停顿、锁竞争还是网络超时。这时候,大学里那本《深入理解计算机系统》突然就有了意义。很多人觉得架构师是画框图、定方案的角色,但真正决定方案上限的&#xf…

2026/10/5 2:47:45 阅读更多 →
MIT开源商城微信小程序实战:Spring Boot+MyBatis部署与二次开发指南

MIT开源商城微信小程序实战:Spring Boot+MyBatis部署与二次开发指南

这两年我折腾过的商城类项目不在少数,有自研的、有拿来改的,但大部分要么闭源、要么文档稀碎,真正让人愿意留下来继续看的并不多。这个MIT开源商城微信小程序属于“第一眼就顺眼”的那种,前端小程序源码、后台商城源码都在一个仓库…

2026/10/5 2:47:45 阅读更多 →
Linux入门必学:Vim编辑器核心操作与配置实战指南

Linux入门必学:Vim编辑器核心操作与配置实战指南

1. 为什么说vim是Linux绕不开的“门槛”很多刚接触Linux的朋友,第一次打开终端敲命令时,往往会撞上一个略显“野蛮”的家伙——vim。你明明只是想编辑一个配置文件,输入vim /etc/nginx/nginx.conf,结果屏幕一黑,光标停…

2026/10/5 2:47:45 阅读更多 →
SpringBoot+SSM实战:大连IT招聘平台设计与部署全解析

SpringBoot+SSM实战:大连IT招聘平台设计与部署全解析

最近把一个基于JavaSpringBootSSM的大连IT行业招聘平台完整跑了一遍,从数据库设计到前后端联调,再到打包部署,整个过程踩了不少坑,也梳理出了不少可以复用的经验。这个项目本质上是一个典型的JavaWeb全栈课设/毕设项目&#xff1a…

2026/10/5 2:47:45 阅读更多 →
Redis事务真相:从MULTI到WATCH,乐观锁与Lua脚本实战

Redis事务真相:从MULTI到WATCH,乐观锁与Lua脚本实战

1. 从“Redis事务到底是不是事务”说起先丢一个很多面试官爱问、很多同学也容易翻车的问题:Redis事务和MySQL事务,到底是不是一回事?先说结论——它们根本不在一个维度上。MySQL事务要的是ACID,尤其是隔离性和持久性;R…

2026/10/5 2:46:45 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →