MosDNS 通过插件和执行序列组合 DNS 处理流程,可用于构建灵活的本地或服务器端 DNS 服务。它支持按域名、IP、查询类型等条件匹配请求,并按需完成转发、缓存、重定向和响应处理。
- 插件化架构,可组合和复用 DNS 处理逻辑
- 支持 UDP、TCP、DoT、DoH 和 DoQ 等上游协议
- 支持缓存、Hosts、ECS、TTL、限速及 IPSet/NFTSet 等常用能力
- 提供 HTTP API、Prometheus 指标和 pprof 调试端点
- 单文件静态编译,适合容器及轻量化部署
- 提供
linux/amd64、linux/arm64多架构容器镜像
保存以下内容为 config.yaml:
log:
level: info
plugins:
- tag: forward_google
type: forward
args:
upstreams:
- addr: https://8.8.8.8/dns-query
- tag: udp_server
type: udp_server
args:
entry: forward_google
listen: 0.0.0.0:53
- tag: tcp_server
type: tcp_server
args:
entry: forward_google
listen: 0.0.0.0:53从 Packages 选择版本标签,并替换命令中的 <version>:
docker run -d \
--name mosdns \
--restart unless-stopped \
-p 53:53/udp \
-p 53:53/tcp \
-v "$(pwd)/config.yaml:/etc/mosdns/config.yaml:ro" \
ghcr.io/ovinc-cn/mosdns:<version>查看运行日志:
docker logs -f mosdns需要 Go 1.25 或更高版本:
git clone https://github.com/OVINC-CN/MosDNS.git
cd MosDNS
go build -trimpath -o mosdns .生成配置模板并启动:
./mosdns config gen config.yaml
./mosdns start -c config.yaml本项目基于 GNU General Public License v3.0 发布。