mosdns:Cloudflare 杀手

SerinaNya

与滥用者势不两立

滥用的人是最可恶又可恨的!深深地诅咒任何滥用公共服务的人!

可恶的 Cloudflare

有时候,在访问托管于 Cloudflare 的网站时,我并不会被解析至最优的 Cloudflare IP。而且,Cloudflare 的 IPv6 存在绕路的情况。

有时候,连接会变得极其缓慢,甚至一分钟才能打开一个网页,速度仅有 3kb/s。

不知道别人怎么看,至少我无法忍受。

对此我的解决办法是将这些网站加入黛莉列表。我主要使用浏览器插件 _ʂɱαɾƚρɾσxყ_,只能按域名指定其是否使用黛莉。

Cloudflare 上那么多网站我能加得完?只是速度慢了点何必加到那个列表里去?

优选 IP

自古以来都有「Cloudflare 优选 IP」这个说法。

使用 XIU2/CloudflareSpeedTest 对 Cloudflare 宣告的 IP 进行延迟和速度测试。

得出结论:

  • IPv6 不能留,必须用 IPv4。
  • 东京香港 为最佳,洛杉矶或圣何塞次佳,法兰克福也可考虑。

配置 mosdns

我打算在 DNS 层面上进行操作,将解析到的 Cloudflare IP 替换为最佳 IP。

Cloudflare 提供了 IP 列表,这使得确定 IP 是否属于 Cloudflare 变得极为容易。

mosdns 是「一个 DNS 转发器」。

千万不要被 README 骗了!这玩意很强大远不止转发器这么简单。

我在 OpenWrt 上安装了 mosdns,使用的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
log:
level: info
file: "/var/log/mosdns.log"

api:
http: "127.0.0.1:9091"

include: []

plugins:
# cache
- tag: lazy_cache
type: cache
args:
size: 20000
lazy_cache_ttl: 180

# forward to upstreams
- tag: alidns_doh
type: forward
args:
upstreams:
- addr: https://dns.alidns.com/dns-query
# 或 223.5.5.5
dial_addr: 2400:3200::1

- tag: dnspod
type: forward
args:
upstreams:
addr: 119.29.29.29

# 使用 AliDNS 的 DoH 和 DNSPod 进行查询
- tag: query
type: fallback
args:
primary: alidns_doh
secondary: dnspod
threshold: 500

# Cloudflare:指定最优 IP
- tag: handle_cloudflare
type: sequence
args:
- exec: prefer_ipv4
- exec: black_hole 104.16.124.110 # <- Cloudflare Best IP

- tag: handle_1111v4
type: sequence
args:
- exec: forward 1.1.1.1
- exec: prefer_ipv4

- tag: use_1111v4
type: domain_set
args:
exps:
- domain:rargotunnel.com
- domain:cftunnel.com

- tag: seq
type: sequence
args:
# cache
- exec: $lazy_cache
- matches:
- has_resp
- has_wanted_ans
exec: accept
# bypass
- matches: qname $use_1111v4
exec: goto handle_1111v4
# query
- exec: $query
# Rewrite Cloudflare IP to the best one
- matches: resp_ip &/etc/cloudflare-ip.txt
exec: goto handle_cloudflare

- tag: udp_server
type: udp_server
args:
entry: seq
# 将在 5335 端口监听
listen: ":5335"
/etc/cloudflare-ip.txt

这些内容在 Cloudflare 网站 上都有公布。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/13
104.24.0.0/14
172.64.0.0/13
131.0.72.0/22
2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32
  • 标题: mosdns:Cloudflare 杀手
  • 作者: SerinaNya
  • 创建于 : 2024-06-08 22:57:00
  • 更新于 : 2024-06-08 22:57:00
  • 链接: https://serinanya.cn/2024/mosdns-the-cloudflare-killer/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
mosdns:Cloudflare 杀手