MosDNS是一款高性能且轻量级的DNS服务器,主要用于提供DNS-over-HTTPS (DoH) 和DNS-over-TLS (DoT) 功能,以保障用户的网络隐私和安全。MOSDNS的设计注重简洁、易配置和高效性能,适用于各种网络环境中,尤其是在需要增强DNS安全性的情况下。
MosDNS可以在FreeBSD系统上安装和使用,本文介绍在pfSense和OPNsense上安装配置MosDNS的方法。为减化安装过程,我制作了一键脚本,简化安装过程。
安装MosDNS
请参阅以下教程:
安装完成以后,如下图所示:
OPNsensen的MosDNS控制界面
pfSense的MosDNS控制界面
配置MosDNS
MosDNS的配置文件存放在/usr/local/etc/mosdns/下,所有与配置文件有关联的其他配置也必须存放在该目录。使用MosDNS做DNS分流,建议禁用防火墙自带的DNS解析,以避免端口冲突。Clash和Sing-Box配置文件当中的DNS必须指向MosDNS。
假设MosDNS运行在本地,监听地址为 127.0.0.1:53。
Clach配置
Clash配置文件DNS部分建议写法:
参数说明:
- enable: true:启用Clash 的内置DNS 服务。
- listen: 0.0.0.0:1053:设置Clash的DNS 服务监听地址,若不需要监听所有接口,可以改为127.0.0.1:1053。
- enhanced-mode: fake-ip:DNS增强模式。
- fake-ip 模式:适用于需要IP映射的场景。
- redir-host 模式:更适合分流或需要准确域名的场景。
- nameserver:指定用于解析的主要DNS 服务器,配置为MosDNS的监听地址。
- fallback:备用DNS,当MosDNS无法解析时生效。
- fallback-filter:配置GeoIP和IP CIDR筛选规则,用于过滤非公网IP等。
- default-nameserver:默认使用的DNS服务器。
Sing-Box配置
Sing-Box配置文件DNS部分建议写法:
{ "dns": { "servers": [ { "tag": "mosdns", "address": "127.0.0.1", "port": 53, "strategy": "prefer_ipv4", "detour": "direct" } ], "disable_cache": false, "disable_expire": false, "disable_fallback": true } }
参数说明
- servers:
- 配置一个指向MosDNS的DNS服务器。
- tag: 标识该服务器为mosdns,方便扩展和调试。
- address: 指定MosDNS的监听地址(通常是 127.0.0.1)。
- port: 指定MosDNS的监听端口(例如 53)。
- strategy: 设置查询策略,prefer_ipv4优先返回 IPv4 地址,prefer_ipv6优先返回IPv6地址。
- detour: 设置网络出口为direct,表示直连查询。
- disable_cache:
- 是否禁用DNS缓存。建议设置为false以提升性能。
- disable_expire:
- 是否禁用缓存过期处理。设置为false以允许缓存自动过期。
- disable_fallback:
- 是否禁用回退机制。设置为true,避免在MosDNS无响应时切换到其他DNS。
MosDNS配置
确保MosDNS的配置已设置为支持DNS分流,例如根据域名或IP使用不同的上游DNS服务器。示例如下:
servers:
- label: "国内DNS"
address: "223.5.5.5:53"
- label: "国外DNS"
address: "8.8.8.8:53"
rules:
- suffix: ".cn"
server: "国内DNS"
- default: "国外DNS"
listeners:
- address: "127.0.0.1"
port: 53
protocol: "udp"
- address: "127.0.0.1"
port: 53
protocol: "tcp"
注意事项
- 确保MosDNS和Clash、Sing-Box的监听地址及端口不冲突。
- 调试时,可以使用工具如dig或nslookup检查DNS查询结果是否符合预期。
通过这种方式,MosDNS负责分流逻辑,而Clash、Sing-Box的DNS功能主要用于配合代理。
OPNsense上的MosDNS配置可以参考:techprober/mosdns-opnsense-install
安装成功也运行得很好,非常感谢,但是WebGUI的日志不会刷新,一直停留在安装时的那几条信息
OPNsense受防火墙安全限制,通过WAN接口远程查看状态会显示不正常,如果是本地(包含VPN)就没有问题。