Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

出现一个问题,旁路由用了mosdns后,外网访问很正常,国内很多网站访问不了 #835

Open
4 tasks done
jackdanny77 opened this issue Aug 25, 2024 · 3 comments

Comments

@jackdanny77
Copy link

在提交之前,请确认

  • 我已经尝试搜索过 Issue ,但没有找到相关问题。
  • 我正在使用最新的 mosdns 版本(或者最新的 commit),问题依旧存在。
  • 我仔细看过 wiki 后仍然无法自行解决该问题。
  • 我非常确定这是 mosdns 核心的问题。(如果是通过第三方衍生软件使用 mosdns 核心,不确定问题源头时,请先向衍生软件开发者提交问题。)

mosdns 版本

5.3.1

操作系统

openwrt

Bug 描述和复现步骤

出现一个问题,旁路由用了mosdns后,外网访问很正常,国内很多网站访问不了,像哔哩哔哩播放很卡,还有一些其它的网站也访问不了,用的是passwall,节点和代理工具都换过,应该是mosdns的问题,但找不到原因,请各位大神指点一二

使用的配置文件

log:
  level: info
  file: "/var/log/mosdns.log"

# API 入口设置
api:
  http: "0.0.0.0:9091"

include: []

plugins:
  # 国内域名
  - tag: geosite_cn
    type: domain_set
    args:
      files:
        - "/var/mosdns/geosite_cn.txt"

  # 国内 IP
  - tag: geoip_cn
    type: ip_set
    args:
      files:
        - "/var/mosdns/geoip_cn.txt"

  # 国外域名
  - tag: geosite_no_cn
    type: domain_set
    args:
      files:
        - "/var/mosdns/geosite_geolocation-!cn.txt"

  # 缓存
  - tag: lazy_cache
    type: cache
    args:
      size: 20000
      lazy_cache_ttl: 86400
      dump_file: "/etc/mosdns/cache.dump"
      dump_interval: 600

  # 转发至本地服务器
  - tag: forward_local
    type: forward
    args:
      upstreams:
        - addr: "https://doh.pub/dns-query"
          bootstrap: 180.76.76.76
        - addr: 119.29.29.29

  # 转发至远程服务器
  - tag: forward_remote
    type: forward
    args:
      upstreams:
        - addr: tls://8.8.8.8
          enable_pipeline: false

  # 国内解析
  - tag: local_sequence
    type: sequence
    args:
      - exec: $forward_local

  # 国外解析
  - tag: remote_sequence
    type: sequence
    args:
      - exec: prefer_ipv4
      - exec: $forward_remote

  # 有响应终止返回
  - tag: has_resp_sequence
    type: sequence
    args:
      - matches: has_resp
        exec: accept

  # fallback 用本地服务器 sequence
  # 返回非国内 ip 则 drop_resp
  - tag: query_is_local_ip
    type: sequence
    args:
      - exec: $local_sequence
      - matches: "!resp_ip $geoip_cn"
        exec: drop_resp

  # fallback 用远程服务器 sequence
  - tag: query_is_remote
    type: sequence
    args:
      - exec: $remote_sequence

  # fallback 用远程服务器 sequence
  - tag: fallback
    type: fallback
    args:
      primary: query_is_local_ip
      secondary: query_is_remote
      threshold: 500
      always_standby: true

  # 查询国内域名
  - 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

  # 主要的运行逻辑插件
  # sequence 插件中调用的插件 tag 必须在 sequence 前定义,
  # 否则 sequence 找不到对应插件。
  - tag: main_sequence
    type: sequence
    args:
      - exec: $lazy_cache
      - exec: $query_is_local_domain
      - exec: jump has_resp_sequence
      - exec: $query_is_no_local_domain
      - exec: jump has_resp_sequence
      - exec: $fallback

  # 启动 udp 服务器。
  - tag: udp_server
    type: udp_server
    args:
      entry: main_sequence
      listen: ":5335"

  # 启动 tcp 服务器。
  - tag: tcp_server
    type: tcp_server
    args:
      entry: main_sequence
      listen: ":5335"

mosdns 的 log 记录

No response

@mickeyman115
Copy link

我也感觉到了,打开国内app要转半天才能加载出来。

@Zerorigin
Copy link

这种问题大概率不会有其他人给你们回答了,我只能给你们提供思路,并且切确的告诉你们此问题不是 MosDNS core 引起的。
而是你们在设置某插件的分流和其内置的相关 DNS 模块(不是 MosDNS core )的配置时,配置错误了。

另外有一点就是,如果你们用的是双路由架构,不是 ESXi 专有硬件时,建议转用 PVE 或 Hyper-V 虚拟化方案。
因为 ESXi 硬件兼容性的原因也会导致此问题,不要无脑跟风用 ESXi。
另外双路由架构的情况下,主路由的分流设置也可能导致此问题。

总的来说,能导致此问题的原因有很多,但基本不可能是 MosDNS core 导致的。
如果不用其它插件只用 MosDNS core ,并且正常的话,那 99.9% 是其它插件导致的。

@cresky-github
Copy link

每个子序列最后增加accept指令

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants