Cloudflare Tunnel 零信任隧道搭建教程

Cloudflare Tunnel(原名 Argo Tunnel)是 Cloudflare 提供的零信任网络隧道服务,通过在本地运行一个轻量级的 cloudflared 守护进程,将内网服务安全地暴露到互联网。最大的优势在于不需要在防火墙上开放任何入站端口,所有连接都是出站发起的,从根本上消除了端口扫描攻击的风险。本教程将介绍如何在搬瓦工 VPS 上配置 Cloudflare Tunnel。

一、Cloudflare Tunnel 的优势

  • 零端口暴露:不需要在防火墙上开放任何入站端口。
  • 自动 HTTPS:Cloudflare 自动提供 SSL/TLS 证书。
  • DDoS 防护:流量经过 Cloudflare 全球 CDN 网络,自带 DDoS 防护。
  • 访问控制:集成 Cloudflare Access,可配置邮箱验证、SSO 等认证方式。
  • 免费使用:基础隧道功能完全免费。

二、前提条件

  • Cloudflare 账户(免费即可)。
  • 一个已添加到 Cloudflare 的域名(DNS 托管在 Cloudflare)。
  • 搬瓦工 VPS 已部署要暴露的服务。

三、安装 cloudflared

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb

CentOS 系统使用 RPM 包:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
rpm -i cloudflared-linux-x86_64.rpm

验证安装:

cloudflared --version

四、认证登录

cloudflared tunnel login

命令会输出一个 URL,在浏览器中打开并选择要使用的域名进行授权。授权后会在 ~/.cloudflared/ 目录下生成证书文件。

五、创建隧道

cloudflared tunnel create my-tunnel

创建成功后记录隧道 ID(UUID),后续配置需要使用。

六、配置隧道路由

创建配置文件:

mkdir -p ~/.cloudflared
cat > ~/.cloudflared/config.yml <<EOF
tunnel: 隧道UUID
credentials-file: /root/.cloudflared/隧道UUID.json

ingress:
  - hostname: app.yourdomain.com
    service: http://localhost:8080
  - hostname: ssh.yourdomain.com
    service: ssh://localhost:22
  - hostname: nas.yourdomain.com
    service: http://localhost:5000
  - service: http_status:404
EOF

最后一条 http_status:404 是必须的默认规则,处理所有未匹配的请求。

6.1 配置 DNS 记录

cloudflared tunnel route dns my-tunnel app.yourdomain.com
cloudflared tunnel route dns my-tunnel ssh.yourdomain.com
cloudflared tunnel route dns my-tunnel nas.yourdomain.com

此命令会自动在 Cloudflare DNS 中创建 CNAME 记录。

七、启动隧道

cloudflared tunnel run my-tunnel

验证隧道状态:

cloudflared tunnel info my-tunnel

7.1 注册为系统服务

cloudflared service install
systemctl enable cloudflared
systemctl start cloudflared

八、通过 Dashboard 创建隧道

除了命令行方式,也可以直接在 Cloudflare Zero Trust Dashboard 中创建和管理隧道。登录 Cloudflare Dashboard,进入 Zero Trust - Networks - Tunnels 页面,点击创建隧道后会生成一条安装命令,直接在 VPS 上执行即可:

cloudflared service install eyJhIjxxxxxxxxxxxxxxxxx

Dashboard 创建的隧道可以在网页上直接管理路由规则,无需编辑配置文件。

九、配置 Cloudflare Access 访问控制

对于敏感服务(如 SSH、管理面板),建议配置 Cloudflare Access 进行身份验证:

  • 在 Zero Trust Dashboard 中创建 Access Application。
  • 设置允许访问的邮箱地址或域名。
  • 用户访问时会先经过 Cloudflare 的登录页面验证身份。

这为内网服务增加了一层强大的身份认证保护,即使不小心泄露了域名也不用担心。

十、SSH 通过浏览器访问

配合 Cloudflare Access,可以实现通过浏览器直接访问 SSH 终端,在 ingress 规则中使用 SSH 协议后,在 Access 中启用 Browser Rendering 功能即可。

十一、常见问题

隧道连接不稳定

查看 cloudflared 日志排查原因:

journalctl -u cloudflared -f

502 错误

通常是本地服务未启动或端口配置错误,确认本地服务正常运行:

curl -v http://localhost:8080

总结

Cloudflare Tunnel 是目前最安全便捷的内网服务暴露方案,不需要管理证书,不需要开放端口,还附带了 CDN 加速和 DDoS 防护。在搬瓦工 VPS 上配合使用,可以让你的各种自部署服务安全地对外提供访问。如果需要纯自建的穿透方案,可以参考 FRP 教程NPS 教程。购买搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。