也许是 Cloudflare 最佳实践——CNAME 接入、自选/优选 IP 不完全教程

Cloudflare,著名的 CDN 服务提供商,因其免费而强大的抗攻击服务而为人熟知,同时,也因其免费版在国内拉胯的连接质量而被戏称为「减速器」。

经过一段时间的摸索,我发现 Cloudflare 也不是完全不能用,或者说,在某些特定需求下,它仍然可以成为国内站长加速网站的一个选择。

在一切开始之前,我们先来了解一些背景知识。希望这对你能有所帮助。

知识储备

什么是 CNAME?

CNAME,全称为“Canonical Name(规范名称)”,是域名系统(DNS)中的一种记录类型。它的主要作用是将一个域名指向另一个域名,而不是指向一个具体的 IP 地址。

换句话说,CNAME 记录可以让你用一个域名(例如 cname.ygxz.xyz)去访问另一个已经定义好的域名(例如 alist.ygxz.xyz)。

举一个简单的例子,假设你有一个主站 www.yourwebsite.com,还想让 blog.yourwebsite.com 指向同一个位置。在这种情况下,你可以创建一个 CNAME 记录,将 blog.yourwebsite.com 指向 www.yourwebsite.com。

更简单地说,CNAME 记录就像是一个域名到另一个域名的「映射」,让我们能够轻易地把一个域名的A 记录内容「复制」到另一个域名上,而无需维护多套不同的IP地址配置。

那么,把多个域名指向同一个 IP,我们怎么获得想要的内容呢?

什么是「回源 Host」?

对于 Cloudflare 这样的 CDN 服务商来说,请求头附带的「Host」参数就可以做到这一点。

当你访问一个网站时,你的浏览器会在请求头中附带一个「Host」参数,指明你实际想要访问的域名。这样,服务器就可以根据这个信息,返回相应域名的内容。

在使用 Cloudflare 这类 CDN 服务时,这个机制尤其重要。

当用户的请求达到 Cloudflare 的边缘服务器时,服务器会检查请求头的“Host”参数,然后根据这个信息,将请求路由到相应的原始服务器。这不仅使得一个服务器可以轻易地托管多个网站,还能确保用户快速、准确地获取到他们想要的内容。

例如,假设有两个域名,a.com 和 b.com,都通过CNAME设置指向了 Cloudflare。当用户尝试访问 a.com 时,他们的请求首先会到达 Cloudflare 的一个边缘节点。这个节点会查看HTTP请求头中的“Host”字段,发现用户实际上想要访问的是 a.com,然后将请求路由到 a.com 的原始服务器上。

什么是「CDN」?

CDN,全称为 Content Delivery Network(内容分发网络),是一种网络基础设施解决方案,旨在通过在全球范围内部署多个分布式服务器,将网站或应用的内容更靠近用户进行存储和分发,从而提高内容访问的速度和可靠性。

这样做能有效减少服务器的延迟,提升网站的加载速度,并有助于承担原始服务器上的流量,使之更加稳定。

例如,当一个用户在中国访问一个托管在美国的网站时,如果该网站使用了 CDN 服务,用户的请求会被自动路由到离他最近的 CDN 边缘服务器(可能位于中国或附近地区),而不是远在美国的原始服务器。这样,用户就能更快地获取到网站的内容,同时还降低了原始服务器的负担。

你可以理解为,Cloudflare 这样的 CDN 服务商提供了一个遍布全球的「反向代理」服务器,通过优化的路由网络,加速客户端与服务端的连接。

什么是「反向代理」?

「反向代理」是代理服务器的一种特殊形式。在一个标准(或「正向」)代理中,用户主动通过代理连接服务器,因此用户知道自己正通过代理服务器访问目标服务器。

然而,在反向代理的情境下,用户通常并不知道存在一个中间的代理服务器。

当用户请求某个网站的内容时,这些请求首先会到达反向代理服务器,然后代理服务器会将请求转发到原始服务器,并从那里获取内容。因此在访问时,用户实际上是在访问反向代理服务器,通过反向代理服务器进行「中继」,完成与源服务器的数据传输。

Cloudflare 的边缘节点就是一个典型的反向代理服务器。

用户在访问使用 Cloudflare 服务的网站时,实际上首先连接到的是 Cloudflare 的边缘服务器,而不是网站的原始服务器。Cloudflare 的服务器会根据各种条件(比如请求类型、缓存状态等)来决定是直接返回缓存的内容还是将请求「回源」到原始服务器。

