家庭数据中心系列 通过国内备案云主机白嫖cloudflare实现国外快速访问国内站点
本文最后更新于 181 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

其实吧,从标题这个需求来说,现在看来意义并不太大,因为如果只是通过cloudflare实现国外能快速访问国内站点的方式太多了(tunnel、自定义主机)。我当时会考虑这个问题,是因为我为了解决备案问题,都已经每月花费了高达20多元买了腾讯云的高档轻量服务器了,虽然上面已经跑了很多应用(uptime-kuma、bind9、redis、cryptgeon、komga、shlink server、bark、tailscale中继服务器),但是资源任然没有充分利用:

image.png

总感觉这20多元花得好亏,所以老是想继续给云主机找点事做,而我备案的云主机可是有正大光明的HTTPS的443端口,不能浪费啊,所以才决定来折腾这件事(如果没有现成的备案域名就不建议这种方式了,参看我另一篇文章:奇技淫巧系列 利用无公网IP的家庭宽带白嫖cloudflare实现快速建站(通用))。

准备工作

准备一个全新的,或者闲置的域名并完成备案,假定为example1212.com。这是因为cloudflare的free版的站点不支持添加子域:

image.png

所以必须把整个example1212.com对应的权威DNS指向cloudflare(其实还有”自定义主机名”的方式,不过那个比较折腾,以后有机会单独用一篇文章来讲)。


这里其实也不一定需要全新的(或者闲置的)域名,在用的也行,已经配置的记录其实是可以导入到cloudflare里的,但是一来因为我本身使用的域名下不少主机都是用的腾讯云的CDN,不想折腾CNAME;二来也担心都放到cloudflare上,万一国内又针对cloueflare进行负优化,会影响到正常的访问~,所以干脆拿个新的域名来做试验。(补充说明:经过一段时间的折腾,我认为最佳方案是2个域名,一个备案专门用于国内访问,一个不备案,专门用于国外访问以及作为国内域名出问题时的备份,这个不备案域名最好都直接转移到cloudflare上,不要放在国内域名机构管理)。

其实还有一个折中的方式,就是在你国内域名供应商(例如:腾讯云的dnspod或者阿里云DNS解析)提供的DNS服务里将正在使用域名的权威DNS指向cloudflare,而cloudflare使用NS记录将特定子域名又委派给你在国内的域名供应商解析,这样可以通过提前规划,让cloudflare和国内域名供应商各自负责各自的解析,这种方式上面提到的两个国内域名供应商的DNS方案免费版都支持。该方式需要根据国内域名供应商提供的信息在CF上添加txt记录以后通过国内域名提供商的校验,以及在CF上根据国内域名供应商在校验以后提供的dns服务器添加NS记录,我以后用一篇文章单独来讲。


有一个cloudflare的账号,没有的话就注册一个。

有一台有公网地址的云主机且有个已经备案的域名。

在CF上添加域名

登录cloudflare,在点击最上方的红框中的”添加站点”或者”网站”-“添加站点”,如下图:

image.png

在下图中红框中位置输入你的域名example1212.com然后点击下方的继续:
image.png

选择下图红框中的Free计划(土豪随意)然后点继续:
image.png

出现如下页面:
image.png

后面统一添加记录,这里直接点下方的继续,出现下图界面:
image.png

点击确认以后出现下图界面:
image.png

红框中部分就是我们在下一节中需要在国内域名供应商处指向的CF的权威DNS
地址,最后点击下方界面中的完成。这时已经可以在网站中看到我们刚刚添加的域名了。
image.png

修改备案域名指向的权威DNS地址

登录国内域名上提供的DNS操作面板(以腾讯dnspod免费版为例),在”控制台”-“产品管理”搜索”域名注册”并回车:

image.png

点击红框中的”我的域名”,在要操作的域名的最右边选择”更多”下拉菜单,然后选择”修改DNS服务器”,如下图:
image.png

进入了如下界面:
image.png

在上图中选择”自定义DNS”,然后在下面的框里填写在上节CF配置最后页面给出的CF权威DNS服务器地址,最后点击下方红框中的提交。

注意:提交后在24-48小时内生效。生效以后cloudflare的网站部分的example1212.com下方的红框中的提示
image.png

会变成”有效”字样,如下:
image.png

配置CF代理国内云主机

从”网站”-“example1212.com”-“DNS”-“记录”点击”添加记录”,如下图:

image.png

按照下图红框所示分辨填写名称(例如blog),国内云主机的IPv4公网地址(例如43.44.45.46),以及使能代理状态,最后点击下方的保存:
image.png

这样就启用了针对blog.example1212.com这个主机域名的访问,并将源主机指向了43.44.45.46这个公网IP所对应的云主机的443端口。注:默认cloudlfare的free版并不会开启CDN,需要通过页面规则进行配置,这个以后我有机会单独用一篇文章来讲。

云主机配置

本例中云主机需要通过WEB服务器软件(宝塔linux面板安装的nginx、apache或者单独的nginx和apache都行,看大家习惯了)添加blog.example1212.com的站点,这里又细分几种情况:
1、如果站点本来就是建立在云主机上且域名本来就是这个,那就不需要做任何操作,已经完成了
2、如果站点本来就是建立在云主机上,但是域名不是这个(如本文开头所说用一个全新域名),则需要为这个全新域名创建一个站点,本文中为blog.example1212.com,然后配置反向代理指向正确的源站地址(本机地址或者域名都可以)。
3、如果站点不是在云主机上(比如我是源站在家庭数据中心,通过腾讯云CDN发布的),且域名不是这个,那么需要同2一样操作配置反向代理(这种情况反向代理可以指向CDN域名,也可以指向家庭数据中心源站域名及端口)。

最后,友情提醒一下,合理配置SSL/TLS类型,选择合适自己的方式:

image.png

我因为在云主机上针对国外访问的域名(本文中是blog.example1212.com)对应的站点使用了let’s encrypt来自动申请及更新证书,也就是说有合法的SSL证书,所以才选择的这个”完全”,大家需要根据自己的实际情况来选择合适的方式,否则访问是会报错的。

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


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

本站已禁用鼠标右键和各种快捷键,代码块内容可以直接在右上角点击复制按钮进行复制

zh_CN