/ip/dns

dns

DNS 解析器和缓存的设置。路由器将其用于自身查找,并在 allow-remote-requests=yes 时应答客户端的 DNS 查询。此菜单中的更改会立即生效;此时到达的查询可能得不到应答,客户端会重新发送。缓存会被保留。概述和示例请参阅 DNS。


ip/dns

Type: Settings Directory

DNS 解析器和缓存的设置。路由器将其用于自身查找,并在 allow-remote-requests=yes 时应答客户端的 DNS 查询。此菜单中的更改会立即生效;此时到达的查询可能得不到应答,客户端会重新发送。缓存会被保留。概述和示例请参阅 DNS。

参数类型描述
serversmulti { servers: address (flags=46v) }Upstream DNS servers, IPv4 or IPv6 addresses, optionally with @<vrf> to reach a server in another VRF. The router tries these servers before dynamic-servers, in the listed order. It waits query-server-timeout for an answer and then tries the next server. When a server answers, the router keeps using it for later queries.
use-doh-serverstringDNS over HTTPS(DoH)服务器的 URL,例如 https://cloudflare-dns.com/dns-query。设置后,路由器会通过一条复用的 HTTPS 连接(TCP 端口 443)将每个查询发送到该服务器,而 servers 和 dynamic-servers 仅用于查找 DoH 服务器的主机名(通过 UDP 端口 53 查询 A 和 AAAA);该主机名的静态条目也可以使用。路由器不会回退到普通 DNS:当 DoH 服务器不应答时,客户端会在 query-total-timeout 后收到 SERVFAIL,日志会显示 dns,error DoH server connection error: ...,例如 Connection refused 或 timeout connecting。静态 FWD 条目仍通过普通 DNS 使用自己的服务器。只能设置一个 DoH 服务器。ARM64 和 x86 设备(包括 CHR)使用 HTTP/2;其他架构使用 HTTP/1.1,因此要求 HTTP/2 的 DoH 服务(例如 Quad9)仅在 ARM64 和 x86 上工作。默认值:空。
verify-doh-certbool路由器是否根据 /certificate 和内置信任存储验证 DoH 服务器的证书。默认值:no。
doh-max-server-connectionsnum到 DoH 服务器的最大 HTTPS 连接数。默认值:5。
doh-max-concurrent-queriesnum同时进行中的最大 DoH 查询数。默认值:50。
doh-timeouttime路由器等待 DoH 服务器应答的时长。默认值:5s。
allow-remote-requestsbool路由器是否在其地址的 UDP 和 TCP 端口 53 上应答其他设备的 DNS 查询。设置为 no 时,仅路由器自身使用解析器。默认防火墙会丢弃来自 WAN 侧的连接;仅允许来自自有网络的端口 53,这样路由器就不会应答来自互联网的查询。默认值:no。
max-udp-packet-sizenum通过 UDP 传输的 DNS 消息最大大小,以字节为单位。默认值:4096。
query-server-timeouttime路由器在尝试下一个上游服务器之前,等待一个上游服务器应答的时长。默认值:2s。
query-total-timeouttime路由器尝试解析一个查询的总时长。如果在此时间内没有服务器应答,客户端会收到 SERVFAIL 应答。请根据 query-server-timeout 和服务器数量设置此值。默认值:10s。
max-concurrent-queriesnum同时等待上游应答的最大查询数。达到限制时,路由器会丢弃新查询(包括本可从缓存应答的查询),直到有等待中的查询完成。默认值:100。
max-concurrent-tcp-sessionsnum同时来自客户端的最大 TCP 连接数。默认值:20。
cache-sizenumDNS 缓存的大小,单位为 KiB。广告列表条目也会保存在缓存中。默认值:2048。
cache-max-ttltime路由器将上游应答保留在缓存中的最长时间。来自上游服务器的更长 TTL 会被缩短为此值,客户端会获得剩余时间。静态条目保留自己的 ttl。默认值:1w。
address-list-extra-timetime在路由器移除由带 address-list 的静态条目创建的动态地址列表条目前,添加到应答 TTL 的时间。默认值:0s。
vrfenum当 allow-remote-requests=yes 时,解析器应答客户端所在的 VRF。其他 VRF 中的客户端不会收到应答;路由器自身的查找仍可工作。不带 VRF 后缀的上游服务器通过主路由表访问;要访问其他 VRF 中的服务器,请在 servers 中将其写为 address@vrf,例如 servers=10.0.0.1@vrf1,1.1.1.1。默认值:main。
mdns-repeat-ifacesmulti { iface_enum }路由器在其间重复组播 DNS(mDNS)的接口。路由器在每个列出的接口上接收 IPv4 mDNS 数据包(UDP 端口 5353 发往 224.0.0.251),并从自己在其他列出接口上的地址再次发送,从而使不同网络中的设备能够相互发现。IPv6 mDNS(ff02::fb)不会被重复。路由器自行处理这些数据包,因此它们会经过防火墙的 input 链:input 规则不得在这些接口上丢弃 UDP 端口 5353(默认防火墙在 LAN 接口上接受它)。请使用承载组播的接口,例如以太网、VLAN、网桥或 EoIP 接口;WireGuard 等三层隧道不承载组播。默认值:空(不重复)。
只读参数类型描述
dynamic-serversmulti { dynamic-servers: address (flags=46v) }从其他服务学习到的 DNS 服务器,例如通过 use-peer-dns=yes 从 DHCP 客户端学习。路由器在 servers 之后尝试它们。
cache-usednum正在使用的 cache-size 部分,单位为 KiB。