在日常的生活工作中,我们有时候需要通过浏览器+互联网访问一些家里 / 远程电脑设备上的程序或者文件,例如在星巴克办公的时候,希望连上星巴克的 WiFi ,可以把家里电脑上的文件拖过来;而家里的网络属于局域网,也就是“内网”,不能被互联网(外网)直接访问,因此需要一种名为内网穿透的技术,帮助我们通过互联网(星巴克 WiFi)就可以访问家里电脑的文件。

而对于可以被公网访问的服务器,一般拥有固定的 IP 地址,通过浏览器输入IP 地址:端口的形式就可以直接访问服务器上(公开访问)的程序或文件,但是这样访问有几个主要的缺点,一是难以记忆,二是服务器的 IP 和端口暴露,容易被攻击和爆破,三是传输的信息没有经过加密,容易被中间人攻击等等,帮助我们解决这些问题的技术叫做反向代理,它通过将IP 地址:端口映射到特定的域名,并配置 SSL/TLS 证书来实现对服务器的安全访问。

如果我们有家用电脑或者云服务器需要进行外部安全的访问,免费的 Cloudflare Tunnel 是我们最好的选择。

使用 Cloudflare Tunnel,您可以运行 cloudflared 服务,将位于内部网络的服务器安全地暴露在互联网上。例如,在您的内部网络上安装 cloudflared 后,您可以将您的本地 Web 应用程序暴露在互联网上,比如 example.com,使远程办公者可以在任何地方访问。

Cloudflare Tunnel 是一款隧道软件,可以快速安全地加密应用程序到任何类型基础设施的流量,让您能够隐藏你的 web 服务器 IP 地址,阻止直接攻击,从而专注于提供出色的应用程序。

这篇文章将帮助大家安装配置 Cloudflare Tunnel。

1. 将域名托管到 Cloudflare

首先我们需要在域名注册商购买一个域名,本篇文章将使用我在域名注册商 Spaceship.com 以0.67USD/年购买的 044447.xyz,将该域名从 Spaceship 托管到 Cloudflare

2. 创建 Cloudflare Zero Trust 账户

Cloudflare Zero Trust 是一个安全框架,旨在通过验证和保护所有的网络访问(无论用户或地点)来保护组织免受网络威胁。而我们要使用的 Cloudflare Tunnel 是 Zero Trust 框架下的一个工具/服务。

点击管理侧边栏的 Zero Trust,

输入自定义的账户名称,

选择付费计划,免费计划 Free 即可,点击 Select Plan,

点击 Proceed to payment 添加付款信息,

绑定支付方式,可选 Visa/Master 信用卡,或者 PayPal,以及填写身份信息和账单地址,注意这里只是绑定了信用卡或 PayPal,Cloudflare 并不会进行扣款,

这里身份信息和账单地址可以使用虚拟信息,例如这个网站,谷歌搜索”虚拟信息生成“有更多类似的网站;下面的 Account Type(账户类型)选择 Personal(个人账户),点击 Next,

这样 Cloudflare Zero Trust 账户就创建完成了。

如果只使用 Cloudflare Tunnel 服务,在添加付款信息的时候,右上方有一行 Cancel and exit,亲测选了之后再进入 Zero Trust 就不用创建计划了。

3. 在 Cloudflare Zero Trust 下创建 Tunnel

点击左边侧边栏 Networks 下的 Tunnels,再点击 Add a tunnel,

选择 Cloudflared 作为连接工具连接到 Cloudflare 全球网络,

填写自定义 Tunnel 名称,

选择要安装 Cloudflared 的系统和 CPU 架构,获取安装方式,注意显示的安装命令里含有该条 Tunnel 的 token(密钥),请不要泄露这些密钥到公网。

4. 在本地主机安装 Cloudflared

Cloudflared 客户端支持原生安装到 Windows,Mac,主流 Linux 发行版(Debian,Red Hat),以及作为容器运行在跨平台的 Docker 上,

这里以运行 Debian 11 系统的云服务器为例,SSH 登入服务器,再一键复制,跑上面界面给的安装命令(每个 Tunnel 的安装命令都不一样),

curl -L --output cloudflared.deb <https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb> && 

sudo dpkg -i cloudflared.deb && 

sudo cloudflared service install $token

回到 Tunnel 管理界面,如果 Status 显示绿色 HEALTHY,就表示隧道创建成功了。

5. 本地主机运行程序

接下来就可以使用本地主机安装、运行各种需要外部访问的程序了,这里以 Web 笔记软件 Memos 为例,我们首先安装好 Docker 与 Docker Compose,再安装 Memos,Memos 运行在主机 IP 的 5230 端口上,如果主机没有公网 IP,如家用的 Windows / Mac / Linux 系统电脑,在浏览器输入 localhost:5230 即可访问,如果是云服务器,有公网 IP,输入 IP:5230,即可访问 Memos,

6. 在 Cloudflare 为主机程序配置域名

打开 Tunnel 管理界面,在右边选项找到 Configure,

选择 Public Hostname,再点击 Add a public hostname,

主要要填这几个部分:

  • Subdomain:子域名,推荐用不同的子域名来区分不同的程序,如我在这里填 memos
  • Domain:主域名,比如我这里的 044447.xyz
  • Type:由于是 Web 访问程序,选择 http
  • URL:填写 IP:端口,有公网 IP 就填公网 IP,没有公网 IP 就填 localhost

填好后,选择右下方 Save hostname 保存,

这样我们就可以在任意可以连接互联网设备的浏览器上,输入 memos.044447.xyz 来访问我们搭建在云服务上的 Memos 了。

相较于其它的内网穿透和反向代理工具,Cloudflare Tunnel 使用免费、安装配置简单,提供强大的安全防护,和域名 SSL/TLS 证书,可以说只需要把域名托管到 CLoudflare,就不用担心各种非主机端的网络安全问题;只是如果在中国大陆的网络环境下,访问 Cloudflare 代理的程序/服务延迟较高(150ms+),且时不时会遇到 ISP 的阻断。

订阅评论
提醒
guest

0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
You May Also Like