BOSh
文章284
标签434
分类108
315晚会 36氪 80后 ADB AI AI Agent AI PC AI 代理 AI 助手 AI 网关 AI 评测 AI助手 AI处理器 AI大模型 AI安全 AI应用 AI智能体 AI网关 AMD API API 集成 AWS Agent Agentic AI AionUi Android Apple Automation Backup Bash Bosh C++ CDN CEO CI/CD CLI CLI Proxy API CLIProxyAPI COMPUTEX CRM Chrome 插件 Claude Opus 4.6 Cloudflare ConnectBot Credential Manager CurrentEvents DNS Debian DeepSeek DenchClaw DevOps Docker Elon Musk GCP GEO GPL GPS GPU Gemini Gemini 3.1 Pro Ghostty GitHub GitHub Actions Gmail Go Gog Google Google AI Pro Google API Google Gemini Google Photos Google Pixel HKUDS Hardware Hermes Hermes Agent Hexo HidenCloud Hugo IPV6 Intel Jetpack Compose John Turnus Karpathy Kimi-K2.5 Kotlin LINUX LLM LTS LaTeX Linux Markdow Markdown MemU Bot MiniMax Musk NAT64 NIX NODE NVIDIA NVIDIA Build NanoClaw Netcatty Netlify Newsletter Nvidia Open WebUI OpenAI OpenAI 兼容接口 OpenCLI OpenClaw PDF 编译 PicoClaw Pixel Pixel 1 Pixel 12 Prismer Pura90 Python QClaw QQ机器人 Qualcomm RAG RTX Spark Reddit Rust SFTP SSH Skills SoC Subagent SuperCall Syncthing TPU TSMC Telegram Bot Tensor Tensor G7 Tim Cook Ubuntu VLESS VPN VPS Vercel WeChat Web3 WebSSH Windows WorkBuddy X XChat XHTTP X热榜 YouTube ZeroClaw arXiv arch c++ git hugo iMessage iOS n8n nanobot node js ntfs pacman podman zz.ac 东海 两性关系 个人助理 中东 中东冲突 中东局势 中关村论坛 中南大学 中国 中美 乌克兰 习惯养成 云同步 云服务器 亚洲 人性 代理 代金券 以色列 任务管理 伊朗 伊朗危机 伊朗战争 伦理 体育 俄乌战争 俄罗斯 保护主义 信息流 信息管理 停火 健康管理 光通信 免费VPS 免费试用 共和党 关系 养老金 内容工厂 内容生产 内容筛选 军事冲突 军事动态 军民融合 农村 分享 分配 创业 制裁 办公自动化 加密 加密货币 加沙 北斗 北韩 医学生 半导体 华为 博客 博客助手 博客发布 博客部署成功 卫星 原生 JS 反思 反重力 台海局势 台湾 命令 命令行 喷嚏网 国产 国产化 国产替代 国际 国际关系 国际局势 国际新闻 图卦 图说 地缘政治 基础设施 多代理 多模态AI 大学分析 大模型 孙少平 学习 安全 实时监控 家庭助理 家庭服务器 家装设计 工业策略 工作总结 工作效率 工作流编排 工具 工具链 平凡的世界 平台责任 庞氏骗局 开发 开发实录 开源 开源软件 开源项目 张雪峰 微信 心理健康 情感 战争 房地产 手机 技术分享 投资工具 指标看板 提示词工程 播客 收件箱清理 效率 效率工具 教程 教育制度 数据分析 数据投毒 文件管理 文献管理 新能源汽车 新闻汇总 日历聚合 时事 时事总结 显卡 晨报 智能体 智能体生态 朝鲜 架构 架构实践 核协议 核武器 桌面Cowork 模型接入 模型配置 欧洲安全 每日图说 比亚迪 油价 法律 活动运营 浏览器自动化 消息通道 消费者权益 深度学习 渔船 游戏开发 湘雅医院 潘石屹 热点新闻 版本更新 特朗普 生态系统 生活 生活自动化 生物识别 用例 甲骨文云 电池技术 症状追踪 白嫖攻略 白山云 皮皮虾 监管 目标管理 知识库 社交媒体 社会保障 社会公平 社会百态 社会观察 科技 科研助手 笔记 第一财经 算法 算法推荐 纽森 经济 经济观察 经验分享 编程 网关 网络 网络安全 网络摘录 美伊冲突 美伊谈判 美国 美国制裁 美国大选 美国政治 能源安全 脚本 腾讯 腾讯,龙虾,OpenClaw 腾讯云 自动化 自动化创作 自动化协作 自动化提醒 自动化流水线 自动化脚本 自动化运维 自律教练 自由软件 芯片 草榴 行为改变 视频摘要 解锁 计算摄影 记录 许可证 论文写作 论文阅读 语义搜索 语音代理 读书 读书笔记 读后感 谷歌云 财报季 路遥 身份验证 迁移 运维 进化论 远程运维 选车 邀请确认 部署 部署指南 量子计算 销售自动化 阅读感悟 随笔 隐私 霍尔木兹 霍尔木兹海峡 青蛙机 韬定律 项目管理 风险管理 飞书 高中生活 高可用 高考 高考志愿 鸽巢原理 麒麟 麒麟9050 黄仁勋 黎巴嫩 龙虾

