强化domainSpecificDNS逻辑,增加DNS后缀功能
This commit is contained in:
@@ -19,7 +19,12 @@
|
||||
"saveInterval": 300,
|
||||
"cacheTTL": 10,
|
||||
"enableDNSSEC": true,
|
||||
"queryMode": "parallel"
|
||||
"queryMode": "parallel",
|
||||
"domainSpecificDNS": {
|
||||
"amazehome.xyz": ["10.35.10.200:53"],
|
||||
"amazehome.cn": ["10.35.10.200:53"]
|
||||
},
|
||||
"prefixDomain": ["amazehome.xyz", "amazehome.cn"]
|
||||
},
|
||||
"http": {
|
||||
"port": 8080,
|
||||
|
||||
@@ -5,17 +5,26 @@ import (
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
// DomainSpecificDNS 域名特定DNS服务器配置
|
||||
// 格式:{"domainMatch": ["dns1", "dns2"]}
|
||||
// domainMatch: 域名匹配字符串,当域名中包含该字符串时使用对应的DNS服务器
|
||||
// dns1, dns2: 用于解析匹配域名的DNS服务器列表
|
||||
|
||||
type DomainSpecificDNS map[string][]string
|
||||
|
||||
// DNSConfig DNS配置
|
||||
type DNSConfig struct {
|
||||
Port int `json:"port"`
|
||||
UpstreamDNS []string `json:"upstreamDNS"`
|
||||
DNSSECUpstreamDNS []string `json:"dnssecUpstreamDNS"` // 用于DNSSEC查询的专用服务器
|
||||
Timeout int `json:"timeout"`
|
||||
StatsFile string `json:"statsFile"` // 统计数据持久化文件
|
||||
SaveInterval int `json:"saveInterval"` // 数据保存间隔(秒)
|
||||
CacheTTL int `json:"cacheTTL"` // DNS缓存过期时间(分钟)
|
||||
EnableDNSSEC bool `json:"enableDNSSEC"` // 是否启用DNSSEC支持
|
||||
QueryMode string `json:"queryMode"` // 查询模式:"loadbalance"(负载均衡)、"parallel"(并行请求)、"fastest-ip"(最快的IP地址)
|
||||
Port int `json:"port"`
|
||||
UpstreamDNS []string `json:"upstreamDNS"`
|
||||
DNSSECUpstreamDNS []string `json:"dnssecUpstreamDNS"` // 用于DNSSEC查询的专用服务器
|
||||
Timeout int `json:"timeout"`
|
||||
StatsFile string `json:"statsFile"` // 统计数据持久化文件
|
||||
SaveInterval int `json:"saveInterval"` // 数据保存间隔(秒)
|
||||
CacheTTL int `json:"cacheTTL"` // DNS缓存过期时间(分钟)
|
||||
EnableDNSSEC bool `json:"enableDNSSEC"` // 是否启用DNSSEC支持
|
||||
QueryMode string `json:"queryMode"` // 查询模式:"loadbalance"(负载均衡)、"parallel"(并行请求)、"fastest-ip"(最快的IP地址)
|
||||
DomainSpecificDNS DomainSpecificDNS `json:"domainSpecificDNS"` // 域名特定DNS服务器配置
|
||||
PrefixDomain []string `json:"prefixDomain"` // 搜索域名前缀列表,对应/etc/resolv.conf中的search domain
|
||||
}
|
||||
|
||||
// HTTPConfig HTTP控制台配置
|
||||
@@ -106,6 +115,14 @@ func LoadConfig(path string) (*Config, error) {
|
||||
if config.DNS.QueryMode == "" {
|
||||
config.DNS.QueryMode = "parallel" // 默认使用并行请求模式
|
||||
}
|
||||
// 域名特定DNS服务器配置默认值
|
||||
if config.DNS.DomainSpecificDNS == nil {
|
||||
config.DNS.DomainSpecificDNS = make(DomainSpecificDNS) // 默认为空映射
|
||||
}
|
||||
// PrefixDomain默认值处理
|
||||
if config.DNS.PrefixDomain == nil {
|
||||
config.DNS.PrefixDomain = []string{} // 默认为空切片
|
||||
}
|
||||
if config.HTTP.Port == 0 {
|
||||
config.HTTP.Port = 8080
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# Netscape HTTP Cookie File
|
||||
# https://curl.se/docs/http-cookies.html
|
||||
# This file was generated by libcurl! Edit at your own risk.
|
||||
|
||||
#HttpOnly_localhost FALSE / FALSE 1765974335 session_id 1765887935065810022_0
|
||||
@@ -1,3 +0,0 @@
|
||||
# Hosts文件
|
||||
# 格式:IP 域名
|
||||
# 例如:127.0.0.1 localhost
|
||||
140002
data/querylog.json
140002
data/querylog.json
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,734 +0,0 @@
|
||||
!Title: AWAvenue Ads Rule
|
||||
!--------------------------------------
|
||||
!Total lines: 725
|
||||
!Version: 1.5.5-release
|
||||
|
||||
!Homepage: https://github.com/TG-Twilight/AWAvenue-Ads-Rule
|
||||
!License: https://github.com/TG-Twilight/AWAvenue-Ads-Rule/blob/main/LICENSE
|
||||
|
||||
|
||||
||1010pic.com^
|
||||
||16dd-advertise-1252317822.file.myqcloud.com^
|
||||
||16dd-advertise-1252317822.image.myqcloud.com^
|
||||
||8le8le.com^
|
||||
||a0.app.xiaomi.com^
|
||||
||aaid.umeng.com^
|
||||
||abtest-ch.snssdk.com^
|
||||
||ad-cache.dopool.com^
|
||||
||ad-cdn.qingting.fm^
|
||||
||ad-cmp.hismarttv.com^
|
||||
||ad-download.hismarttv.com^
|
||||
||ad-imp.hismarttv.com^
|
||||
||ad-scope.com^
|
||||
||ad-scope.com.cn^
|
||||
||ad-sdk-config.youdao.com^
|
||||
||ad-sdk.huxiu.com^
|
||||
||ad.12306.cn^
|
||||
||ad.51wnl.com^
|
||||
||ad.bwton.com^
|
||||
||ad.cctv.com^
|
||||
||ad.cyapi.cn^
|
||||
||ad.doubleclick.net^
|
||||
||ad.partner.gifshow.com^
|
||||
||ad.qingting.fm^
|
||||
||ad.qq.com^
|
||||
||ad.richmob.cn^
|
||||
||ad.tencentmusic.com^
|
||||
||ad.toutiao.com^
|
||||
||ad.v3mh.com^
|
||||
||ad.winrar.com.cn^
|
||||
||ad.xelements.cn^
|
||||
||ad.xiaomi.com^
|
||||
||ad.ximalaya.com^
|
||||
||ad.zijieapi.com^
|
||||
||adapi.izuiyou.com^
|
||||
||adapi.yynetwk.com^
|
||||
||adashbc.ut.taobao.com^
|
||||
||adc.hpplay.cn^
|
||||
||adcdn.hpplay.cn^
|
||||
||adcdn.tencentmusic.com^
|
||||
||adclick.g.doubleclick.net^
|
||||
||adclick.tencentmusic.com^
|
||||
||adcolony.com^
|
||||
||adexpo.tencentmusic.com^
|
||||
||adfilter.imtt.qq.com^
|
||||
||adfstat.yandex.ru^
|
||||
||adguanggao.eee114.com^
|
||||
||adjust.cn^
|
||||
||adjust.com^
|
||||
||adkwai.com^
|
||||
||adlink-api.huan.tv^
|
||||
||adm.funshion.com^
|
||||
||ads-api-o.api.leiniao.com^
|
||||
||ads-api.tiktok.com^
|
||||
||ads-api.twitter.com^
|
||||
||ads-img-qc.xhscdn.com^
|
||||
||ads-jp.tiktok.com^
|
||||
||ads-marketing-vivofs.vivo.com.cn^
|
||||
||ads-sg.tiktok.com^
|
||||
||ads-us.tiktok.com^
|
||||
||ads-video-al.xhscdn.com^
|
||||
||ads-video-qc.xhscdn.com^
|
||||
||ads.95516.com^
|
||||
||ads.google.cn^
|
||||
||ads.heytapmobi.com^
|
||||
||ads.huan.tv^
|
||||
||ads.huantest.com^
|
||||
||ads.icloseli.cn^
|
||||
||ads.linkedin.com^
|
||||
||ads.music.126.net^
|
||||
||ads.oppomobile.com^
|
||||
||ads.pinterest.com^
|
||||
||ads.servebom.com^
|
||||
||ads.service.kugou.com^
|
||||
||ads.tiktok.com^
|
||||
||ads.v3mh.com^
|
||||
||ads.youtube.com^
|
||||
||ads3-normal-hl.zijieapi.com^
|
||||
||ads3-normal-lf.zijieapi.com^
|
||||
||ads3-normal-lq.zijieapi.com^
|
||||
||ads3-normal.zijieapi.com^
|
||||
||ads5-normal-hl.zijieapi.com^
|
||||
||ads5-normal-lf.zijieapi.com^
|
||||
||ads5-normal-lq.zijieapi.com^
|
||||
||ads5-normal.zijieapi.com^
|
||||
||adse.test.ximalaya.com^
|
||||
||adse.wsa.ximalaya.com^
|
||||
||adse.ximalaya.com^
|
||||
||adsebs.ximalaya.com^
|
||||
||adsense.google.cn^
|
||||
||adserver.unityads.unity3d.com^
|
||||
||adservice.google.cn^
|
||||
||adservice.google.com^
|
||||
||adserviceretry.kugou.com^
|
||||
||adsfile.bssdlbig.kugou.com^
|
||||
||adsfile.qq.com^
|
||||
||adsfilebssdlbig.ali.kugou.com^
|
||||
||adsfileretry.service.kugou.com^
|
||||
||adsfs-sdkconfig.heytapimage.com^
|
||||
||adsfs.oppomobile.com^
|
||||
||adslvfile.qq.com^
|
||||
||adsmart.konka.com^
|
||||
||adsmind.gdtimg.com^
|
||||
||adsmind.ugdtimg.com^
|
||||
||adsp.xunlei.com^
|
||||
||adstats.tencentmusic.com^
|
||||
||adstore-1252524079.file.myqcloud.com^
|
||||
||adstore-index-1252524079.file.myqcloud.com^
|
||||
||adtago.s3.amazonaws.com^
|
||||
||adtech.yahooinc.com^
|
||||
||adtrack.quark.cn^
|
||||
||adukwai.com^
|
||||
||adv.fjtv.net^
|
||||
||adv.sec.intl.miui.com^
|
||||
||adv.sec.miui.com^
|
||||
||advertiseonbing.azureedge.net^
|
||||
||advertising-api-eu.amazon.com^
|
||||
||advertising-api-fe.amazon.com^
|
||||
||advertising-api.amazon.com^
|
||||
||advertising.apple.com^
|
||||
||advertising.yahoo.com^
|
||||
||advertising.yandex.ru^
|
||||
||advice-ads.s3.amazonaws.com^
|
||||
||adview.cn^
|
||||
||adx-ad.smart-tv.cn^
|
||||
||adx-bj.anythinktech.com^
|
||||
||adx-cn.anythinktech.com^
|
||||
||adx-drcn.op.dbankcloud.cn^
|
||||
||adx-open-service.youku.com^
|
||||
||adx-os.anythinktech.com^
|
||||
||adx.ads.heytapmobi.com^
|
||||
||adx.ads.oppomobile.com^
|
||||
||adxlog-adnet.vivo.com.cn^
|
||||
||adxlog-adnet.vivo.com.cn.dsa.dnsv1.com.cn^
|
||||
||adxserver.ad.cmvideo.cn^
|
||||
||aegis.qq.com^
|
||||
||afs.googlesyndication.com^
|
||||
||aiseet.aa.atianqi.com^
|
||||
||ali-ad.a.yximgs.com^
|
||||
||alog.umeng.com^
|
||||
||als.baidu.com^
|
||||
||amdcopen.m.taobao.com^
|
||||
||amdcopen.m.umeng.com^
|
||||
||an.facebook.com^
|
||||
||analysis.yozocloud.cn^
|
||||
||analytics-api.samsunghealthcn.com^
|
||||
||analytics.126.net^
|
||||
||analytics.95516.com^
|
||||
||analytics.google.com^
|
||||
||analytics.pinterest.com^
|
||||
||analytics.pointdrive.linkedin.com^
|
||||
||analytics.query.yahoo.com^
|
||||
||analytics.rayjump.com^
|
||||
||analytics.s3.amazonaws.com^
|
||||
||analytics.tiktok.com^
|
||||
||analytics.woozooo.com^
|
||||
||analyticsengine.s3.amazonaws.com^
|
||||
||analyze.lemurbrowser.com^
|
||||
||andrqd.play.aiseet.atianqi.com^
|
||||
||ap.dongqiudi.com^
|
||||
||apd-pcdnwxlogin.teg.tencent-cloud.net^
|
||||
||apd-pcdnwxnat.teg.tencent-cloud.net^
|
||||
||apd-pcdnwxstat.teg.tencent-cloud.net^
|
||||
||api-access.pangolin-sdk-toutiao.com^
|
||||
||api-access.pangolin-sdk-toutiao1.com^
|
||||
||api-access.pangolin-sdk-toutiao2.com^
|
||||
||api-access.pangolin-sdk-toutiao3.com^
|
||||
||api-access.pangolin-sdk-toutiao4.com^
|
||||
||api-access.pangolin-sdk-toutiao5.com^
|
||||
||api-ad-product.huxiu.com^
|
||||
||api-adservices.apple.com^
|
||||
||api-gd.hiaiabc.com^
|
||||
||api-htp.beizi.biz^
|
||||
||api.ad.xiaomi.com^
|
||||
||api.e.kuaishou.com^
|
||||
||api.htp.hubcloud.com.cn^
|
||||
||api.hzsanjiaomao.com^
|
||||
||api.installer.xiaomi.com^
|
||||
||api.jietuhb.com^
|
||||
||api.kingdata.ksyun.com^
|
||||
||api.statsig.com^
|
||||
||api5-normal-quic-lf.ixigua.com^
|
||||
||apiyd.my91app.com^
|
||||
||apks.webxiaobai.top^
|
||||
||app-measurement.com^
|
||||
||appcloud2.in.zhihu.com^
|
||||
||applog.lc.quark.cn^
|
||||
||applog.uc.cn^
|
||||
||applog.zijieapi.com^
|
||||
||ata-sdk-uuid-report.dreport.meituan.net^
|
||||
||auction.unityads.unity3d.com^
|
||||
||audid-api.taobao.com^
|
||||
||audid.umeng.com^
|
||||
||azr.footprintdns.com^
|
||||
||b1-data.ads.heytapmobi.com^
|
||||
||baichuan-sdk.alicdn.com^
|
||||
||baichuan-sdk.taobao.com^
|
||||
||bdad.123pan.cn^
|
||||
||bdapi-ads.realmemobile.com^
|
||||
||bdapi-in-ads.realmemobile.com^
|
||||
||bdapi.ads.oppomobile.com^
|
||||
||beacon-api.aliyuncs.com^
|
||||
||beacon.qq.com^
|
||||
||beaconcdn.qq.com^
|
||||
||beacons.gvt2.com^
|
||||
||beizi.biz^
|
||||
||bes-mtj.baidu.com^
|
||||
||bgg.baidu.com^
|
||||
||bianxian.com^
|
||||
||bingads.microsoft.com^
|
||||
||bj.ad.track.66mobi.com^
|
||||
||books-analytics-events.apple.com^
|
||||
||browsercfg-drcn.cloud.dbankcloud.cn^
|
||||
||bsrv.qq.com^
|
||||
||bugly.qq.com^
|
||||
||business-api.tiktok.com^
|
||||
||c.bidtoolads.com^
|
||||
||c.evidon.com^
|
||||
||c.gj.qq.com^
|
||||
||c.kuaiduizuoye.com^
|
||||
||c.sayhi.360.cn^
|
||||
||c2.gdt.qq.com^
|
||||
||canvas-cdn.gdt.qq.com^
|
||||
||catalog.fjwhcbsh.com^
|
||||
||cbjs.baidu.com^
|
||||
||ccs.umeng.com^
|
||||
||cctv.adsunion.com^
|
||||
||cdn-ad.wtzw.com^
|
||||
||cdn-ads.oss-cn-shanghai.aliyuncs.com^
|
||||
||cdn-plugin-sync-upgrade-juui.hismarttv.com^
|
||||
||cdn.ad.xiaomi.com^
|
||||
||cdn.ynuf.aliapp.org^
|
||||
||cfg.imtt.qq.com^
|
||||
||chat1.jd.com^
|
||||
||chiq-cloud.com^
|
||||
||cj.qidian.com^
|
||||
||ck.ads.oppomobile.com^
|
||||
||click.googleanalytics.com^
|
||||
||click.oneplus.cn^
|
||||
||clog.miguvideo.com^
|
||||
||cnlogs.umeng.com^
|
||||
||cnlogs.umengcloud.com^
|
||||
||cnzz.com^
|
||||
||collect.kugou.com^
|
||||
||commdata.v.qq.com^
|
||||
||config.chsmarttv.com^
|
||||
||config.unityads.unity3d.com^
|
||||
||cpro.baidustatic.com^
|
||||
||crashlytics.com^
|
||||
||crashlyticsreports-pa.googleapis.com^
|
||||
||csjplatform.com^
|
||||
||cws-cctv.conviva.com^
|
||||
||data.ads.oppomobile.com^
|
||||
||data.chsmarttv.com^
|
||||
||data.mistat.india.xiaomi.com^
|
||||
||data.mistat.rus.xiaomi.com^
|
||||
||data.mistat.xiaomi.com^
|
||||
||diagnosis.ad.xiaomi.com^
|
||||
||dig.bdurl.net^
|
||||
||dl.zuimeitianqi.com^
|
||||
||dlogs.bwton.com^
|
||||
||dm.toutiao.com^
|
||||
||domain.aishengji.com^
|
||||
||doubleclick-cn.net^
|
||||
||download.changhong.upgrade2.huan.tv^
|
||||
||downloadxml.changhong.upgrade2.huan.tv^
|
||||
||drcn-weather.cloud.huawei.com^
|
||||
||dsp-x.jd.com^
|
||||
||dsp.fcbox.com^
|
||||
||dualstack-logs.amap.com^
|
||||
||dutils.com^
|
||||
||dxp.baidu.com^
|
||||
||e.ad.xiaomi.com^
|
||||
||eclick.baidu.com^
|
||||
||edge.ads.twitch.tv^
|
||||
||ef-dongfeng.tanx.com^
|
||||
||entry.baidu.com^
|
||||
||errlog.umeng.com^
|
||||
||errnewlog.umeng.com^
|
||||
||event.tradplusad.com^
|
||||
||events-drcn.op.dbankcloud.cn^
|
||||
||events.reddit.com^
|
||||
||events.redditmedia.com^
|
||||
||firebaselogging-pa.googleapis.com^
|
||||
||flurry.com^
|
||||
||g-adnet.hiaiabc.com^
|
||||
||g-staic.ganjingworld.com^
|
||||
||g2.ganjing.world^
|
||||
||game.loveota.com^
|
||||
||gdfp.gifshow.com^
|
||||
||gemini.yahoo.com^
|
||||
||geo.yahoo.com^
|
||||
||getui.cn^
|
||||
||getui.com^
|
||||
||getui.net^
|
||||
||ggx.cmvideo.cn^
|
||||
||ggx01.miguvideo.com^
|
||||
||ggx03.miguvideo.com^
|
||||
||globalapi.ad.xiaomi.com^
|
||||
||google-analytics.com^
|
||||
||googleads.g.doubleclick.net^
|
||||
||googleadservices-cn.com^
|
||||
||googleadservices.com^
|
||||
||googletagservices-cn.com^
|
||||
||googletagservices.com^
|
||||
||gorgon.youdao.com^
|
||||
||gromore.pangolin-sdk-toutiao.com^
|
||||
||grs.dbankcloud.com^
|
||||
||grs.hicloud.com^
|
||||
||grs.platform.dbankcloud.ru^
|
||||
||h-adashx.ut.taobao.com^
|
||||
||h.trace.qq.com^
|
||||
||hanlanad.com^
|
||||
||hexagon-analytics.com^
|
||||
||hm.baidu.com^
|
||||
||hmma.baidu.com^
|
||||
||houyi.kkmh.com^
|
||||
||hpplay.cn^
|
||||
||httpdns.bcelive.com^
|
||||
||httpdns.ocloud.oppomobile.com^
|
||||
||hugelog.fcbox.com^
|
||||
||huichuan.sm.cn^
|
||||
||hw-ot-ad.a.yximgs.com^
|
||||
||hw.zuimeitianqi.com^
|
||||
||hwpub-s01-drcn.cloud.dbankcloud.cn^
|
||||
||hya.comp.360os.com^
|
||||
||hybrid.miniapp.taobao.com^
|
||||
||hye.comp.360os.com^
|
||||
||hyt.comp.360os.com^
|
||||
||i.snssdk.com^
|
||||
||iad.apple.com^
|
||||
||iadctest.qwapi.com^
|
||||
||iadsdk.apple.com^
|
||||
||iadworkbench.apple.com^
|
||||
||ifacelog.iqiyi.com^
|
||||
||ifs.tanx.com^
|
||||
||igexin.com^
|
||||
||ii.gdt.qq.com^
|
||||
||imag8.pubmatic.com^
|
||||
||imag86.pubmatic.com^
|
||||
||image-ad.sm.cn^
|
||||
||imageplus.baidu.com^
|
||||
||images.outbrainimg.com^
|
||||
||images.pinduoduo.com^
|
||||
||img-c.heytapimage.com^
|
||||
||img.adnyg.com^
|
||||
||img.adnyg.com.w.kunlungr.com^
|
||||
||imtmp.net^
|
||||
||iot-eu-logser.realme.com^
|
||||
||iot-logser.realme.com^
|
||||
||ipv4.kkmh.com^
|
||||
||irc.qubiankeji.com^
|
||||
||itv2-up.openspeech.cn^
|
||||
||ixav-cse.avlyun.com^
|
||||
||iyfbodn.com^
|
||||
||janapi.jd.com^
|
||||
||jiguang.cn^
|
||||
||jpush.cn^
|
||||
||jpush.html5.qq.com^
|
||||
||jpush.io^
|
||||
||jswebcollects.kugou.com^
|
||||
||kepler.jd.com^
|
||||
||kl.67it.com^
|
||||
||knicks.jd.com^
|
||||
||ks.pull.yximgs.com^
|
||||
||launcher.smart-tv.cn^
|
||||
||launcherimg.smart-tv.cn^
|
||||
||lf3-ad-union-sdk.pglstatp-toutiao.com^
|
||||
||lf6-ad-union-sdk.pglstatp-toutiao.com^
|
||||
||litchiads.com^
|
||||
||liveats-vod.video.ptqy.gitv.tv^
|
||||
||livemonitor.huan.tv^
|
||||
||livep.l.aiseet.atianqi.com^
|
||||
||lives.l.aiseet.atianqi.com^
|
||||
||lives.l.ott.video.qq.com^
|
||||
||lm10111.jtrincc.cn^
|
||||
||log-api-mn.huxiu.com^
|
||||
||log-api.huxiu.com^
|
||||
||log-api.pangolin-sdk-toutiao-b.com^
|
||||
||log-api.pangolin-sdk-toutiao.com^
|
||||
||log-report.com^
|
||||
||log-sdk.gifshow.com^
|
||||
||log-upload-os.hoyoverse.com^
|
||||
||log-upload.mihoyo.com^
|
||||
||log.ad.xiaomi.com^
|
||||
||log.aispeech.com^
|
||||
||log.amemv.com^
|
||||
||log.appstore3.huan.tv^
|
||||
||log.avlyun.com^
|
||||
||log.avlyun.sec.intl.miui.com^
|
||||
||log.byteoversea.com^
|
||||
||log.fc.yahoo.com^
|
||||
||log.kuwo.cn^
|
||||
||log.pinterest.com^
|
||||
||log.snssdk.com^
|
||||
||log.stat.kugou.com^
|
||||
||log.tagtic.cn^
|
||||
||log.tbs.qq.com^
|
||||
||log.vcgame.cn^
|
||||
||log.web.kugou.com^
|
||||
||log.zijieapi.com^
|
||||
||log1.cmpassport.com^
|
||||
||logbak.hicloud.com^
|
||||
||logs.amap.com^
|
||||
||logservice.hicloud.com^
|
||||
||logservice1.hicloud.com^
|
||||
||logtj.kugou.com^
|
||||
||logupdate.avlyun.sec.miui.com^
|
||||
||m-adnet.hiaiabc.com^
|
||||
||m.ad.zhangyue.com^
|
||||
||m.atm.youku.com^
|
||||
||m.kubiqq.com^
|
||||
||m1.ad.10010.com^
|
||||
||mapi.m.jd.com^
|
||||
||masdkv6.3g.qq.com^
|
||||
||mazu.m.qq.com^
|
||||
||mbdlog.iqiyi.com^
|
||||
||metrics.apple.com^
|
||||
||metrics.data.hicloud.com^
|
||||
||metrics.icloud.com^
|
||||
||metrics.mzstatic.com^
|
||||
||metrics2.data.hicloud.com^
|
||||
||metrika.yandex.ru^
|
||||
||mi.gdt.qq.com^
|
||||
||miav-cse.avlyun.com^
|
||||
||mime.baidu.com^
|
||||
||mine.baidu.com^
|
||||
||mission-pub.smart-tv.cn^
|
||||
||miui-fxcse.avlyun.com^
|
||||
||mnqlog.ldmnq.com^
|
||||
||mobads-logs.baidu.com^
|
||||
||mobads-pre-config.cdn.bcebos.com^
|
||||
||mobads.baidu.com^
|
||||
||mobile.da.mgtv.com^
|
||||
||mobilelog.upqzfile.com^
|
||||
||mobileservice.cn^
|
||||
||mon.zijieapi.com^
|
||||
||monitor-ads-test.huan.tv^
|
||||
||monitor-uu.play.aiseet.atianqi.com^
|
||||
||monitor.music.qq.com^
|
||||
||monitor.uu.qq.com^
|
||||
||monsetting.toutiao.com^
|
||||
||mssdk.volces.com^
|
||||
||mssdk.zijieapi.com^
|
||||
||mtj.baidu.com^
|
||||
||newvoice.chiq5.smart-tv.cn^
|
||||
||nmetrics.samsung.com^
|
||||
||notes-analytics-events.apple.com^
|
||||
||nsclick.baidu.com^
|
||||
||o2o.api.xiaomi.com^
|
||||
||oauth-login-drcn.platform.dbankcloud.com^
|
||||
||offerwall.yandex.net^
|
||||
||omgmta.play.aiseet.atianqi.com^
|
||||
||open.e.kuaishou.cn^
|
||||
||open.e.kuaishou.com^
|
||||
||open.kuaishouzt.com^
|
||||
||open.kwaishouzt.com^
|
||||
||open.kwaizt.com^
|
||||
||optimus-ads.amap.com^
|
||||
||orbit.jd.com^
|
||||
||oth.eve.mdt.qq.com^
|
||||
||oth.str.mdt.qq.com^
|
||||
||otheve.play.aiseet.atianqi.com^
|
||||
||outlookads.live.com^
|
||||
||p.l.qq.com^
|
||||
||p.s.360.cn^
|
||||
||p1-be-pack-sign.pglstatp-toutiao.com^
|
||||
||p1-lm.adkwai.com^
|
||||
||p2-be-pack-sign.pglstatp-toutiao.com^
|
||||
||p2-lm.adkwai.com^
|
||||
||p2p.huya.com^
|
||||
||p3-be-pack-sign.pglstatp-toutiao.com^
|
||||
||p3-lm.adkwai.com^
|
||||
||p3-tt.byteimg.com^
|
||||
||p4-be-pack-sign.pglstatp-toutiao.com^
|
||||
||p5-be-pack-sign.pglstatp-toutiao.com^
|
||||
||p6-be-pack-sign.pglstatp-toutiao.com^
|
||||
||pagead2.googleadservices.com^
|
||||
||pagead2.googlesyndication.com^
|
||||
||pangolin-sdk-toutiao-b.com^
|
||||
||pay.sboot.cn^
|
||||
||pgdt.ugdtimg.com^
|
||||
||pglstatp-toutiao.com^
|
||||
||pig.pupuapi.com^
|
||||
||pixon.ads-pixiv.net^
|
||||
||pkoplink.com^
|
||||
||plbslog.umeng.com^
|
||||
||pms.mb.qq.com^
|
||||
||policy.video.ptqy.gitv.tv^
|
||||
||pos.baidu.com^
|
||||
||proxy.advp.apple.com^
|
||||
||public.gdtimg.com^
|
||||
||q.i.gdt.qq.com^
|
||||
||qqdata.ab.qq.com^
|
||||
||qwapi.apple.com^
|
||||
||qzs.gdtimg.com^
|
||||
||recommend-drcn.hms.dbankcloud.cn^
|
||||
||report.tv.kohesport.qq.com^
|
||||
||res.hubcloud.com.cn^
|
||||
||res1.hubcloud.com.cn^
|
||||
||res2.hubcloud.com.cn^
|
||||
||res3.hubcloud.com.cn^
|
||||
||resolve.umeng.com^
|
||||
||review.gdtimg.com^
|
||||
||rms-drcn.platform.dbankcloud.cn^
|
||||
||roi.soulapp.cn^
|
||||
||rpt.gdt.qq.com^
|
||||
||rtb.voiceads.cn^
|
||||
||s.amazon-adsystem.com^
|
||||
||s1.qq.com^
|
||||
||s2.qq.com^
|
||||
||s3.qq.com^
|
||||
||saad.ms.zhangyue.net^
|
||||
||samsung-com.112.2o7.net^
|
||||
||samsungads.com^
|
||||
||sanme2.taisantech.com^
|
||||
||saveu5-normal-lq.zijieapi.com^
|
||||
||scdown.qq.com^
|
||||
||scs.openspeech.cn^
|
||||
||sdk-ab-config.qquanquan.com^
|
||||
||sdk-cache.video.ptqy.gitv.tv^
|
||||
||sdk.1rtb.net^
|
||||
||sdk.beizi.biz^
|
||||
||sdk.cferw.com^
|
||||
||sdk.e.qq.com^
|
||||
||sdk.hzsanjiaomao.com^
|
||||
||sdk.markmedia.com.cn^
|
||||
||sdk.mobads.adwangmai.com^
|
||||
||sdkconf.avlyun.com^
|
||||
||sdkconfig.ad.intl.xiaomi.com^
|
||||
||sdkconfig.ad.xiaomi.com^
|
||||
||sdkconfig.play.aiseet.atianqi.com^
|
||||
||sdkconfig.video.qq.com^
|
||||
||sdkoptedge.chinanetcenter.com^
|
||||
||sdktmp.hubcloud.com.cn^
|
||||
||sdownload.stargame.com^
|
||||
||search.ixigua.com^
|
||||
||search3-search.ixigua.com^
|
||||
||search5-search-hl.ixigua.com^
|
||||
||search5-search.ixigua.com^
|
||||
||securemetrics.apple.com^
|
||||
||securepubads.g.doubleclick.net^
|
||||
||sensors-log.dongqiudi.com^
|
||||
||service.changhong.upgrade2.huan.tv^
|
||||
||service.vmos.cn^
|
||||
||sf16-static.i18n-pglstatp.com^
|
||||
||sf3-fe-tos.pglstatp-toutiao.com^
|
||||
||shouji.sogou.com^
|
||||
||sigmob.cn^
|
||||
||sigmob.com^
|
||||
||skdisplay.jd.com^
|
||||
||slb-p2p.vcloud.ks-live.com^
|
||||
||smad.ms.zhangyue.net^
|
||||
||smart-tv.cn^
|
||||
||smartad.10010.com^
|
||||
||smetrics.samsung.com^
|
||||
||sms.ads.oppomobile.com^
|
||||
||sngmta.qq.com^
|
||||
||snowflake.qq.com^
|
||||
||stat.dongqiudi.com^
|
||||
||stat.y.qq.com^
|
||||
||static.ads-twitter.com^
|
||||
||statics.woozooo.com^
|
||||
||stats.qiumibao.com^
|
||||
||stats.wp.com^
|
||||
||statsigapi.net^
|
||||
||stg-data.ads.heytapmobi.com^
|
||||
||success.ctobsnssdk.com^
|
||||
||syh-imp.cdnjtzy.com^
|
||||
||szbdyd.com^
|
||||
||t-dsp.pinduoduo.com^
|
||||
||t.l.qq.com^
|
||||
||t.track.ad.xiaomi.com^
|
||||
||t002.ottcn.com^
|
||||
||t1.a.market.xiaomi.com^
|
||||
||t2.a.market.xiaomi.com^
|
||||
||t3.a.market.xiaomi.com^
|
||||
||tangram.e.qq.com^
|
||||
||tdc.qq.com^
|
||||
||tdsdk.cpatrk.net^
|
||||
||tdsdk.xdrig.com^
|
||||
||tencent-dtv.m.cn.miaozhen.com^
|
||||
||terms-drcn.platform.dbankcloud.cn^
|
||||
||test.ad.xiaomi.com^
|
||||
||test.e.ad.xiaomi.com^
|
||||
||tj.b.qq.com^
|
||||
||tj.video.qq.com^
|
||||
||tmead.y.qq.com^
|
||||
||tmeadcomm.y.qq.com^
|
||||
||tmfmazu-wangka.m.qq.com^
|
||||
||tmfmazu.m.qq.com^
|
||||
||tmfsdk.m.qq.com^
|
||||
||tmfsdktcpv4.m.qq.com^
|
||||
||tnc3-aliec1.toutiaoapi.com^
|
||||
||tnc3-aliec2.bytedance.com^
|
||||
||tnc3-aliec2.toutiaoapi.com^
|
||||
||tnc3-alisc1.bytedance.com^
|
||||
||tnc3-alisc1.zijieapi.com^
|
||||
||tnc3-alisc2.zijieapi.com^
|
||||
||tnc3-bjlgy.bytedance.com^
|
||||
||tnc3-bjlgy.toutiaoapi.com^
|
||||
||tnc3-bjlgy.zijieapi.com^
|
||||
||toblog.ctobsnssdk.com^
|
||||
||trace.qq.com^
|
||||
||tracelog-debug.qquanquan.com^
|
||||
||track.lc.quark.cn^
|
||||
||track.uc.cn^
|
||||
||tracker.ai.xiaomi.com^
|
||||
||tracker.gitee.com^
|
||||
||tracking.miui.com^
|
||||
||tracking.rus.miui.com^
|
||||
||tsvrv.com^
|
||||
||tvuser-ch.cedock.com^
|
||||
||tx-ad.a.yximgs.com^
|
||||
||tx-kmpaudio.pull.yximgs.com^
|
||||
||tz.sec.xiaomi.com^
|
||||
||uapi.ads.heytapmobi.com^
|
||||
||udc.yahoo.com^
|
||||
||udcm.yahoo.com^
|
||||
||uedas.qidian.com^
|
||||
||ulog-sdk.gifshow.com^
|
||||
||ulogjs.gifshow.com^
|
||||
||ulogs.umeng.com^
|
||||
||ulogs.umengcloud.com^
|
||||
||umengacs.m.taobao.com^
|
||||
||umengjmacs.m.taobao.com^
|
||||
||umini.shujupie.com^
|
||||
||umsns.com^
|
||||
||union.baidu.cn^
|
||||
||union.baidu.com^
|
||||
||update.avlyun.sec.miui.com^
|
||||
||update.lejiao.tv^
|
||||
||upgrade-update.hismarttv.com^
|
||||
||us.l.qq.com^
|
||||
||v.adintl.cn^
|
||||
||v.adx.hubcloud.com.cn^
|
||||
||v1-ad.video.yximgs.com^
|
||||
||v2-ad.video.yximgs.com^
|
||||
||v2-api-channel-launcher.hismarttv.com^
|
||||
||v2.gdt.qq.com^
|
||||
||v2mi.gdt.qq.com^
|
||||
||v3-ad.video.yximgs.com^
|
||||
||v3.gdt.qq.com^
|
||||
||video-ad.sm.cn^
|
||||
||video-dsp.pddpic.com^
|
||||
||video.dispatch.tc.qq.com^
|
||||
||virusinfo-cloudscan-cn.heytapmobi.com^
|
||||
||vlive.qqvideo.tc.qq.com^
|
||||
||volc.bj.ad.track.66mobi.com^
|
||||
||vungle.com^
|
||||
||w.l.qq.com^
|
||||
||w1.askwai.com^
|
||||
||w1.bskwai.com^
|
||||
||w1.cskwai.com^
|
||||
||w1.dskwai.com^
|
||||
||w1.eskwai.com^
|
||||
||w1.fskwai.com^
|
||||
||w1.gskwai.com^
|
||||
||w1.hskwai.com^
|
||||
||w1.iskwai.com^
|
||||
||w1.jskwai.com^
|
||||
||w1.kskwai.com^
|
||||
||w1.lskwai.com^
|
||||
||w1.mskwai.com^
|
||||
||w1.nskwai.com^
|
||||
||w1.oskwai.com^
|
||||
||w1.pskwai.com^
|
||||
||w1.qskwai.com^
|
||||
||w1.rskwai.com^
|
||||
||w1.sskwai.com^
|
||||
||w1.tskwai.com^
|
||||
||w1.uskwai.com^
|
||||
||w1.vskwai.com^
|
||||
||w1.wskwai.com^
|
||||
||w1.xskwai.com^
|
||||
||w1.yskwai.com^
|
||||
||w1.zskwai.com^
|
||||
||watson.microsoft.com^
|
||||
||watson.telemetry.microsoft.com^
|
||||
||weather-analytics-events.apple.com^
|
||||
||weather-community-drcn.weather.dbankcloud.cn^
|
||||
||webstat.qiumibao.com^
|
||||
||webview.unityads.unity3d.com^
|
||||
||widgets.outbrain.com^
|
||||
||widgets.pinterest.com^
|
||||
||win.gdt.qq.com^
|
||||
||wn.x.jd.com^
|
||||
||ws-keyboard.shouji.sogou.com^
|
||||
||ws.sj.qq.com^
|
||||
||www42.zskwai.com^
|
||||
||wxa.wxs.qq.com^
|
||||
||wximg.wxs.qq.com^
|
||||
||wxsmw.wxs.qq.com^
|
||||
||wxsnsad.tc.qq.com^
|
||||
||wxsnsdy.wxs.qq.com^
|
||||
||wxsnsdythumb.wxs.qq.com^
|
||||
||xc.gdt.qq.com^
|
||||
||xiaomi-dtv.m.cn.miaozhen.com^
|
||||
||xiaoshuo.wtzw.com^
|
||||
||xlivrdr.com^
|
||||
||xlmzc.cnjp-exp.com^
|
||||
||xlog.jd.com^
|
||||
||xlviiirdr.com^
|
||||
||xlviirdr.com^
|
||||
||yk-ssp.ad.youku.com^
|
||||
||ykad-data.youku.com^
|
||||
||ykad-gateway.youku.com^
|
||||
||youku-acs.m.taobao.com^
|
||||
||youxi.kugou.com^
|
||||
||zeus.ad.xiaomi.com^
|
||||
||zhihu-web-analytics.zhihu.com^
|
||||
/.*\.*\.shouji\.sogou\.com/
|
||||
/.*\.[a-zA-Z0-9.-]skwai\.com/
|
||||
/.*\.a\.market\.xiaomi\.com/
|
||||
/.*\.data\.hicloud\.com/
|
||||
/.*\.log\.aliyuncs\.com/
|
||||
/[a-zA-Z0-9.-]*-ad-[a-zA-Z0-9.-]*\.byteimg\.com/
|
||||
/[a-zA-Z0-9.-]*-ad\.sm\.cn/
|
||||
/[a-zA-Z0-9.-]*-ad\.video\.yximgs\.com/
|
||||
/[a-zA-Z0-9.-]*-ad\.wtzw\.com/
|
||||
/[a-zA-Z0-9.-]*-be-pack-sign\.pglstatp-toutiao\.com/
|
||||
/[a-zA-Z0-9.-]*-lm\.adkwai\.com/
|
||||
/[a-zA-Z0-9.-]*-normal-[a-zA-Z0-9.-]*\.zijieapi\.com/
|
||||
/[a-zA-Z0-9.-]*-normal\.zijieapi\.com/
|
||||
/cloudinject[a-zA-Z0-9.-]*-dev\.*\.[a-zA-Z0-9.-]*-[a-zA-Z0-9.-]*-[a-zA-Z0-9.-]*\.amazonaws\.com/
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
/ciceknoktasi/
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
@@||dns.weixin.qq.com.cn
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"blockedDomainsCount": {},
|
||||
"resolvedDomainsCount": {},
|
||||
"lastSaved": "2025-12-17T22:42:07.53406126+08:00"
|
||||
}
|
||||
9676
data/stats.json
9676
data/stats.json
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
# Hosts文件
|
||||
# 格式:IP 域名
|
||||
# 例如:127.0.0.1 localhost
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
# 本地规则文件
|
||||
# 格式:域名
|
||||
# 例如:example.com
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"blockedDomainsCount": {},
|
||||
"resolvedDomainsCount": {},
|
||||
"lastSaved": "2025-12-16T00:38:44.046867267+08:00"
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
"stats": {
|
||||
"Queries": 1,
|
||||
"Blocked": 0,
|
||||
"Allowed": 1,
|
||||
"Errors": 0,
|
||||
"LastQuery": "2025-12-16T00:38:14.408835937+08:00",
|
||||
"AvgResponseTime": 6,
|
||||
"TotalResponseTime": 6,
|
||||
"QueryTypes": {
|
||||
"A": 1
|
||||
},
|
||||
"SourceIPs": {
|
||||
"127.0.0.1": true
|
||||
},
|
||||
"CpuUsage": 8.270676691729323
|
||||
},
|
||||
"blockedDomains": {},
|
||||
"resolvedDomains": {
|
||||
"google.com": {
|
||||
"Domain": "google.com",
|
||||
"Count": 1,
|
||||
"LastSeen": "2025-12-16T00:38:14.416155945+08:00"
|
||||
}
|
||||
},
|
||||
"clientStats": {
|
||||
"127.0.0.1": {
|
||||
"IP": "127.0.0.1",
|
||||
"Count": 1,
|
||||
"LastSeen": "2025-12-16T00:38:14.408844699+08:00"
|
||||
}
|
||||
},
|
||||
"hourlyStats": {},
|
||||
"dailyStats": {},
|
||||
"monthlyStats": {},
|
||||
"lastSaved": "2025-12-16T00:38:44.043395448+08:00"
|
||||
}
|
||||
BIN
dns-server
BIN
dns-server
Binary file not shown.
@@ -485,8 +485,47 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
|
||||
return
|
||||
}
|
||||
|
||||
// 缓存未命中,转发到上游DNS服务器
|
||||
response, rtt := s.forwardDNSRequestWithCache(r, domain)
|
||||
// 缓存未命中,处理DNS请求
|
||||
var response *dns.Msg
|
||||
var rtt time.Duration
|
||||
var queryAttempts []string
|
||||
|
||||
// 1. 首先尝试直接查询原始域名
|
||||
queryAttempts = append(queryAttempts, domain)
|
||||
response, rtt = s.forwardDNSRequestWithCache(r, domain)
|
||||
|
||||
// 2. 如果直接查询失败且配置了prefixDomain,尝试添加前缀
|
||||
if (response == nil || response.Rcode != dns.RcodeSuccess) && len(s.config.PrefixDomain) > 0 {
|
||||
logger.Debug("直接查询失败,尝试使用prefixDomain", "domain", domain, "prefixDomain", s.config.PrefixDomain)
|
||||
|
||||
// 保存原始请求
|
||||
originalQuestion := r.Question[0]
|
||||
|
||||
// 遍历所有prefixDomain,尝试添加前缀
|
||||
for _, prefix := range s.config.PrefixDomain {
|
||||
// 构建完整域名
|
||||
fullDomain := domain + "." + prefix
|
||||
queryAttempts = append(queryAttempts, fullDomain)
|
||||
logger.Debug("尝试查询完整域名", "fullDomain", fullDomain)
|
||||
|
||||
// 创建新的请求消息
|
||||
newReq := r.Copy()
|
||||
// 更新查询域名
|
||||
newReq.Question[0] = dns.Question{
|
||||
Name: fullDomain + ".", // 域名需要以点结尾
|
||||
Qtype: originalQuestion.Qtype,
|
||||
Qclass: originalQuestion.Qclass,
|
||||
}
|
||||
|
||||
// 转发请求
|
||||
response, rtt = s.forwardDNSRequestWithCache(newReq, fullDomain)
|
||||
if response != nil && response.Rcode == dns.RcodeSuccess {
|
||||
logger.Debug("使用prefixDomain查询成功", "fullDomain", fullDomain, "originalDomain", domain)
|
||||
break // 找到成功的响应,退出循环
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if response != nil {
|
||||
// 如果客户端请求包含EDNS记录,确保响应也包含EDNS
|
||||
if opt := r.IsEdns0(); opt != nil {
|
||||
@@ -693,6 +732,25 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
// DNSSEC专用服务器列表,从配置中获取
|
||||
dnssecServers := s.config.DNSSECUpstreamDNS
|
||||
|
||||
// 选择合适的上游DNS服务器列表
|
||||
// 1. 首先检查是否有域名特定的DNS服务器配置
|
||||
var selectedUpstreamDNS []string
|
||||
var domainMatched bool
|
||||
|
||||
for matchStr, dnsServers := range s.config.DomainSpecificDNS {
|
||||
if strings.Contains(domain, matchStr) {
|
||||
selectedUpstreamDNS = dnsServers
|
||||
domainMatched = true
|
||||
logger.Debug("域名匹配到特定DNS服务器配置", "domain", domain, "matchStr", matchStr, "dnsServers", dnsServers)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 如果没有匹配的域名特定配置,使用默认的上游DNS服务器
|
||||
if !domainMatched {
|
||||
selectedUpstreamDNS = s.config.UpstreamDNS
|
||||
}
|
||||
|
||||
// 1. 首先尝试所有配置的上游DNS服务器
|
||||
var bestResponse *dns.Msg
|
||||
var bestRtt time.Duration
|
||||
@@ -706,7 +764,7 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
switch s.config.QueryMode {
|
||||
case "parallel":
|
||||
// 并行请求模式 - 优化版:添加超时处理和快速响应返回
|
||||
responses := make(chan serverResponse, len(s.config.UpstreamDNS))
|
||||
responses := make(chan serverResponse, len(selectedUpstreamDNS))
|
||||
var wg sync.WaitGroup
|
||||
|
||||
// 超时上下文
|
||||
@@ -714,7 +772,7 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
defer cancel()
|
||||
|
||||
// 向所有上游服务器并行发送请求
|
||||
for _, upstream := range s.config.UpstreamDNS {
|
||||
for _, upstream := range selectedUpstreamDNS {
|
||||
wg.Add(1)
|
||||
go func(server string) {
|
||||
defer wg.Done()
|
||||
@@ -806,7 +864,7 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
case "loadbalance":
|
||||
// 负载均衡模式 - 使用加权随机选择算法
|
||||
// 1. 选择一个加权随机服务器
|
||||
selectedServer := s.selectWeightedRandomServer(s.config.UpstreamDNS)
|
||||
selectedServer := s.selectWeightedRandomServer(selectedUpstreamDNS)
|
||||
if selectedServer != "" {
|
||||
response, rtt, err := s.resolver.Exchange(r, selectedServer)
|
||||
if err == nil && response != nil {
|
||||
@@ -874,7 +932,7 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
case "fastest-ip":
|
||||
// 最快的IP地址模式 - 使用TCP连接速度测量选择最快服务器
|
||||
// 1. 选择最快的服务器
|
||||
fastestServer := s.selectFastestServer(s.config.UpstreamDNS)
|
||||
fastestServer := s.selectFastestServer(selectedUpstreamDNS)
|
||||
if fastestServer != "" {
|
||||
response, rtt, err := s.resolver.Exchange(r, fastestServer)
|
||||
if err == nil && response != nil {
|
||||
@@ -941,11 +999,11 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
|
||||
default:
|
||||
// 默认使用并行请求模式
|
||||
responses := make(chan serverResponse, len(s.config.UpstreamDNS))
|
||||
responses := make(chan serverResponse, len(selectedUpstreamDNS))
|
||||
var wg sync.WaitGroup
|
||||
|
||||
// 向所有上游服务器并行发送请求
|
||||
for _, upstream := range s.config.UpstreamDNS {
|
||||
for _, upstream := range selectedUpstreamDNS {
|
||||
wg.Add(1)
|
||||
go func(server string) {
|
||||
defer wg.Done()
|
||||
@@ -1020,7 +1078,8 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
}
|
||||
|
||||
// 2. 当启用DNSSEC且没有找到带DNSSEC的响应时,向DNSSEC专用服务器发送请求
|
||||
if s.config.EnableDNSSEC && !hasDNSSECResponse {
|
||||
// 但如果域名匹配了domainSpecificDNS配置,则不使用DNSSEC专用服务器,只使用指定的DNS服务器
|
||||
if s.config.EnableDNSSEC && !hasDNSSECResponse && !domainMatched {
|
||||
logger.Debug("向DNSSEC专用服务器发送请求", "domain", domain)
|
||||
|
||||
// 增加DNSSEC查询计数
|
||||
@@ -1098,7 +1157,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
|
||||
// 优先使用DNSSEC专用服务器的响应,尤其是带有DNSSEC记录的
|
||||
if containsDNSSEC {
|
||||
// 即使之前有最佳响应,也优先使用DNSSEC专用服务器的DNSSEC响应
|
||||
bestResponse = resp.response
|
||||
bestRtt = resp.rtt
|
||||
hasBestResponse = true
|
||||
@@ -1159,7 +1217,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
|
||||
// 优先使用DNSSEC专用服务器的响应,尤其是带有DNSSEC记录的
|
||||
if containsDNSSEC {
|
||||
// 即使之前有最佳响应,也优先使用DNSSEC专用服务器的DNSSEC响应
|
||||
bestResponse = response
|
||||
bestRtt = rtt
|
||||
hasBestResponse = true
|
||||
@@ -1220,7 +1277,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
|
||||
// 优先使用DNSSEC专用服务器的响应,尤其是带有DNSSEC记录的
|
||||
if containsDNSSEC {
|
||||
// 即使之前有最佳响应,也优先使用DNSSEC专用服务器的DNSSEC响应
|
||||
bestResponse = response
|
||||
bestRtt = rtt
|
||||
hasBestResponse = true
|
||||
@@ -1279,7 +1335,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
|
||||
// 优先使用DNSSEC专用服务器的响应,尤其是带有DNSSEC记录的
|
||||
if containsDNSSEC {
|
||||
// 即使之前有最佳响应,也优先使用DNSSEC专用服务器的DNSSEC响应
|
||||
bestResponse = response
|
||||
bestRtt = rtt
|
||||
hasBestResponse = true
|
||||
|
||||
90842
logs/dns-server.log
90842
logs/dns-server.log
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
||||
time="2025-12-16T00:37:59+08:00" level=debug msg="尝试加载Shield统计数据" file=/root/dns/data/test_shield_stats.json
|
||||
time="2025-12-16T00:37:59+08:00" level=info msg="Shield计数数据加载成功" blocked_entries=0 resolved_entries=0
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="规则加载完成,域名规则: 122426, 排除规则: 654, 正则规则: 473, hosts规则: 0"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="统计数据加载成功"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="查询日志加载成功" count=118
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="DNS服务器已启动,监听端口: 5353"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="HTTP控制台已启动,监听端口: 8081"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="DNS TCP服务器启动,监听端口: 5353"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="启动统计数据自动保存功能" file=data/test_stats.json interval=300
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="DNS UDP服务器启动,监听端口: 5353"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/test_shield_stats.json interval=60
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="规则自动更新已启动" interval=3600
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8081"
|
||||
time="2025-12-16T00:38:00+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/test_shield_stats.json resolved_entries=0
|
||||
time="2025-12-16T00:38:14+08:00" level=debug msg="接收到DNS查询" client="127.0.0.1:52388" domain=google.com type=A
|
||||
time="2025-12-16T00:38:14+08:00" level=debug msg="DNS响应不包含DNSSEC记录" domain=google.com server="223.5.5.5:53"
|
||||
time="2025-12-16T00:38:14+08:00" level=debug msg="DNS查询成功" domain=google.com rtt=6.030332ms server="223.5.5.5:53"
|
||||
time="2025-12-16T00:38:14+08:00" level=debug msg="DNS响应已缓存" domain=google.com ttl=30m0s type=A
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="正在关闭服务..."
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="统计数据保存成功" file=/root/dns/data/test_stats.json
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="查询日志保存成功" file=/root/dns/data/querylog.json
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="DNS服务器已停止"
|
||||
time="2025-12-16T00:38:44+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/test_shield_stats.json resolved_entries=0
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="规则自动更新已停止"
|
||||
time="2025-12-16T00:38:44+08:00" level=info msg="服务已关闭"
|
||||
time="2025-12-16T00:38:44+08:00" level=warning msg="日志系统已关闭"
|
||||
Reference in New Issue
Block a user