在 blocklist 中增加内容,进行优化

keyword:.localdomain

在 localptr.txt 中增加一下内容,进行查询优化

# block all PTR requests
domain:in-addr.arpa
domain:ip6.arpa

在 whitelist. txt 文件中,增加以下内容,进行查询优化

domain:push-apple.com.akadns.net
domain:push.apple.com
domain:iphone-ld.apple.com
domain:lcdn-locator.apple.com
domain:lcdn-registration.apple.com
domain:cn-ssl.ls.apple.com
domain:time.apple.com
domain:store.ui.com.cn
domain:amd.com
domain:msftncsi.com
domain:msftconnecttest.com
domain:office.com
domain:office365.com

配置文件内容

以下为 O 大原教程提到内容,适用于双 adg 解析的方式,这样会添加对应的 ui,方便观察本地 dns 解析与远程 dns 解析

# MOSDNS 建立在PVE LXC 中 ,在 LXC 中分别填入 V4 和 V6 的固定IP ( 其中V6 的IP 以 dc00:: ) , 网关为SINGBOX 的 IP ( 其中SINGBOX V6 的地址 在OPN 路由通告设置完后 , SSH 打 ip a 找到inet6 地址就是了)
# 下面这两个IP 需要更换为自己的配置
  - tag: forward_local
    type: forward
    args:
      concurrent: 1
      upstreams:
        - addr: 10.0.0.203:6666    # 国内解析上游 , 可以是主路由 53 端口 , 可以是AD 的IP , 我这个是OPN 中的AD ,目标要求就是上游必须直连 
          enable_pipeline: false
          insecure_skip_verify: false
          idle_timeout: 30
          enable_http3: false
  - tag: forward_remote
    type: forward
    args:
      concurrent: 1
      upstreams:
        - addr: 10.0.0.250:6666   # 国外解析fake上游 , 这个配合SINGBOX 配置文件的入站6666 端口 , singbox 配置文件另外文件说明 
          enable_pipeline: false
          insecure_skip_verify: false
          idle_timeout: 30
          enable_http3: false

以下为 mosdns 配置文件信息


============================================================================================
  level: info
  file: "/etc/mosdns/mosdns.log"
  http: "0.0.0.0:8338"