为什么 Cloudflare 在中国这么难用?

其实不只是 Cloudflare,由于中国国内的网站备案机制加之合规化管理的难度,一众国际 CDN 大厂大都不在中国大陆设置 CDN 节点。

比如 jsDelivr,它是一个前端静态文件库,也是各个站点喜欢用的静态文件CDN。

jsDelivr 是历史上第一个以较为正规的方式进入中国大陆的海外静态资源库项目,在网宿与诸多海外赞助商协同下,5年中jsDelivr提供了非常稳定且出色的服务。

2021年12月20日,网宿出于监管压力,单方面关闭了jsDelivr在中国大陆的CDN节点,几个小时后,jsDelivr的ICP备案也被注销。[1]

尽管如此,Cloudflare 曾经通过与百度智能云和京东云的合作,尝试在中国提供一定程度的服务。但截至目前,Cloudflare 的中国大陆节点仅限企业用户,个人用户自然是承担不起的。

也许是 Cloudflare 最佳实践

通过 CNAME 接入 Cloudflare,实现自选边缘节点

在曾经,通过 CNAME 接入 Cloudflare 并不是一件难事。

通过 Cloudflare 的合作伙伴计划(Cloudflare Partner)或者 Plesk(一个非常受欢迎的网站管理面板,类似大名鼎鼎的 CPanel)面板的插件订阅,这一点可以很轻易做到。

从2021年11月开始,Cloudflare禁用了Partner使用的zone_setAPI以避免滥用(因为该API接入不需要验证域名所有权),通过Partner实现CNAME接入的方式近乎落幕,仅剩Plesk空间存量的ServerShield by Cloudflare插件订阅能够正常接入。几个月过去了,官方也并没有对未来合作伙伴如何进行接入新域名给出任何解释。

时至今日,通过 CNAME 接入 Cloudflare 就只剩下了 SaaS 这一条路子。

你只需要准备一张外币卡/国外虚拟卡(就是前阵子很流行的拿来注册 OpenAI 的那些卡),以及两个域名,即可完成单域名的 CNAME 接入。

详细的接入步骤,前人已经为我们栽好了树,我就不重复劳动了。

寻找优选 Cloudflare 官方/中转 IP

Cloudflare 官方的 IP 很好理解,就是各个边缘节点的 IP。哪怕在全球大部分地方使用了 Anycast 技术, 但不同 IP 在中国大陆的访问体验还是有很大差别。

博主 MisakaNo 收集了很多使用官方 IP的网站,我们可以通过 DNS 记录查询的方式得到这些 IP,并通过本地测速或者拨测的方式进行筛选。

#来源:https://blog.misaka.rest/2023/08/12/pick-cf-best-domain/
#引用时删去部分无效域名

time.cloudflare.com
shopify.com
time.is
icook.hk
icook.tw
ip.sb
japan.com
malaysia.com
russia.com
singapore.com
skk.moe
www.visa.com
www.visa.com.sg
www.visa.com.hk
www.visa.com.tw
www.visa.co.jp
www.visakorea.com
www.gco.gov.qa
www.gov.se
www.gov.ua
www.digitalocean.com
www.csgo.com
www.shopify.com
www.whoer.net
www.whatismyip.com
www.ipget.net
www.hugedomains.com
www.udacity.com
www.4chan.org
www.okcupid.com
www.glassdoor.com
www.udemy.com
www.baipiao.eu.org
alejandracaiccedo.com
log.bpminecraft.com
www.boba88slot.com
gur.gov.ua
www.zsu.gov.ua
www.iakeys.com
edtunnel-dgp.pages.dev
www.d-555.com
fbi.gov
www.sean-now.com
download.yunzhongzhuan.com
whatismyipaddress.com
www.ipaddress.my
www.pcmag.com
www.ipchicken.com
www.iplocation.net
iplocation.io
www.who.int
www.wto.org

#其他选择,都是官方 IP 优选
jp.byun.eu.org
un.goasa.top
emby2.misakaf.org

也有大佬做好了一个优选的结果,可以根据需要即取即用:

https://stock.hostmonit.com/CloudFlareYes

至于中转 IP,其实就是第二层「反向代理」,通过反代 Cloudflare 边缘节点提供服务。

中转 IP 大都是个人自用,获取它们的方法大都是大批量的端口扫描,具体细节这里就不再展开了。

也是因此,中转 IP 存活的时间都十分短暂,对于网站加速来说,除非自己拿服务器搭建反向代理,否则几乎没有使用价值。

