本文作者:icy

告别DNS污染!详解 mosdns-cn:让你的 Golang DNS 转发方案更简单、更高效

icy 52分钟前 5 抢沙发
告别DNS污染!详解 mosdns-cn:让你的 Golang DNS 转发方案更简单、更高效摘要: 项目概述 mosdns-cn 是一个基于 Golang 开发的轻量级 DNS 转发与过滤工具。在当前的互联网环境下,DNS 污染和解析延迟是影响网络访问质量的核心痛点。该项目旨在为...

告别DNS污染!详解 mosdns-cn:让你的 Golang DNS 转发方案更简单、更高效

项目概述

mosdns-cn 是一个基于 Golang 开发的轻量级 DNS 转发与过滤工具。在当前的互联网环境下,DNS 污染和解析延迟是影响网络访问质量的核心痛点。该项目旨在为用户提供一个简单、灵活且高性能的 DNS 解决方案,通过智能的分流机制,将国内域名交给国内 DNS 解析,将国外域名交给加密 DNS(如 DoH/DoT)解析,从而在保证访问速度的同时,有效规避 DNS 污染。

对于很多用户来说,配置完整的 mosdns 可能会觉得配置文件过于复杂,而 mosdns-cn 通过针对性的优化和预设,降低了部署门槛,使其成为家庭网关、软路由或个人服务器上的理想 DNS 插件。


核心功能特性

1. 智能分流 (Smart Splitting)

这是该项目的核心竞争力。它能够根据预定义的域名列表(如 geoip.datgeosite.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 环境,可以直接克隆并编译:

text
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)

以下是一个简化版的配置示例,展示了如何配置分流逻辑:

text
# 监听端口
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. 验证效果

部署完成后,你可以使用 dignslookup 工具测试:

测试国内域名:

text
dig @127.0.0.1 www.baidu.com
# 预期结果:响应时间极短,返回国内 IP

测试国外域名:

text
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 都是一个值得尝试的轻量级选择。

mosdns-cn_20260624091243.zip
类型:压缩文件|已下载:0|下载方式:免费下载
立即下载
文章版权及转载声明

作者:icy本文地址:https://www.zelig.cn/golang/1248.html发布于 52分钟前
文章转载或复制请以超链接形式并注明出处软角落-SoftNook

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,5人围观)参与讨论

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