内网穿透 篇四:通过 Cloudflare Tunnel 内网穿透 实现公网访问内网服务

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

通过 Cloudflare Tunnel,我们可以直接把内网搭建的服务穿透到公网上,与 frp 不同的是,Cloudflare Tunnel 并不需要购买有公网 IP 的服务器,直接通过 Cloudflare 就可以完成穿透,并且还能使用 80/443 端口。要想使用 Cloudflare Tunnel 需要满足条件:

  • 一个域名 (6-9位纯数字的 xyz 域名只需 0.67 美元一年)
  • 一张双币信用卡 一个绑定借记卡的 PayPal 账号 (用于开通 Cloudflare Zero Trust 免费计划,推荐使用 PayPal 绑定一张余额 0 的借记卡,防止误操作造成扣费)

部署

  1. 打开 Cloudflare Zero Trust 工作台
  2. 创建 Cloudflare Zero Trust,选择免费计划
  3. 添加付款方式,可以输入双币信用卡或者在 Payment method 右侧选择 PayPal
  4. 在 Tunnels 中创建一个 Tunnel,名字可以随意填写

tunnel1

  1. 一般情况下推荐选择 Docker 进行部署

部分架构 (例如 arm) 无法通过 Docker 运行的,可以通过下载 release 中对应架构的版本进行手动安装

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-armhf.deb && 
sudo dpkg -i cloudflared.deb && 
sudo cloudflared service install <token>

tunnel2

  1. 由于官方提供的部署命令没有给容器增加名称与后台运行功能,因此可以使用以下命令进行部署 (最后加上自己的 token)
docker run --name cloudflared -d --restart=unless-stopped cloudflare/cloudflared:latest tunnel --no-autoupdate run --token
  1. 容器部署成功后,就可以在给 Tunnel 添加 Public hostname
    • Domain 选择托管在 Cloudflare 的主域名
    • Subdomin 为需要访问的子域名
    • Type 内网服务一般选择 HTTP
    • URL 填写内网 IP + 端口

tunnel3

  1. 点击 Save hostname 保存后,稍等片刻,访问刚才设置的域名 (可以通过 https 进行访问,Cloudflare 会自动帮我们添加 SSL 证书),就能直接访问到内网部署的服务了
### 使用 CloudFlare 进行内网穿透的配置教程 #### 一、准备工作 为了使其他用户能够通过公网访问内部网络服务,需先准备好一个属于自己的域名。此域名用于指向CloudFlare提供的DNS服务器。 #### 二、购买并设置域名 前往任意支持CloudFlare DNS管理的注册商处购买域名,并按照指示将该域名下的DNS解析服务切换至由CloudFlare提供[^4]。 #### 三、创建隧道 登录到CloudFlare账户,在仪表板中找到对应站点后点击进入详情页面。接着选择“Tunnel”选项卡来新建一条隧道记录。这一步骤实际上是在CloudFlare平台上建立了一条通往目标机器的安全通道。 #### 、安装与启动客户端软件 从官方渠道获取适用于操作系统的命令行工具`cloudflared`,它负责维持本地计算机同远端之间的稳定连接。对于Windows平台而言,可执行文件通常命名为`cloudflared.exe`; 对于Linux或macOS,则直接名为`cloudflared`. 将其放置在一个易于调用的位置之后,打开终端窗口输入如下指令完成初步认证过程: ```bash cloudflared tunnel login ``` 上述命令会引导浏览器跳转至特定网页以确认身份合法性,随后自动下载必要的证书材料保存在指定路径下以便后续步骤使用. #### 五、关联隧道与应用实例 再次利用`cloudflared`提交HTTP(S)流量映射请求给定名称的现有隧道资源上: ```bash cloudflared tunnel route ingress <tunnel-name> \ --hostname www.example.com "http://localhost:80" ``` 这里假设希望把来自互联网针对子域`www.example.com`的一切入站请求都导向本机监听着标准Web端口(即TCP/80)上的简易静态页面展示程序. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值