项目概述
mosdns-cn 是一个基于 Golang 开发的轻量级 DNS 转发与过滤工具。在当前的互联网环境下,DNS 污染和解析延迟是影响网络访问质量的核心痛点。该项目旨在为用户提供一个简单、灵活且高性能的 DNS 解决方案,通过智能的分流机制,将国内域名交给国内 DNS 解析,将国外域名交给加密 DNS(如 DoH/DoT)解析,从而在保证访问速度的同时,有效规避 DNS 污染。
对于很多用户来说,配置完整的 mosdns 可能会觉得配置文件过于复杂,而 mosdns-cn 通过针对性的优化和预设,降低了部署门槛,使其成为家庭网关、软路由或个人服务器上的理想 DNS 插件。
核心功能特性
1. 智能分流 (Smart Splitting)
这是该项目的核心竞争力。它能够根据预定义的域名列表(如 geoip.dat 或 geosite.dat),自动判断请求域名的归属地:
- 国内域名 \(\rightarrow\) 转发至 223.5.5.5 (阿里) 或 119.29.29.29 (腾讯),确保极速响应。
- 国外域名 \(\rightarrow\) 转发至 8.8.8.8 或 1.1.1.1(通过加密通道),防止被劫持或污染。
2. 支持多种协议
为了应对运营商的 DNS 拦截,mosdns-cn 支持多种现代 DNS 协议:
- UDP/TCP: 传统的 DNS 查询方式。
- DoH (DNS over HTTPS): 将 DNS 请求封装在 HTTPS 流量中,极大地增强了隐私性和抗干扰能力。
- DoT (DNS over TLS): 另一种加密传输方式,在性能和安全性之间取得了平衡。
3. 高并发性能
得益于 Golang 的协程(Goroutine)机制,mosdns-cn 能够以极低的资源占用处理海量的并发 DNS 请求,非常适合部署在内存较小的嵌入式设备(如 OpenWrt 路由器)中。
4. 灵活的缓存机制
内置高效的缓存系统,减少重复请求带来的延迟,提升整体上网的“秒开”体验。
快速上手实例
以下是一个典型的部署场景:将 mosdns-cn 作为本地 DNS 服务器,实现国内外分流。
1. 安装与运行
如果你已经安装了 Go 环境,可以直接克隆并编译:
git clone https://github.com/IrineSistiana/mosdns-cn.git cd mosdns-cn go build -o mosdns-cn main.go ./mosdns-cn -c config.yaml
2. 配置文件详解 (config.yaml)
以下是一个简化版的配置示例,展示了如何配置分流逻辑:
# 监听端口
listen: :53
# 缓存配置
cache:
size: 1024
ttl: 3600
# 上游 DNS 服务器定义
upstreams:
# 国内快速解析
cn_dns:
- addr: "223.5.5.5"
type: "udp"
- addr: "119.29.29.29"
type: "udp"
# 国外加密解析 (DoH)
intl_dns:
- addr: "https://dns.google/dns-query"
type: "doh"
- addr: "https://cloudflare-dns.com/dns-query"
type: "doh"
# 分流规则
rules:
# 如果域名在 cn-list 中,使用 cn_dns
- match: "geosite:cn"
action: "forward:cn_dns"
# 其余所有请求使用 intl_dns
- match: "any"
action: "forward:intl_dns"
3. 验证效果
部署完成后,你可以使用 dig 或 nslookup 工具测试:
测试国内域名:
dig @127.0.0.1 www.baidu.com # 预期结果:响应时间极短,返回国内 IP
测试国外域名:
dig @127.0.0.1 www.google.com # 预期结果:通过 DoH 解析,返回真实的 Google IP 而非污染 IP
进阶应用场景
场景 A:配合透明代理使用
在很多高级网络配置中,mosdns-cn 被放置在代理软件(如 Clash 或 Sing-box)之前。
- 流程:客户端 \(\rightarrow\) mosdns-cn \(\rightarrow\) (分流) \(\rightarrow\) 代理软件 \(\rightarrow\) 目标网站。
- 优势:避免了代理软件内部 DNS 解析可能带来的延迟,且能更精准地控制哪些域名走直连,哪些走代理。
场景 B:家庭网关 DNS 优化
将 mosdns-cn 部署在树莓派或 OpenWrt 上,并将 DHCP 服务器的 DNS 地址设置为该设备的 IP。这样家中所有设备(手机、电视、IoT 设备)无需任何配置,即可享受无污染的 DNS 解析。
为什么选择 mosdns-cn 而不是其他方案?
| 特性 | 传统 DNS (如 114.114.114.114) | AdGuard Home | mosdns-cn |
|---|---|---|---|
| 抗污染 | 差 (易被劫持) | 中 (依赖上游) | 强 (支持 DoH/分流) |
| 解析速度 | 快 (但可能不准) | 中 (过滤开销) | 极快 (智能分流) |
| 资源占用 | 极低 | 较高 (带 Web UI) | 低 (纯 Go 实现) |
| 配置复杂度 | 无需配置 | 简单 (图形化) | 中 (配置文件) |
总结
mosdns-cn 是一个为追求网络纯净度和速度的用户量身定制的工具。它通过 Golang 的高效实现,将复杂的 DNS 分流逻辑简化为可维护的配置,解决了长期以来困扰用户的 DNS 污染问题。无论你是网络管理员,还是希望优化家庭网络环境的爱好者,mosdns-cn 都是一个值得尝试的轻量级选择。



还没有评论,来说两句吧...