搭载 mihomo 内核配置 DNS 不泄露教程-ruleset 方案
此方案适用于 mihomo,搭载 mihomo 内核并使用其特性防止 DNS 泄露
搭载 mihomo 内核配置 DNS 不泄露教程-ruleset 方案
说明
- 此方案彻底防止了 DNS 泄露(针对未知域名走国外 DNS 解析,解析出 IP 在国内则走
🇨🇳 直连 IP
规则,否则走🐟 漏网之鱼
规则),兼容性无法保证,请慎用 - 本教程以 ShellCrash 为例,其它客户端亦可参考
- 可进入 https://ipleak.net 测试 DNS 是否泄露,“DNS Addresses” 栏目下没有中国国旗(因
ipleak.net
属未知域名,默认走🐟 漏网之鱼
规则),即代表 DNS 没有发生泄露
一、 导入规则集合文件
rule-providers
须添加 fakeip-filter
,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rule-providers:
fakeip-filter:
type: http
behavior: domain
format: mrs
path: ./rules/fakeip-filter.mrs
url: "https://github.com/DustinWin/ruleset_geodata/releases/download/mihomo-ruleset/fakeip-filter.mrs"
interval: 86400
cn:
type: http
behavior: domain
format: mrs
path: ./rules/cn.mrs
url: "https://github.com/DustinWin/ruleset_geodata/releases/download/mihomo-ruleset/cn.mrs"
interval: 86400
二、 ShellCrash 防泄漏配置
进入主菜单 → 2 内核功能设置 → 2 切换 DNS 运行模式 → 4 DNS 进阶设置,将“当前基础 DNS”和“PROXY-DNS”都设置为 null
三、 DNS 防泄漏配置
1. DNS 模式为 fake-ip
① 额外编辑配置文件 在《生成带有自定义策略组和规则的 mihomo 配置文件直链-ruleset 方案/添加模板》编辑 .yaml 配置文件时,将
rules
里所有 IP 相关的规则末尾加上no-resolve
,即修改为:1 2 3
- RULE-SET,telegramip,📲 电报消息,no-resolve - RULE-SET,privateip,🔒 私有网络,no-resolve - RULE-SET,cnip,🇨🇳 直连 IP,no-resolve
② 连接 SSH 后执行
vi $CRASHDIR/yamls/user.yaml
,按一下 Ins 键(Insert 键),粘贴如下内容:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
hosts: doh.pub: [1.12.12.12, 120.53.53.53, 2402:4e00::] dns.alidns.com: [223.5.5.5, 223.6.6.6, 2400:3200::1, 2400:3200:baba::1] dns: enable: true ipv6: true listen: 0.0.0.0:1053 fake-ip-range: 198.18.0.1/16 enhanced-mode: fake-ip fake-ip-filter: ['rule-set:fakeip-filter'] nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query direct-nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query
③ 按一下 Esc 键(退出键),输入英文冒号
:
,继续输入wq
并回车
2. DNS 模式为 redir-host
连接 SSH 后执行 vi $CRASHDIR/yamls/user.yaml
,按一下 Ins 键(Insert 键),粘贴如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
hosts:
doh.pub: [1.12.12.12, 120.53.53.53, 2402:4e00::]
dns.alidns.com: [223.5.5.5, 223.6.6.6, 2400:3200::1, 2400:3200:baba::1]
dns.google: [8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844]
cloudflare-dns.com: [1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001]
dns:
enable: true
ipv6: true
listen: 0.0.0.0:1053
fake-ip-range: 198.18.0.1/16
enhanced-mode: fake-ip
fake-ip-filter: ['+.*']
respect-rules: true
nameserver:
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
proxy-server-nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
direct-nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
按一下 Esc 键(退出键),输入英文冒号 :
,继续输入 wq
并回车
3. DNS 模式为 mix
连接 SSH 后执行 vi $CRASHDIR/yamls/user.yaml
,按一下 Ins 键(Insert 键),粘贴如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
hosts:
doh.pub: [1.12.12.12, 120.53.53.53, 2402:4e00::]
dns.alidns.com: [223.5.5.5, 223.6.6.6, 2400:3200::1, 2400:3200:baba::1]
dns.google: [8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844]
cloudflare-dns.com: [1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001]
dns:
enable: true
ipv6: true
listen: 0.0.0.0:1053
fake-ip-range: 198.18.0.1/16
enhanced-mode: fake-ip
fake-ip-filter: ['rule-set:fakeip-filter,cn']
respect-rules: true
nameserver:
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
proxy-server-nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
direct-nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
按一下 Esc 键(退出键),输入英文冒号 :
,继续输入 wq
并回车
本文由作者按照 CC BY 4.0 进行授权