通过 Cloudflare Tunnel 实现内网服务的公网访问

本文介绍了如何通过Cloudflare Tunnel实现内网服务的公网访问,无需公网IP服务器即可穿透内网服务,并支持80/443端口。部署步骤包括注册Cloudflare Zero Trust免费计划、配置Tunnel(推荐Docker方式),以及绑定域名和子域名,最终通过HTTPS访问内网服务。

关键要点列表:

  1. 无需公网IP:Cloudflare Tunnel可直接穿透内网服务,无需额外服务器。
  2. 免费计划要求:需域名和双币信用卡/PayPal账号(推荐绑定0余额借记卡)。
  3. 部署方式:支持Docker或手动安装,提供Docker Compose配置示例。
  4. 域名配置:需托管在Cloudflare的主域名,通过子域名映射内网服务IP和端口。
  5. 自动HTTPS:Cloudflare自动提供SSL证书,支持安全访问。

通过 Cloudflare Tunnel,我们可以将内网服务直接穿透到公网上。与 frp 不同,Cloudflare Tunnel 不需要购买公网 IP 服务器,只需通过 Cloudflare 即可实现,并支持 80/443 端口。使用 Cloudflare Tunnel 的条件包括:

一个域名(6-9 位纯数字的 xyz 域名仅需 0.67 美元一年)
一张双币信用卡或一个绑定借记卡的 PayPal 账号(用于开通 Cloudflare Zero Trust 免费计划,建议使用余额为 0 的借记卡绑定 PayPal,以防误操作扣费)。

部署

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

 

  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>

安装 Tunnel
安装 Tunnel
  1. 由于官方提供的部署命令没有给容器增加名称与后台运行功能,因此可以使用以下命令或者 Docker Compose 进行部署 (最后加上自己的 token)
 # Dockerdocker run --name cloudflared -d --restart=unless-stopped cloudflare/cloudflared:latest tunnel --no-autoupdate run --token
# Docker Composeservices:cloudflared:image: cloudflare/cloudflared:latestcontainer_name: cloudflarednetwork_mode: hostrestart: unless-stoppedcommand: tunnel run --token

容器部署成功后,就可以在给 Tunnel 添加 Public hostname

    • Domain 选择托管在 Cloudflare 的主域名
    • Subdomin 为需要访问的子域名
    • Type 内网服务一般选择 HTTP
    • URL 填写内网 IP + 端口

添加服务
添加服务
  1. 点击 Save hostname 保存后,稍等片刻,访问刚才设置的域名 (可以通过 https 进行访问,Cloudflare 会自动帮我们添加 SSL 证书),就能直接访问到内网部署的服务了。

原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/886.html

(0)
上一篇 22小时前

相关推荐