DNS 污染不存在的,这款开源利器让你彻底告别网络烦恼!

Posted by Mike on 2025-09-18

你是否还在为 DNS 污染问题烦恼?是否厌倦了国外网站访问慢、解析不准确的问题?

今天给大家介绍一个开源项目 —— EasyMosdns,它能让你在几分钟内搭建一台支持 ECS 的无污染 DNS 服务器。

什么是 EasyMosdns?

EasyMosdns 是基于 Mosdns/Mosdns-x 制作的 EDNS 部署方案,内置中国大陆地区优化规则与分流 API,满足DNS 日常使用场景。简单来说,它是一个开箱即用的 DNS 解决方案。

传统的 DNS 配置往往需要深度的网络知识和复杂的配置过程。而 EasyMosdns 把这些复杂的工作都封装好了,让普通用户也能轻松搭建专业级的 DNS 服务器。

项目地址:https://github.com/pmkol/easymosdns

官方文档:https://apad.pro/easymosdns

为什么选择 EasyMosdns?

解决 DNS 污染痛点

DNS 污染是国内网络环境的老大难问题。当你访问某些网站时,DNS 查询可能返回错误的 IP 地址,导致网站无法访问或访问速度极慢。

EasyMosdns 通过智能分流策略完美解决这个问题。它能自动识别域名类型,对不同域名采用不同的解析策略:

  • 国内域名使用国内 DNS 服务器解析
  • 海外域名通过无污染通道解析
  • 可疑域名自动走分流 API 确保解析准确性

支持 ECS 优化 CDN 访问

EDNS Client Subnet (ECS) 是 DNS 的一个扩展机制,允许递归 DNS 解析器指定客户端的子网信息,帮助 CDN 选择离客户端最近的服务器。

简单理解,ECS 就像给 DNS 查询加了个「定位服务」。当你访问一个使用 CDN 的网站时,DNS 服务器会根据你的位置信息,返回离你最近的 CDN 节点 IP。这样网站加载速度会更快。

EasyMosdns 内置了针对中国大陆优化的 ECS 配置,确保你能获得最佳的访问体验。

核心功能特性

智能分流机制

EasyMosdns 采用多层分流策略:

  1. 本地上游并发请求:同时向 DNSPod 和 AliDNS 发起查询,选择最快响应
  2. 远程上游优先请求:优先使用 EasyMosDNS 分流 API(DoH)
  3. 备用上游超时处理:当主要上游超时时,自动切换到 GoogleDNS 和 OpenDNS

这种多重保障机制确保了 DNS 解析的速度和稳定性。

隐私保护机制

对于污染列表和自定义列表中的域名,EasyMosdns 在请求上游 DNS 时会自动替换附带的用户 IP 子网信息,保护用户隐私。

强化 Hosts 功能

传统 hosts 文件功能有限,而 EasyMosdns 提供了增强版:

  • 域名支持多个 IP 地址
  • 完整支持 IPv6
  • 支持域名通配符匹配

缓存优化策略

EasyMosdns 提供了两套缓存策略:

  • 局域网缓存:针对内网环境优化,缓存时间较短
  • 广域网缓存:针对公网环境优化,支持 Redis 持久化

缓存系统还支持自动更新和压缩存储,在保证解析速度的同时节省存储空间。

恶意广告过滤

内置轻度广告过滤功能,可以屏蔽常见的恶意广告域名。用户还可以通过白名单自定义过滤规则。

自动规则更新

支持规则自动更新机制,提供直连和 CDN 两种下载方式:

  • 直连方式:适合网络环境较好的用户
  • CDN 方式:适合网络环境一般的用户

安装使用教程

环境要求

在开始安装前,请确保满足以下条件:

  • 已安装 Mosdns 4.5.3 版本或 Mosdns-x
  • Mosdns 工作目录为 /etc/mosdns
  • 已备份现有的 config 配置文件

快速安装

  1. 下载源码包
1
2
wget https://mirror.apad.pro/dns/easymosdns.tar.gz
tar xzf easymosdns.tar.gz
  1. 备份并替换配置
1
2
mv /etc/mosdns /etc/mosdns.old
mv easymosdns /etc/mosdns
  1. 重新安装并启动服务
1
2
mosdns service install -d /etc/mosdns -c config.yaml
mosdns service start

看到 service is running 信息就说明部署成功了。

  1. 配置防火墙

开启必要的防火墙端口:

  • UDP 53:DNS 标准端口
  • TCP 53:DNS over TCP
  • TCP 80、443:HTTP/HTTPS
  • TCP 853:DNS over TLS

