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

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

你是否还在为 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. 1. 本地上游并发请求:同时向 DNSPod 和 AliDNS 发起查询,选择最快响应
  2. 2. 远程上游优先请求:优先使用 EasyMosDNS 分流 API(DoH)
  3. 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. 下载源码包
wget https://mirror.apad.pro/dns/easymosdns.tar.gz

tar xzf easymosdns.tar.gz
  1. 2. 备份并替换配置
mv /etc/mosdns /etc/mosdns.old

mv easymosdns /etc/mosdns
  1. 3. 重新安装并启动服务
mosdns service install -d /etc/mosdns -c config.yaml

mosdns service start

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

  1. 4. 配置防火墙

开启必要的防火墙端口:

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

高级配置指南

自定义 Hosts 规则

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

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

domain:github.com

full:stackoverflow.com

keyword:google

配置上游 DNS 服务器

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

本地上游配置

- tag: forward_local

  type: fast_forward

  args:

    upstream:

      - addr: "223.5.5.5"

      - addr: "119.29.29.29"

远程上游配置

- 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. 1. 安装 Redis 服务
  2. 2. 修改配置文件,取消 Redis 配置注释:
redis: "redis://127.0.0.1:6379/0"

配置自动更新规则

使用 crontab 设置定时任务:

crontab -e

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

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

支持 DoH 和 DoT

启用 DNS over HTTPS

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

- protocol: http

  addr: "127.0.0.1:9053"

  url_path: "/dns-query"

  get_user_ip_from_header: "X-Forwarded-For"

建议使用 Nginx 反向代理:

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 证书:

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

DNS 解析异常

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

性能问题

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

项目生态与社区

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

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

总结

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

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

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



🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。

你可能还喜欢

点击下方图片即可阅读

图片

网页复制神器 SmartCopy 重磅更新!一键将任意网页变为精美的 Markdown 笔记


点击上方图片,『美团|饿了么』大额外卖红包天天免费领

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值