diff --git a/config/config.go b/config/config.go index f8d0dfd7e..3218bdb56 100644 --- a/config/config.go +++ b/config/config.go @@ -251,6 +251,8 @@ func ParseRawConfig(rawCfg *RawConfig) (*Config, error) { return nil, err } config.General = general + //TODO 暂未使用 + config.Tun = &rawCfg.Tun proxies, providers, err := parseProxies(rawCfg) if err != nil { diff --git a/hub/executor/executor.go b/hub/executor/executor.go index 350609ac9..877214d5e 100644 --- a/hub/executor/executor.go +++ b/hub/executor/executor.go @@ -114,7 +114,7 @@ func GetGeneral() *config.General { func updateExperimental(c *config.Config) {} func updateDNS(c *config.DNS, general *config.General) { - if !c.Enable { + if !c.Enable && !general.Tun.Enable { resolver.DefaultResolver = nil resolver.MainResolver = nil resolver.DefaultHostMapper = nil @@ -158,13 +158,15 @@ func updateDNS(c *config.DNS, general *config.General) { resolver.DefaultLocalServer = nil } - if err := dns.ReCreateServer(c.Listen, r, m); err != nil { - log.Errorln("Start DNS server error: %s", err.Error()) - return - } + if c.Enable { + if err := dns.ReCreateServer(c.Listen, r, m); err != nil { + log.Errorln("Start DNS server error: %s", err.Error()) + return + } - if c.Listen != "" { - log.Infoln("DNS server listening at: %s", c.Listen) + if c.Listen != "" { + log.Infoln("DNS server listening at: %s", c.Listen) + } } }