hide:
SmartDNS提供了多种查询方式,目前支持的有,UDP、TCP、DOT、DOH、DOQ、DOH3,这些查询协议在性能,安全性上各有优缺点,可按需配置使用, 下表是几个协议的说明
配置参数|协议|性能|安全|公共服务器数量|说明 --|--|--|--|--|-- server|UDP|极好|差|多|通过UDP协议查询,0-RTT可以查询到结果,但安全性无保障。 server-tcp|TCP|好|差|多|通过TCP协议查询,需要三次握手,安全性也也不保证,主要用于UDP查询失败时的后备。 server-tls|DOT|一般|好|一般|通过TLS查询,需要TCP的三次握手和TLS的协议握手,性能差,但安全性有保障。 server-https|DOH|一般|好|一般|通过HTTPS查询,在TLS的基础上通过HTTP协议查询,好处是能使用现有的HTTP协议,兼容性好。 server-quic|DOQ|极好|好|非常少|通过Quic查询,性能,安全都有保障,但目前公共的服务器较少。 server-h3|DOH3|好|好|非常少|在Quic上增加HTTP协议,性能好,兼容性好,但目前公共服务器较少。
通过server参数配置,例子如下:
# 常规配置
server 1.1.1.1
# URI形式的配置
server udp://1.1.1.1
# -g设置server分组,-g可以支持多个,可以同时归属多个分组
server 1.1.1.1 -g group1 -g group2
# -e|-exclude-default-group 将服务器从默认组中排除
server 1.1.1.1 -e -g office
常见参数说明:
-g|-group: 设置服务器所属的域名组,配合nameserver /domain/group,可实现对应域名使用指定的服务器查询,一个服务器可归属多个域名组,-g参数可以重复出现。-e|-exclude-default-group: 从默认组中排除,所有上游服务器默认都会加入默认组,所有未设置分组的域名,都会使用默认组查询,为避免域名泄漏,可以设置此参数。-proxy: 设置使用代理进行查询,配合proxy-server使用-b|-bootstrap-dns: 设置DNS为bootstrap DNS,仅在解析域名类服务器的时候使用,如果为配置bootstrap-dns,系统将自动使用IP类的服务器子自解析域名。-interface: 使用指定的端口进行查询。其他更多参数,请查看配置参数说明。
通过server-tcp配置tcp服务器,其基本参数和udp服务器一致,例子如下:
# 常规配置
server-tcp 1.1.1.1
# URI形式的配置
server tcp://1.1.1.1
# 设置TCP链接超时时间。
server-tcp 1.1.1.1 -tcp-keepalive 30
常见参数说明:
-tcp-keepalive: 设置tcp连接空闲超时时间,单位秒,取决于服务器。通过server-tls配置tls服务器,其基本参数和tcp服务器一致,例子如下:
# 常规配置
server-tls 1.1.1.1
# 预先指定服务器IP,避免域名解析
server-tls dns.google -host-ip 8.8.4.4
# 校验远端服务器证书的SAN字段的域名是否合法。
server-tls dns.google -tls-host-verify dns.google
# 设置TLS中SNI的主机名称。
server-tls 8.8.8.8 -host-name dns.google
# 校验spki-pin
server-tls 8.8.8.8 -spki-pin 3N9hMehDPwrM/PgifVYFZV4c3+H+GAKmhBDAtdoPgtA=
# 不校验证书是否合法
server-tls 8.8.8.8 -k
常见参数说明:
-host-ip: 强制设置对应服务器域名的IP地址,避免进行二次解析。-tls-host-verify: 校验证书中的SAN域名,CN域名是否合法。-host-name: 强制指定TLS证书的SNI名称,-表示不发送SNI名称。-spki-pin: 另外一种服务器合法性校验的方式,无需证书链。-k|-no-check-certificate: 不校验证书是否合法,非特殊场景不建议使用,这会导致协议不安全。通过server-https配置https服务器,其基本参数和tls服务器一致,例子如下:
# 常规配置
server-https https://dns.google/dns-query
# 指定HTTP协议的主机信息
server-https 8.8.8.8 -host-name dns.google -http-host dns.google
常见参数说明:
-http-host: 强制设置HTTP协议中的HOST字段,默认情况下,此值复制配置的上游服务器参数。通过server-quic配置DoQ服务器,其基本参数和tls服务器一致,例子如下:
# 常规配置
server-quic 223.5.5.5
常见参数说明:
通过server-h3配置DoH3服务器,其基本参数和https服务器一致,例子如下:
# 常规配置
server-h3 h3://dns.alidns.com/dns-query
# 另外一种兼容写法
server-http3 http3://dns-unfiltered.adguard.com/dns-query
常见参数说明: