分地区DNS实现内地直连 境外走Cloudflare

背景

发现在香港,百度云自带的解析异常缓慢;转用Cloudflare,又发现内地访问过于缓慢。

考虑到Cloudflare全球加速而内地减速(主要因为内地出网带宽太小……),而Dnspod可实现分地区智能解析。

于是乎,想着采用Dnspod分地区解析+Cloudflare SaSS 实现内地直连服务器端,而境外接入Cloudflare的cdn加速的模式,达到访问速度最大化。

这里举个例子,我想让站点pc.baipon.com的访问者,来自内地就直接连接服务器example.host.com,来自境外就接入Cloudflare。

https://baipin.pw/wp-content/uploads/2023/11/image-9.png

步骤

DNS切换到Dnspod

注册Dnspod,完成“实名认证”后,在“控制台”内点击“我的域名”——“添加域名”,添加想让用户访问的那个域名(比如此处就是pc.baipon.com),完成DNS接入。(在“设置解析记录”那一步,如果之前已经接入了Cloudflare,那么直接跳过即可,因为扫描到的也是CF的代理服务器地址)


https://baipin.pw/wp-content/uploads/2023/11/image.png

回到域名注册商的控制面板处,修改DNS服务器为dnspod的地址:

"library.dnspod.net"
"fair.dnspod.net"
https://baipin.pw/wp-content/uploads/2023/11/image-1.png

导入原有DNS记录

如果之前并未使用Cloudflare或其他cdn,那么在“设置解析记录”那一步就已经完成了解析导入,这一步可以直接略过。

如果之前使用了Cloudflare,登录控制台——DNS,点击“导入和导出”——“导出”,导出记录。

https://baipin.pw/wp-content/uploads/2023/11/image-2.png

接着,打开导出的DNS记录,将所有TTL为1的改成600。例如:

;; CNAME Records
baipon.com.	1	IN	CNAME	example.host.com.
pc.baipon.com.	1	IN	CNAME	example.host.com.
www.baipon.com.	1	IN	CNAME	example.host.com.

应当改成:

;; CNAME Records
baipon.com.	600	IN	CNAME	example.host.com.
pc.baipon.com.	600	IN	CNAME	example.host.com.
www.baipon.com.	600	IN	CNAME	example.host.com.

之后“保存”,回到Dnspod,点击“解析”——更多操作——批量添加解析。

选择域名一栏选择“所有域名”,然后上传刚刚的解析文件。

https://baipin.pw/wp-content/uploads/2023/11/image-3.png

Cloudflare开通SaSS

进入一个域名的Zone(要求是其他之前已经NS接入CF的域名——只要是能解析的域名就可以,.tk、.ml等等免费域名都可以),之后CF的所有操作都在这个Zone下完成。选择DNS,添加指向目标的记录。

https://baipin.pw/wp-content/uploads/2023/11/image-5-1.png

举个例子,我的目的是让pc.baipon.com指向example.host.com,那么我们就可以在这里添加——名称:pcfallback.baipon.com(名字任取,我这里取pcfallback是为了方便辨识)指向 example.host.com (目标)。

接着,菜单——SSL/TLS——自定义主机名

https://baipin.pw/wp-content/uploads/2023/11/image-4.png

然后免费开通Cloudflare SaSS服务,此过程需要绑定信用卡或Visa卡(大陆的就行;如果你有Paypal账号,挂梯子用PayPal也可以)。

开通成功后,将刚刚加入的域名作为“回退源”,按照我的例子,就是pcfallback.baipon.com

https://baipin.pw/wp-content/uploads/2023/11/image-6-1.png

之后会显示:回退源状态: 正在初始化,刷新页面,回退源状态变为:正常

然后点击上方的“添加自定义主机名”蓝色按钮。这里填写想要用户访问的地址,比如pc.baipon.com.

https://baipin.pw/wp-content/uploads/2023/11/image-7.png

添加后回到之前的页面,刷新,直到看见验证提示,按要求做好TXT解析(回到Dnspod,添加解析)。

https://baipin.pw/wp-content/uploads/2023/11/image-8.png

Dnspod部署解析

最后,回到Dnspod,添加(或修改已有的)解析,使得地址指向cloudflare。

这里我用两条解析,一条对“境内”,指向原服务器或国内cdn,一条对“境外”,指向Cloudflare。

添加解析,线路类型选择“境外”,CNAME指向:

你的域名.cdn.cloudflare.net

当然,你也可以指向Cloudflare的指定节点。

Cloudflare公开节点

而还有一条解析,线路类型“境内”指向原服务器或国内cdn。概括来说,举个例子:

主机记录线路类型记录值解析类型
pc.baipon.com境外pcfallback.baipon.com.cdn.cloudflare.netCNAME
pc.baipon.com境内example.host.comCNAME
例子

自此,大功告成。

注意事项

Dnspod对拉平记录处理的不是很好,所以如果绑定了邮箱服务,请同时添加MX记录的“境内”和“境外”线路解析。操作后尝试接收邮件,确保邮箱运作正常。

2023.12.7更新:请不要使用同一个域名既接入CF又接入dnspod(CF接入完成后将CF的DNS服务器换成dnspod),否则会导致Cloudflare自动删除域名接入。即:开通SaSS的域名需要是另一个闲置域名。

赞赏
版权所有,转载请注明出处并链接到本页。
本作品采用CC BY-NC-SA 4.0协议进行许可。
欢迎评论
Avatar photo

MX

文章作者

更强大的钴酸锂电池。

发表回复

textsms
account_circle
email

  • 哇哦,果然英雄所见略同呢,我也是前阶段刚想到的这个办法 :arrow: 境内接的是腾讯云CDN,境外接的CF的CDN

    4 天前 回复
    • Avatar photo
      MX博主

      @扶苏: 哈哈是这样,这样优化以后会对境内外访问都更加友好(主要内地网络太特殊 :cry:

      3 天前 回复
      • 扶苏

        @MX: 但是也发现一些问题,偶尔操作后台时会出现链接错误,如果切换到外网,是正常访问的,国内 ip 就连接不上,等一会自然又好了。

        3 天前 回复
  • WaterApple

    dnspod的拉平目前看来只处理默认解析记录,因为之前还让我头疼过半天国外邮件收不到💦
    如果有特别设置了地区性cname就不会进行正常的拉平直接返回cname
    其实拉平本来如果要保证邮箱绝对可用的话也不是什么好选择,如果真遇上严格按rfc来的老古板发件方就完了💦反正也是走国外,我目前办法是海外直接A记录到分配的ip上万事大吉

    1 月前 回复
    • Avatar photo
      MX博主

      @WaterApple: 是这样的,试来试去只有dnspod有这个问题。同时添加MX记录的“境内”、“境外”解析之后可以解决这个问题。

      1 月前 回复
  • 现在不能像以前那样cname接入就是有点麻烦

    1 月前 回复
    • Avatar photo
      MX博主

      @zeruns: 对的,不过也能理解了,cloudflare并不想你只把他当个薅羊毛的节点,还是想全方位接管你的域名,这样更有价值些

      1 月前 回复
  • 水个评论支持一下 :wink:

    12 月前 回复
  • 感谢,我要尝试这个方法

    12 月前 回复
  • 直连后确实快很多

    12 月前 回复
  • Delia

    nice🎉

    1 年前 回复

分地区DNS实现内地直连 境外走Cloudflare
背景 发现在香港,百度云自带的解析异常缓慢;转用Cloudflare,又发现内地访问过于缓慢。 考虑到Cloudflare全球加速而内地减速(主要因为内地出网带宽太小……),而Dnspod可实现分地…
扫描二维码继续阅读
2023-11-21