Skip to Content
其他路由上的 OpenClash DNS 双栈优先 IPv4 配置

前言

最近 docker 被上头 gank 了,打开 docs.docker.com 发现打不开,用的 openclash(+meta 核) 的 redir-host 一开始还以为是 dns 污染,后面才发现是走了 ipv6。

然后修改了 windows 的 ipv4 优先,发现效果没啥用,后面想着直接在 dns 只返回 ipv4 得了。

配置 IPV4 优先

目前只靠 openclash 是无法实现 dns 优先返回 ipv4 的,这时候就需要国外分流到 mosdns 进行解析了。

方法一 openclashs 国内 + mosdns 国外配置

openclash 的 dns 服务器代理国内流量

dns: enable: true listen: :1053 ipv6: true enhanced-mode: redir-host fake-ip-filter: - "*" - "+.lan" - "+.local" default-nameserver: - 223.5.5.5 - 119.29.29.29 proxy-server-nameserver: - https://223.5.5.5/dns-query nameserver: - https://223.5.5.5/dns-query - https://1.12.12.12/dns-query nameserver-policy: "geosite:cn,private": - 223.5.5.5 - 119.29.29.29 # 这里有个坑如果域名不在 geolocation-!cn 内,最后走代理会走到 nameserver / fallback,会造成 dns 泄露 # 可以在后面自己补充域名规则,或者直接改成 !cn,这样不会往后走了,看自己选择吧。 "geosite:geolocation-!cn": - "udp://127.0.0.1:5335" # "+.ipleak.net": # - "udp://127.0.0.1:5335"

mosdns v5 使用自定义配置,全走远程服务器的 DNS,DNS 转发 取消勾选。

log: level: info file: "/tmp/log/mosdns.log" # API 入口设置 api: http: "0.0.0.0:9091" include: [] plugins: # 缓存 - tag: lazy_cache type: cache args: size: 20000 lazy_cache_ttl: 86400 # 转发至远程服务器 - tag: forward_remote type: forward args: upstreams: - addr: tls://8.8.8.8 enable_pipeline: false - addr: tls://1.0.0.1 enable_pipeline: false - addr: tls://9.9.9.9 enable_pipeline: false # 国外解析 - tag: remote_sequence type: sequence args: - exec: prefer_ipv4 - exec: $forward_remote # fallback 用远程服务器 sequence - tag: fallback type: fallback args: primary: remote_sequence secondary: remote_sequence threshold: 500 always_standby: true # 主要的运行逻辑插件 # sequence 插件中调用的插件 tag 必须在 sequence 前定义, # 否则 sequence 找不到对应插件。 - tag: main_sequence type: sequence args: - exec: $lazy_cache - exec: $fallback # 启动 udp 服务器。 - tag: udp_server type: udp_server args: entry: main_sequence listen: ":5335"

方法二 mosdns 接手全部 DNS 解析

openclash 的 dns 走本地的 mosdns,记得把 openclash 覆写设置追加上游 DNS 关掉,

然后 mosdns 用内置预设就足够用了,高级设置内把远程 DNS 首选 IPv4防止 dns 泄漏的选项打开即可。

dns: enable: true listen: :1053 ipv6: true enhanced-mode: redir-host fake-ip-filter: - "*" - "+.lan" - "+.local" default-nameserver: - 223.5.5.5 - 119.29.29.29 proxy-server-nameserver: - https://223.5.5.5/dns-query nameserver: - udp://127.0.0.1:5335

测试 DNS 泄漏

https://ipleak.net/

PS: geosite:geolocation-!cn 内不含 ipleak.net

Last updated on