当然我一开始也不信这个邪,所以在测试过程中手搓了一个中转 IP 发布页面,感兴趣的话可以去围观一下。当然因为是单机部署,加上三大运营商的国际互联差异巨大,页面上显示的 ping 值仅供参考,不能完全反映三大运营商的普遍连接状况。

这个项目还在研究,目前不对外开放。

不过就这段时间的测试来看,不区分运营商的 IP 优选策略体验并不好,也不太适合实际使用。

当然啦,如果你有能力自己完成 IP 检测,网上也有很多已经扫描出来的 IP 文件,这里也列举一下。

https://github.com/hello-earth/cloudflare-better-ip/tree/main/cloudflare
https://t.me/cf_push
https://t.me/bestcfipas

一点结语

本文从立项到结束花了一个多月的时间,其中最曲折的就是测试各种中转 IP 的稳定性。

可惜的是,这种做法实属「偷渡」,用来做中转 IP 的服务器大都是大厂的试用/免费机器,本就难以长期存在,而且 IP 一旦被公开,就很容易面临网络堵塞甚至被滥用的风险。

也是因此,「一个小站」以及「小站背面」均未使用 Cloudflare 的 CDN 服务。

优化和加速网站永远是个人站长中的一个热门话题,但不管是IP 优选还是中转 IP,这些方案的实际可行性和稳定性往往难以保证。更何况,维护这些解决方案需要一定的技术能力和时间成本。

如果你是个人博客需求,这种方案因其极高的维护成本而并不理想。你可以试着了解一下 这个 面向个人站长的免费 CDN 服务。

如果你的站点有较大的流量需求,那还是乖乖交钱算了。毕竟,在互联网的世界里,「免费的午餐」总是少之又少,而且很多情况下,便宜和优质真的难以兼得。

最后,经过一个多月的探究,我目前能找到的最好的效果大概是这样的:

也许是 Cloudflare 最佳实践——CNAME 接入、自选/优选 IP 不完全教程 - 2

当然这套方案不是我做的,我也就不公开了。

如果你感兴趣的话,体验站就在文中。

参考&注释

  1. ^本段内容参考了 https://luotianyi.vc/6295.html ,感谢原作者。

《也许是 Cloudflare 最佳实践——CNAME 接入、自选/优选 IP 不完全教程》是发布于 上的文章。如文中出现错误或侵犯了您的权益,请于评论区指正或发送邮件到 admin@ygxz.in

评论

  1. 冰书
    Android Chrome
    4 周前
    2024-11-06 7:39:40

    cf优选域名cf.cdn.bingbook.cn

  2. Windows Edge
    2 月前
    2024-10-13 16:51:45

    便宜和优质真的难以兼得。 优选IP也只是一时的权宜之计。

  3. aa
    Windows Edge
    8 月前
    2024-4-16 19:40:22

    好多文章只说怎么搭建,没说什么时候优选IP 和反代IP(这里的中转IP),这里讲明白了。还有一点疑惑,既然已经知道了CF的边缘IP,并且能直接连接,实现反代功能。为什么还要一个中转IP?是为了寻找CF的边缘IP,还是必须使用中转IP才能连接到边缘IP?

    • 博主
      aa
      Macintosh Chrome
      已编辑
      8 月前
      2024-4-16 19:52:20

      中转 IP 的作用是用来填补官方边缘 IP 到特定地区(如中国大陆)网络连接状况的不足,或者说是后者的一个二层中转。

      由于国内网络和境外出口的特殊性,外国到国内的优质互联带宽相当昂贵,CloudFalre 是没有在其境外边缘节点对同中国大陆的连接性做非常针对性的优化的,其中稍微好一些的,被挑出来就是「优选 IP」。

      而「中转 IP」本质上是对CloudFlare 边缘节点的反向代理,理论上可以是任何一台服务器,因此只需要搭建者选择网络线路有优化的服务器,就可以实现对 CloudFlare 托管网站的加速效果。

      • aa
        别为馒头
        Windows Edge
        8 月前
        2024-4-17 9:10:12

        谢谢大佬解答。

  4. Android Chrome
    1 年前
    2023-10-20 10:15:40

    看了你这篇文章,终于明白了优选IP是啥意思,之前一直不明白多个域名怎么能对应一个地址。赞一个

  5. Windows Edge
    1 年前
    2023-8-25 22:59:09

    “便宜和优质真的难以兼得”,非常认同

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