Skip to content

Journalist-HK/mosdns-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mosdns-config

mosdns v5 配置

yaml 文件应放在 /etc/mosdns/ 目录下,可配合 luci-app-mosdns 使用。如果要在公网使用,建议将 OpenWrt 自带的 uHTTPd 更换成 Nginx 并设置反代。

可以搭配各种代理工具使用。需要将代理工具内置 DNS 指向 mosdns。使用 luci-app-mosdns 时需关闭其自带的 DNS 转发选项。顺序应为:Dnsmasq → 代理工具 → mosdns。

示例 Clash DNS 配置:

dns:
  enable: true
  ipv6: true
  # default-nameserver: [] # 用不到
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - '127.0.0.1:5335'

主要的分流思路是白名单走运营商 DNS,国内和 Akamai 走 AliDNS,其余域名如解析为被墙或者国外IP,采用可信 DNS。其中远程 DNS 使用 EasyMosdns

在此基础上,参考了

对于使用常见 CDN 的域名进行 IP 替换。其中对于 Fastly 站点,使用美国 EDNS 重新请求。 默认使用美国 EDNS。对于 Fastly 站点,请参考 [讨论] 实现 fastly 优选线路的方案。请定期更换 IP,防止 IP 不可用。推荐以下工具:

注意事项

  1. 请修改默认的运营商 DNS 为自己的运营商;如果使用 TUN 模式,不要劫持运营商的 DNS,或者将运营商的 DNS 去掉,只用非 53 端口的上游。#2

  2. 可以通过 socks5 代理来提高境外 DNS 的联通性。建议使用单独的代理程序,避免相互依赖。

      - tag: "forward_remote"
        type: "forward"
        args:
          concurrent: 1
          upstreams:
            - addr: "https://162.159.36.1/dns-query"
              enable_http3: false
              socks5: "127.0.0.1:1080" # 目前暂不支持用户名密码认证,只支持基于 TCP 的协议
            - addr: "https://162.159.46.1/dns-query"
              enable_http3: false
  3. 使用 crontab 定时运行 /script/update 来更新规则。

参考:

使用Mosdns进行DNS分流

DNS分流与泄露分析

pmkol/easymosdns

QiuSimons/openwrt-mos

sbwml/luci-app-mosdns