此阶段在您的本地电脑上完成,只需操作一次。
下载并安装 cloudflared
访问 Cloudflare 官方下载页面,根据您的操作系统(Windows/macOS/Linux)下载对应的 cloudflared 程序并将其放置在易于访问的路径。
授权 cloudflared
打开您电脑的命令行工具(Windows Terminal, PowerShell, macOS Terminal 等)。
运行以下命令:
cloudflared tunnel login
此命令会自动打开一个浏览器窗口,要求您登录 Cloudflare 账户。选择您要使用的域名,点击 "Authorize"(授权)。
授权成功后,cloudflared 会在您的用户目录下生成一个 cert.pem 凭证文件,后续操作会自动使用该凭证。
这是实现“一劳永逸”最关键的步骤。
创建隧道配置文件 (config.yml)
这是最重要的一步,它告诉隧道服务要把流量转发到哪里。
找到 cloudflared 目录:
在 Windows 上,通常是 C:\Users\您的用户名\.cloudflared\
在 macOS/Linux 上,通常是 ~/.cloudflared/
移动凭证文件: 将在阶段二第1步中生成的 .json 凭证文件移动到这个 .cloudflared 文件夹中。
创建并编辑 config.yml: 在 .cloudflared 文件夹中,新建一个名为 config.yml 的文件,并填入以下内容:
# 隧道的 UUID,从创建隧道时的输出中获取
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# 凭证文件的路径
credentials-file: C:\Users\您的用户名\.cloudflared\xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
# Ingress Rules: 定义流量转发规则
ingress:
# 规则1: 将来自您域名的请求,转发到本地的 8000 端口
- hostname: laptop.teaforia.in
service: http://localhost:8000
# 规则2: 对于所有其他未匹配的请求,都返回 404 Not Found
- service: http_status:404
请务必修改文件内容:
tunnel: 替换为您自己的隧道 UUID。
credentials-file: 确保路径和文件名正确。
hostname: 替换为您在阶段二第2步中设置的子域名。
service: 确保指向您本地正在运行的正确端口。
确保本地服务正在运行
请确保您要发布的应用(例如 Docker 容器或本地npm run dev)已经启动。
示例 (Docker): docker-compose up -d
cloudflared tunnel --config "C:\Users\eric peng\.cloudflared\config.yml" run
创建脚本文件
在您的桌面上,点击右键 -> 新建 -> 文本文档。
将这个新文件重命名为 start-tunnel.bat。(注意,后缀名是 .bat 而不是 .txt)
编辑脚本内容
在 start-tunnel.bat 文件上点击右键,选择“编辑”。
将我们手动的那条命令,完整地复制并粘贴进去并加上自动最小化视窗功能:
start /min "Cloudflare Tunnel" cloudflared tunnel --config "C:\Users\eric peng\.cloudflared\config.yml" run
保存并关闭文件。
打开“运行”对话框
按下键盘上的 Win + R 键。
进入启动文件夹
在“运行”对话框中,输入 shell:startup 然后按回车。
这会打开一个名为“启动”的文件夹。
放置脚本
将您刚刚在桌面上创建的 start-tunnel.bat 文件,剪切并粘贴到这个“启动”文件夹中。
清理旧的服务
打开一个管理员命令提示符 (cmd.exe)。
运行 sc delete Cloudflared,确保之前所有失败的服务都已被彻底删除。如果提示服务不存在,则是最好的状态。
重启电脑
现在,请重新启动您的电脑。
最终验证
当您重启并登录 Windows 后,系统会自动运行“启动”文件夹里的 start-tunnel.bat 脚本。
您会看到一个黑色的命令行窗口弹出,并开始运行隧道的连接日志,请不要关闭这个窗口,可以将其最小化。
此时,打开浏览器,访问您的域名 https://laptop.teaforia.in。
您应该可以成功看到您本地的服务界面。问题已彻底解决。