diff --git a/config/config.go b/config/config.go index 68863271..6cc4e927 100644 --- a/config/config.go +++ b/config/config.go @@ -1408,6 +1408,9 @@ func parseDNS(rawCfg *RawConfig, ruleProviders map[string]P.RuleProvider) (*DNS, if dnsCfg.ProxyServerPolicy, err = parseNameServerPolicy(cfg.ProxyServerNameserverPolicy, ruleProviders, false, cfg.PreferH3); err != nil { return nil, err } + if len(dnsCfg.ProxyServerPolicy) != 0 && len(dnsCfg.ProxyServerNameserver) == 0 { + return nil, errors.New("disallow empty `proxy-server-nameserver` when `proxy-server-nameserver-policy` is set") + } if dnsCfg.DirectNameServer, err = parseNameServer(cfg.DirectNameServer, false, cfg.PreferH3); err != nil { return nil, err diff --git a/docs/config.yaml b/docs/config.yaml index 190d1690..9e3bbcf1 100644 --- a/docs/config.yaml +++ b/docs/config.yaml @@ -320,7 +320,7 @@ dns: # proxy-server-nameserver: # - https://doh.pub/dns-query # - tls://223.5.5.5:853 - # proxy-server-nameserver-policy: # 格式同nameserver-policy,仅用于节点域名解析 + # proxy-server-nameserver-policy: # 格式同nameserver-policy,仅用于节点域名解析,当且仅当proxy-server-nameserver不为空时生效 # 'www.yournode.com': '114.114.114.114' # 专用于direct出口域名解析的 DNS 服务器,非必要配置项,如果不填则遵循nameserver-policy、nameserver和fallback的配置