|
2 | 2 |
|
3 | 3 | 又一个 DNS 转发器。 |
4 | 4 |
|
5 | | -- 上游支持四大通用 DNS 协议。(UDP/TCP/DoT/DoH) |
| 5 | +- 上游支持 UDP/TCP/DoT/DoH 协议。 |
| 6 | +- TCP/DoT/DoH 协议均默认支持连接复用,请求延时可以和 UDP 一样低。 |
6 | 7 | - 支持域名屏蔽(广告屏蔽),修改 ttl,hosts 等常用功能。 |
7 | 8 | - 支持 lazy cache 机制,可以优化糟糕网络环境下的应答响应时间。 |
8 | 9 | - 支持 Redis 外部缓存,可以实现重启程序不会丢缓存。 |
9 | 10 | - 可选本地/远程 DNS 分流。可以同时根据域名和 IP 分流,更准确。 |
10 | | - - 支持从文本文件载入数据。使用极简且通用的格式(IP 表是 CIDR,域名表就是域名,一条一行)。 |
| 11 | + - 支持从文本文件载入数据。通用格式(IP 就是 IP,域名就是域名,一条一行)。 |
11 | 12 | - 支持直接从 v2ray 的 `geoip.dat` 和 `geosite.dat` 载入数据。 |
12 | | - - 支持从多个文件载入数据并自动合并。 |
| 13 | + - 支持从多个文件载入数据。 |
13 | 14 | - 极快的匹配速度。低内存和资源占用。载入再多域名也不用担心性能。 |
14 | 15 | - 无需折腾。三分钟完成配置。常见平台支持命令行一键安装。 |
15 | 16 |
|
@@ -140,23 +141,23 @@ mosdns-cn --service uninstall |
140 | 141 |
|
141 | 142 | ### 上游 upstream |
142 | 143 |
|
143 | | -支持四种协议。省略 scheme 默认为 UDP 协议。省略端口号会使用默认值。格式示例: |
| 144 | +支持四种协议。省略 scheme 默认为 UDP 协议。省略端口号会使用协议默认值。格式示例: |
144 | 145 |
|
145 | | -- UDP: `8.8.8.8`, `208.67.222.222:443` |
146 | | -- TCP: `tcp://8.8.8.8` |
147 | | -- DoT: `tls://dns.google` |
148 | | -- DoH: `https://dns.google/dns-query` |
| 146 | +- UDP: `8.8.8.8`, `208.67.222.222:443`。 |
| 147 | +- TCP: `tcp://8.8.8.8`。 |
| 148 | +- DoT: IP 直连 `tls://8.8.8.8` ,域名 `tls://dns.google`。 |
| 149 | +- DoH: IP 直连 `https://8.8.8.8/dns-query` ,域名 `https://dns.google/dns-query` 。 |
| 150 | + |
| 151 | +Tips: 优先使用 IP 直连。解析服务器地址会有格外性能消耗。 |
149 | 152 |
|
150 | 153 | 支持 3 个格外参数: |
151 | 154 |
|
152 | | -- `netaddr` 手动指定服务器的实际地址,格式 `host:port`,端口号不可省略。会使用这个地址建立连接。 |
153 | | - - 如果服务器地址包含域名,建议设定该参数来指定其 IP 地址,可以免去每次连接服务器还要解析服务器地址带来的格外消耗。 |
| 155 | +- `netaddr` 手动为域名地址指定 IP 和端口。省略端口号会使用协议默认值。 |
| 156 | + - 也可免去解析服务器地址带来的格外性能消耗。 |
154 | 157 | - **当本机运行 mosdns 并且将系统 DNS 指向 mosdns 时,必须为域名地址指定 IP 地址,否则会出现解析死循环。** |
155 | 158 | - e.g. `tls://dns.google?netaddr=8.8.8.8:853` |
156 | 159 | - `socks5` 通过 socks5 代理服务器连接上游。暂不支持 UDP 协议和用户名密码认证。e.g. `tls://dns.google?socks5=127.0.0.1:1080` |
157 | | -- `keepalive` TCP/DoT/DoH 连接复用空连接保持时间。单位: 秒。启用连接复用后,只有第一个请求需要建立连接和握手,接下来的请求会在同一连接中直接传送。所以平均请求延时会和 UDP 一样低。 |
158 | | - - DoH 的连接复用由 HTTP 协议层实现。 |
159 | | - - TCP/DoT 的连接复用不是什么黑科技,是 RFC 7766 标准。几乎所有知名公共服务器都完整支持 RFC 7766。 |
| 160 | +- `keepalive` TCP/DoT/DoH 连接复用空连接保持时间。单位: 秒。默认: TCP/DoT: 10。DoH: 30。 |
160 | 161 | - e.g. `tls://dns.google?keepalive=10` |
161 | 162 | - 如需同时使用多个参数,在地址后加 `?` 然后参数之间用 `&` 分隔 |
162 | 163 | - e.g. `tls://dns.google?netaddr=8.8.8.8:853&keepalive=10&socks5=127.0.0.1:1080` |
@@ -245,7 +246,7 @@ example.com IN A NA example.com. IN SOA ns.example.c |
245 | 246 | 性能: |
246 | 247 |
|
247 | 248 | - `domain` 和 `full` 匹配使用 HashMap,O(1)。载入再多的域名也不影响性能。每载入 1w 域名约占用 1M 内存。 |
248 | | -- `keyword` 和 `regexp` 是遍历匹配,O(n)。不建议导入太多。 |
| 249 | +- `keyword` 和 `regexp` 是遍历匹配,O(n)。 |
249 | 250 |
|
250 | 251 | ## Open Source Components / Libraries / Reference |
251 | 252 |
|
|
0 commit comments