mosdns v4
版本: v4.5.0
功能概述
mosdns 是一个插件化的 DNS 转发器。用户可以按需拼接插件,定制自己的 DNS 处理逻辑。
插件概述
以下是 mosdns 以及自带插件的功能:
-
匹配器:
-
query_matcher: 匹配请求的特性。域名,类型,来源 IP 等。 -
response_matcher: 匹配应答的特性。应答 IP,CNAME 等。
-
-
常用功能:
-
forward: 转发请求至上游服务器。 -
cache: 缓存应答。支持 redis 外部缓存。 -
_prefer_ipv4/6: 自动判断域名是否是双栈域名然后屏蔽 IPv4/6 请求,不会影响纯 IPv6/4 域名。 -
ecs: 在请求上附加 ECS。可以是预设 IP 也可以自动使用客户端的 IP。 -
hosts: 为域名设定 IP。 -
blackhole: 能丢弃应答,生成空应答,或者生成包含特定 IP 应答。用于屏蔽请求。 -
ttl: 修改应答的 TTL。 -
redirect: 替换(重定向)请求的域名。请求域名 A,但返回域名 B 的记录。 -
padding: 将加密 DNS 的报文填充至固定长度,防止流量分析。 -
bufsize: 修改请求的 EDNS0 的 UDP Size。防止 UDP 碎片。 -
arbitrary: 面向高级用户。可以手动构建包含任意记录的应答。 -
reverse_lookup: 可通过 IP 反查经过 mosdns 处理的域名。支持处理 PTR 请求,支持通过 HTTP 接口查询。 -
client_limiter: 限制客户端的最大 QPS。
-
-
动态路由
-
ipset: 将应答 IP 写入 ipset。 -
nftset: 将应答 IP 写入 nftables。
-
插件详细说明在
插件及其参数还可以添加自己编写的插件到 mosdns 内。详见
如何编写新插件
如何配置
配置说明和示例,详见:
如何配置 mosdns
如何使用
mosdns 只有一个二进制文件,命令行运行即可。
mosdns start -c config_file -d working_dir
mosdns 还附带一些常用小工具命令。
-
probe 可以探测 TCP/TLS 服务器是否支持连接复用,pipeline 连接复用,空闲连接保持时间。
-
config 可以生成 yaml 配置文件模板,转换配置文件格式。
-
service 可以将 mosdns 安装成系统服务。
详见各个子命令的帮助。