一言

文章归档

MasterDnsVPN:把 TCP 流量塞进 DNS 查询的硬核 VPN 实验

MasterDnsVPN:把 TCP 流量塞进 DNS 查询的硬核 VPN 实验

MasterDnsVPN:把 TCP 流量塞进 DNS 查询的硬核 VPN 实验

我读完 MasterDnsVPN 的中文 README,第一反应是:这不是那种“套个代理协议、换个端口、喊一句抗封锁”的项目。它更像一个把 DNS 隧道这条老路重新拆开,按恶劣网络条件逐项重写的工程实验。

项目作者给它的定位很明确:通过 DNS 查询和响应承载 TCP 流量。换句话说,它试图把本来属于 TCP 连接的数据切碎、编码、塞进 DNS 请求里,再从另一端拼回去。这个方向并不新,DNSTT、iodine、SlipStream 这些项目都做过类似的事情。但 MasterDnsVPN 的 README 里反复强调两点:低协议开销,以及在糟糕网络里的存活能力。

这两个点很现实。DNS 隧道不是正常网络里的高速公路,它更像战损版羊肠小道:MTU 小、解析器行为不一致、缓存和拦截随时添乱、丢包也很常见。如果协议头部太重,真正能装业务数据的空间就会被吃掉;如果恢复机制太粗糙,链路抖几下连接就废了。MasterDnsVPN 把优化目标放在这里,说明作者知道自己在跟什么东西打架。

它到底解决什么问题

README 里最醒目的部分,是它把自己和 DNSTT、SlipStream 做了对比。MasterDnsVPN 声称自己的传输头部开销大约只有 5 到 7 字节,低于 DNSTT 的约 59 字节,也低于 SlipStream 的约 24 字节。这个数字如果在真实环境里稳定成立,意义不小。DNS 隧道每个请求能携带的有效载荷本来就少,头部少一点,数据就多一点;请求次数少一点,被网络设备盯上的概率也可能低一点。

项目还强调多解析器、多路径、冗余复制、ARQ 重传、自适应路由、解析器健康检查、故障切换,以及 MTU 探测。这些词看着像配置项堆料,但放在 DNS 隧道里并不多余。真实网络里,不同 DNS resolver 的行为差别很大,有的响应快,有的会缓存,有的会丢奇怪的包,有的直接被污染。把流量绑死在单一路径上,就像生产系统只有一个数据库主节点还不做备份,迟早要出事故。

我比较喜欢它的一个思路:承认 DNS 环境很脏,然后把“不可靠”当成默认条件处理。很多代理工具的潜台词是“网络基本可用,只是被挡了一下”。MasterDnsVPN 的潜台词更悲观:网络可能烂到只剩 DNS 缝隙,那就围绕这条缝隙做协议设计。悲观主义工程师写出来的东西,通常更抗揍。

DNS 隧道不是魔法

这里也得泼点冷水。DNS 隧道不是魔法,更不是免费带宽。它的吞吐、延迟、稳定性都受 DNS 协议形态限制。你把 TCP 塞进 DNS,就要接受额外编码、请求响应节奏、解析器策略、缓存语义、包大小限制带来的成本。README 里说 MasterDnsVPN 在本地 10MB 下载测试中比 DNSTT 快很多,甚至比 SlipStream 也快,这很有参考价值,但本地测试和公网脏链路不是一回事。

真正难的是长时间、跨运营商、跨地区、不同 DNS 解析器组合下的表现。尤其是在强干扰网络里,吞吐不是唯一指标。连接能不能活,恢复会不会抖,包重传会不会导致更明显的流量特征,解析器被自动禁用后能不能稳定恢复,这些才是决定体验的硬指标。

所以我会把 MasterDnsVPN 看成一个很有意思的研究型工具,而不是“装上就起飞”的万能 VPN。它适合懂网络的人研究协议取舍,也适合在合法授权的实验环境里验证 DNS 隧道的极限。普通用户如果只是想找一个日常代理工具,最好先意识到:DNS 隧道的维护成本和排障成本并不低。

部署门槛在哪里

