MosDNS是一款高性能且轻量级的DNS服务器,主要用于提供DNS-over-HTTPS (DoH) 和DNS-over-TLS (DoT) 功能,以保障用户的网络隐私和安全。MosDNS的设计注重简洁、易配置和高效性能,适用于各种网络环境中,尤其是在需要增强DNS安全性的情况下。
本文介绍在pfSense、OPNsense上使用MosDNS进行DNS分流,并通过clash或sing-box代理出站的方法。
安装MosDNS
请参阅以下教程:
安装完成以后,如下图所示:
OPNsensen的MosDNS控制界面
pfSense的MosDNS控制界面
配置MosDNS
MosDNS的配置文件存放在/usr/local/etc/mosdns/,所有与配置文件有关联的其他配置也必须存放在该目录。使用MosDNS进行DNS分流,建议更改DNS解析器或Unbound DNS所使用的默认53端口,以避免端口冲突。clash和sing-box配置文件当中的默认DNS必须指向MosDNS。
假设MosDNS运行在本地,监听地址为 127.0.0.1:5335。
clach配置
clash配置文件DNS部分建议写法:
参数说明:
- enable: true:启用Clash 的内置DNS 服务。
-
listen: Clash的DNS服务监听地址。
- enhanced-mode: fake-ip:DNS增强模式。
- fake-ip 模式:适用于需要IP映射的场景。
- redir-host 模式:更适合分流或需要准确域名的场景。
- default-nameserver:默认使用的DNS服务器,必须设置为MosDNS的监听地址。
- 其他内容建议删除。
sing-box配置
sing-box配置文件DNS部分建议写法:
参数说明
-
proxydns(代理 DNS)
- 解析端口: 127.0.0.1:5335(指向 mosdns)
- 解析策略: prefer_ipv4(优先 IPv4)
- 流量去向: detour: “select”(通过代理查询,适用于被墙域名)
-
localdns(本地 DNS)
- 解析地址:223.5.5.5(国内DNS)
- 流量去向: detour: “direct”(本地直连解析,适用于国内网站)
-
dns_fakeip(FakeIP)
- 用于 FakeIP 机制,模拟 DNS 解析
- 适用于透明代理模式,避免部分域名直连解析失败
MosDNS配置
MosDNS配置必须支持DNS分流,例如根据域名或IP使用不同的上游DNS服务器。如下文所示:
注意事项
- 确保MosDNS和clash、sing-box的监听地址及端口不冲突。
- 调试时,可以使用工具如dig或nslookup检查DNS查询结果是否符合预期。
配置文件
根据以上MosDNS分流设置原则,在最新发布的全家桶集成了通用mosdns配置文件,国内解析使用本地DNS,国外使用防火墙自身和其他国外DNS进行并行解析,选择时间最短的查询结果。安装完成以后,可以将114.114.114.114替换为一个本地的DNS解析地址,以提升国内DNS解析速度。该脚本集成了MosDNS使用所需要的GeoIP数据更新程序(同步下载更新代理程序),可以在OPNsense和pfSense当设置定时更新,配置方法如下图所示。
OPNsense转到系统>设置>任务,添加一个定制任务:
OPNsense自动更新定时任务,表示每周六的2点自动启动GeoIP数据和代理程序更新。
pfSense安装cron插件,并添加一个定时任务,如下图所示:
pfSense自动更新定时任务,表示每周六的2点自动启动GeoIP数据和代理程序更新。
安装成功也运行得很好,非常感谢,但是WebGUI的日志不会刷新,一直停留在安装时的那几条信息
后续版本已修复。