include: []
plugins:
  - tag: geosite_cn
    type: domain_set
    args:
      files:
        - "/etc/mosdns/geosite_cn.txt"
  - tag: geoip_cn
    type: ip_set
    args:
      files:
        - "/etc/mosdns/geoip_cn.txt"
  - tag: geosite_no_cn
    type: domain_set
    args:
      files:
        - "/etc/mosdns/geosite_geolocation_noncn.txt"
  - tag: whitelist
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/whitelist.txt"
  - tag: blocklist
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/blocklist.txt"
  - tag: greylist
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/greylist.txt"
  - tag: ddnslist
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/ddnslist.txt"
  - tag: hosts
    type: hosts
    args:
      files:
        - "/etc/mosdns/rule/hosts.txt"
  - tag: redirect
    type: redirect
    args:
      files:
        - "/etc/mosdns/rule/redirect.txt"
  - tag: adlist
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/adlist.txt"
  - tag: local_ptr
    type: domain_set
    args:
      files:
        - "/etc/mosdns/rule/localptr.txt"
  - tag: lazy_cache
    type: cache
    args:
      size: 32768
      lazy_cache_ttl: 86400
      dump_file: /etc/mosdns/cache.dump
      dump_interval: 3600
  - tag: reject_3
    type: sequence
    args:
      - exec: reject 3
  - tag: reject_blocklist
    type: sequence
    args:
      - exec: query_summary reject_blocklist
      - exec: $reject_3
  - tag: reject_adlist
    type: sequence
    args:
      - exec: query_summary reject_adlist
      - exec: $reject_3
  - tag: reject_ptrlist
    type: sequence
    args:
      - exec: query_summary reject_ptrlist
      - exec: $reject_3
  - tag: reject_qtype65
    type: sequence
    args:
      - exec: query_summary reject_qtype65
      - exec: $reject_3
  - tag: forward_local
    type: forward
    args:
      concurrent: 1
      upstreams:
        - addr: 10.0.0.203:6666
          enable_pipeline: false
          insecure_skip_verify: false
          idle_timeout: 30
          enable_http3: false
  - tag: forward_remote
    type: forward
    args:
      concurrent: 1
      upstreams:
        - addr: 10.0.0.250:6666
          enable_pipeline: false
          insecure_skip_verify: false
          idle_timeout: 30
          enable_http3: false
  - tag: forward_cf
    type: forward
    args:
      concurrent: 1
      upstreams:
        - addr: tls://1.1.1.1:853
          enable_pipeline: true
          insecure_skip_verify: false
          idle_timeout: 30
          enable_http3: false 
  - tag: modify_ttl
    type: sequence
    args:
      - exec: ttl 0-0
  - tag: modify_ddns_ttl
    type: sequence
    args:
      - exec: ttl 5-5
  - tag: local_sequence
    type: sequence
    args:
      - exec: query_summary forward_local
      - exec: $forward_local
  - tag: remote_sequence
    type: sequence
    args:
      - exec: query_summary forward_remote
      - exec: $forward_remote
  - tag: forward_cf_upstream
    type: sequence
    args:
      - exec: query_summary forward_cf
      - exec: $forward_cf  
  - tag: has_resp_sequence
    type: sequence
    args:
      - matches: qname $ddnslist
        exec: $modify_ddns_ttl
      - matches: "!qname $ddnslist"
        exec: $modify_ttl
      - matches: has_resp
        exec: accept
  - tag: query_is_ddns_domain
    type: sequence
    args:
      - matches: qname $ddnslist
        exec: $local_sequence
  - tag: query_is_local_domain
    type: sequence
    args:
      - matches: qname $geosite_cn
        exec: $local_sequence
  - tag: query_is_no_local_domain
    type: sequence
    args:
      - matches: qname $geosite_no_cn
        exec: $remote_sequence
  - tag: query_is_whitelist_domain
    type: sequence
    args:
      - matches: qname $whitelist
        exec: $local_sequence
  - tag: query_is_greylist_domain
    type: sequence
    args:
      - matches: qname $greylist
        exec: $remote_sequence
  - tag: query_is_reject_domain
    type: sequence
    args:
      - matches: qname $blocklist
        exec: $reject_blocklist
      - matches: qname $adlist
        exec: $reject_adlist
      - matches:
        - qtype 12
        - qname $local_ptr
        exec: $reject_ptrlist
      - matches: qtype 65
        exec: $reject_qtype65
  - tag: fallback_sequence
    type: sequence
    args:
      - exec: $forward_cf_upstream
      - matches: "rcode 2"
        exec: goto local_sequence
      - matches: "resp_ip $geoip_cn"
        exec: goto local_sequence
      - matches: "!resp_ip $geoip_cn"
        exec: goto remote_sequence
  - tag: main_sequence
    type: sequence
    args:
      - exec: metrics_collector metrics
      - exec: $hosts
      - exec: jump has_resp_sequence
      - matches:
        - "!qname $ddnslist"
        - "!qname $blocklist"
        - "!qname $adlist"
        - "!qname $local_ptr"
        exec: $lazy_cache
      - exec: $redirect
      - exec: jump has_resp_sequence
      - exec: $query_is_ddns_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_whitelist_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_reject_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_greylist_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_local_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_no_local_domain
      - exec: jump has_resp_sequence
      - exec: $fallback_sequence
  - tag: udp_server
    type: udp_server
    args:
      entry: main_sequence
      listen: ":53"
  - tag: tcp_server
    type: tcp_server
    args:
      entry: main_sequence
      listen: ":53"