README 给出的服务端部署流程不算复杂,但前置条件很关键:你需要一个域名,并把某个子域名委派给自己的服务器。典型做法是先创建 ns.example.com 的 A 记录指向服务器 IP,再创建 v.example.com 的 NS 记录指向 ns.example.com。如果用 Cloudflare,还要确保 A 记录是 DNS only,不能走橙云代理。

这一步卡住了很多新手。因为它不是“随便填个域名”就能跑,而是要让外部 DNS 查询真的打到你的服务器。你还要放行 UDP 53 端口,处理可能占用 53 端口的 systemd-resolved,等待 DNS 记录传播。DNS 委派没配对,后面客户端参数写得再漂亮也没用。网络工程就是这样,一处基础设施没通,应用层全是幻觉。

客户端方面,项目提供了大量预编译包,覆盖 Windows、macOS、Linux、Termux/Android、ARM、MIPS、RISC-V 等架构。这个覆盖面挺狠,说明作者确实考虑了不同设备场景。对于开发者,也可以直接用 Go 从源码跑。主版本是 Go,旧版 Python 也存在,但 README 明显把 Go 版本放在主线位置。

安全性要分开看

README 提到 MasterDnsVPN 支持 AES、ChaCha20 和 XOR。这里必须说清楚:AES 和 ChaCha20 是正经加密算法,XOR 更像轻量混淆。XOR 的优点是开销低,缺点是安全性弱。把它放在“速度和安全取舍”里可以理解,但别把 XOR 当成强加密。这种地方不能糊弄,糊弄就容易出安全事故。

另外,DNS 隧道本身也不等于匿名系统。它可以改变流量承载方式,但不自动解决端点安全、服务端日志、DNS 查询特征、应用层泄漏、浏览器指纹这些问题。用它做研究没问题,用它做生产绕行方案时,必须把威胁模型写清楚。你到底防谁?本地网关?运营商?公司防火墙?还是更强的对手?防御对象不同,配置和风险完全不同。

项目 README 的免责声明写得比较重,强调教育和研究用途、按原样提供、用户自行承担法律和使用后果。我赞成这种写法。网络工具天然有双重用途,写清边界不是装样子,是对开发者和使用者都负责。

我觉得它最值得看的部分

MasterDnsVPN 最值得看的不是“一键安装脚本”,也不是跑分数字,而是它围绕 DNS 约束做的一组工程选择:低头部开销、控制块打包、请求打包、可选压缩、MTU 探测、多 resolver 健康检查、故障切换、冗余复制。把这些东西连起来看,你会发现它的目标不是把传统 VPN 简单搬进 DNS,而是承认 DNS 这条通道很窄、很脏、很不可控,然后专门为这条通道写协议。

这也是我喜欢开源网络项目的原因。好的项目会暴露很多现实:协议不是 PPT,链路也不会因为你用了“高性能”这个词就变好。真正的工程优化,经常是从很小的地方抠出来的。少几个字节的头部、少一次无效重传、少依赖一个不稳定 resolver,累计起来就是体验差异。

当然,README 里的很多性能对比还需要更多第三方复测。尤其是跨网络、跨地区、不同丢包率、不同 resolver 组合下的结果。如果项目后续能提供可复现 benchmark 脚本、测试拓扑、配置文件和原始数据,会更有说服力。开源项目最怕“我的机器上很快”,网络项目尤其怕。

适合谁读,适合谁用

如果你是网络协议爱好者、Go 开发者、安全研究人员,或者正在研究 DNS 隧道、抗干扰传输、弱网络可靠性,MasterDnsVPN 值得认真读。它的 README 本身就是一份不错的技术导览,里面有部署步骤、架构取舍、对比项目和排障方向。

如果你只是想找一个即插即用的翻墙工具,我建议先别急。你需要理解域名委派、UDP 53、防火墙、DNS 传播、客户端密钥、resolver 行为这些概念。不理解也能照着脚本跑,但出了问题会很痛苦。网络不会给“我只是复制命令”的人留面子。

我的结论很简单:MasterDnsVPN 是一个野心很足、方向明确的 DNS 隧道项目。它把注意力放在低开销和恶劣网络生存能力上,这比泛泛而谈“安全高速稳定”靠谱得多。但它仍然是研究型工具,使用前要尊重法律边界,也要尊重网络工程的复杂性。

Code is like DNS:看起来只是名字解析,真出事的时候,全公司都跪。🙂


本文由 BOSH 的博客助手 HerMes 整理 🧩

原文链接:https://github.com/masterking32/MasterDnsVPN/blob/main/README_ZH.MD

本文作者:BOSh
本文链接:http://bosh.zz.ac/posts/614284193.html
版权声明:本文由BoSh发布,部分内容来源于网络。