高级配置指南

自定义 Hosts 规则

编辑 /etc/mosdns/hosts.txt 文件:

1
2
dns.google 8.8.8.8 8.8.4.4 2001:4860:4860::8888
github.com 140.82.112.3 140.82.112.4

注意:格式与传统 hosts 不同,域名在前,IP 在后,支持多个 IP 地址。

配置强制 ECS

对于某些需要获得最佳 CDN 效果的域名,可以强制附带本地 ECS:

编辑 /etc/mosdns/ecs_cn_domain.txt

1
2
3
domain:github.com
full:stackoverflow.com
keyword:google

配置上游 DNS 服务器

/etc/mosdns/config.yaml 中可以自定义上游服务器:

本地上游配置

1
2
3
4
5
6
- tag: forward_local
type: fast_forward
args:
upstream:
- addr: "223.5.5.5"
- addr: "119.29.29.29"

远程上游配置

1
2
3
4
5
6
7
8
- tag: forward_remote
type: fast_forward
args:
upstream:
- addr: "tcp://208.67.220.220:5353"
enable_pipeline: true
#socks5: "127.0.0.1:1080"
- addr: "udpme://8.8.8.8"

如果网络环境需要代理,可以取消 socks5 配置的注释。

启用 Redis 缓存

对于高并发环境,建议启用 Redis 缓存:

  1. 安装 Redis 服务
  2. 修改配置文件,取消 Redis 配置注释:
1
redis: "redis://127.0.0.1:6379/0"

配置自动更新规则

使用 crontab 设置定时任务:

1
crontab -e

添加以下规则(每日 5 点通过 CDN 更新):

1
0 5 * * * /etc/mosdns/rules/update-cdn

支持 DoH 和 DoT

启用 DNS over HTTPS

取消配置文件中以下部分的注释:

1
2
3
4
- protocol: http
addr: "127.0.0.1:9053"
url_path: "/dns-query"
get_user_ip_from_header: "X-Forwarded-For"

建议使用 Nginx 反向代理:

1
2
3
4
5
6
7
server {
location /dns-query {
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
proxy_pass http://127.0.0.1:9053/dns-query;
}
}

启用 DNS over TLS

取消以下配置注释并指定 SSL 证书:

1
2
3
4
- protocol: tls
addr: "0.0.0.0:853"
cert: "/etc/mosdns/yourdomain.cert"
key: "/etc/mosdns/yourdomain.key"

性能优化建议

根据环境选择缓存策略

  • 家庭环境:使用默认的内存缓存即可
  • 企业环境:建议启用 Redis 缓存,提高并发处理能力
  • 公共服务:开启压缩存储,节省内存占用

上游 DNS 选择策略

  • 国内用户:优先使用 AliDNS + DNSPod 组合
  • 海外用户:推荐 GoogleDNS + CloudflareDNS 组合
  • 网络受限环境:配置 SOCKS5 代理确保连通性

定制化分流规则

EasyMosdns 支持高度定制化的分流规则。你可以:

  • 根据域名关键字进行分流
  • 按照 IP 段进行分流
  • 设置特定域名走特定上游

常见问题排查

服务启动失败

  1. 检查端口是否被占用:netstat -tlnp | grep :53
  2. 确认配置文件语法正确:mosdns start --dry-run -c /etc/mosdns/config.yaml
  3. 查看详细错误信息:journalctl -u mosdns -f

DNS 解析异常

  1. 测试本地解析:dig @127.0.0.1 google.com
  2. 检查上游连通性:ping 8.8.8.8
  3. 查看分流日志确认规则生效

性能问题

  1. 监控缓存命中率
  2. 调整并发查询数量
  3. 优化上游 DNS 服务器选择

项目生态与社区

EasyMosdns 基于 Mosdns-x 项目开发,拥有活跃的开源社区。项目特点:

  • 完全开源:代码透明,可自由定制
  • 持续更新:规则库定期更新,紧跟网络环境变化
  • 社区支持:Telegram 群组提供技术支持

总结

EasyMosdns 是一个功能强大且易于使用的 DNS 解决方案。它不仅解决了 DNS 污染问题,还通过 ECS 优化、智能缓存、自动更新等功能,为用户提供了完整的 DNS 服务体验。

无论你是网络管理员想要部署企业 DNS 服务,还是技术爱好者希望优化家庭网络环境,EasyMosdns 都是一个值得尝试的选择。

赶快试试吧,几分钟就能让你告别 DNS 烦恼!