配置 Cloudflare Tunnel:把 Mac 上的 Web 服务变成安全域名

本文详细介绍,任意电脑上,用浏览器打开 https://ollamawebui.你的域名.xyz 这样的地址,直接访问 Mac 里的 Docker 服务,而且全程 HTTPS + 邮箱验证,只有你自己能进

说明

  • 有一台mac或者其他电脑
  • 部署了ollama,并且配置了open webui作为查询界面
  • 域名已经托管到cloudflare
  • 核心工具是 Cloudflare Tunnel(原名 Argo Tunnel)
  • 完全免费,不限流量,自动搞定 HTTPS 证书

在 Mac 上安装 cloudflared

打开 Mac 终端,执行:

Bash 复制代码
brew install cloudflare/cloudflare/cloudflared

验证是否安装成功:

Bash 复制代码
cloudflared version

登录 Cloudflare 授权

Bash 复制代码
cloudflared tunnel login

命令执行后会自动打开浏览器,跳转到 Cloudflare 的授权页面。

在页面里选中你已经托管在 Cloudflare 的域名(例如 你的域名.xyz),点击授权。

浏览器提示成功后,终端会同步显示"已成功登录",本地也会保存证书文件。

创建一条专属隧道

给隧道起个名字,比如 mac-dev

Bash 复制代码
cloudflared tunnel create mac-dev

终端会返回一个 Tunnel ID ,同时在 ~/.cloudflared/ 目录下生成对应的凭证 JSON 文件。

这个 ID 和文件后面会用到。

把子域名绑定到隧道

现在你想让 ollamawebui.你的域名.xyz 这个域名,最终访问到 Mac 上的 ollamawebui WebUI(端口 8081)

需要执行以下命令,为隧道添加 DNS 路由:

Bash 复制代码
cloudflared tunnel route dns mac-dev ollamawebui.你的域名.xyz

命令会自动在 Cloudflare 的 DNS 记录里添加对应的 CNAME 条目,完全不需要你手动去 Cloudflare 后台操作。

编写隧道配置文件

创建一个配置文件 ~/.cloudflared/config.yml,内容如下:

YAML 复制代码
tunnel: 1e4bff13-对齐token-4de8e2494c21
credentials-file: /Users/duo/.cloudflared/1e4bff13-对齐token-4de8e2494c21.json
protocol: http2
ingress:
  - hostname: flink.你的域名.xyz
    service: http://localhost:8888

注意替换 <你的Tunnel ID> 和用户名,以及 hostname 要改成你自己的域名。

最后一条 http_status:404 表示如果访问的子域名没有匹配到规则,就直接返回 404,不暴露任何东西。

启动隧道并设为开机自启

先前台跑一次测试:

Bash 复制代码
cloudflared tunnel run mac-dev

终端会输出连接日志,此时打开浏览器,访问 https://ollamawebui.你的域名.xyz,应该能看到你的 ollamawebui WebUI 页面。

安装为后台服务并设为开机启动:

Bash 复制代码
sudo cloudflared service install
brew services start cloudflared

以后只要 Mac 开着,即使你重启,这个隧道也会自动连上。

加上 Cloudflare Access 邮箱验证(最后一道锁)

现在虽然域名能访问了,但其实只要知道域名的人都能打开你的 ollamawebui 界面,这非常危险。

Cloudflare Access 可以在打开页面之前,强制要求输入邮箱,并发送一次性验证码,只有你指定的邮箱才能进入。

打开 Cloudflare Zero Trust 控制台(地址:https://one.dash.cloudflare.com/):

  • 左侧菜单点击 AccessApplications ,然后点 Add an application
  • 选择 Self-hosted
  • 应用名称随便填,例如 "ollamawebui",应用域名填 ollamawebui.你的域名.xyz,点击 Next。
  • 在策略页面,Policy name 填 "Allow my email",然后在 Include 选择器里选择 Emails ,输入你自己的邮箱地址(例如 you@example.com)。
  • 点击 Add policy ,然后 Next,最后点 Add application 完成。

现在,你用任何设备打开 https://ollamawebui.你的域名.xyz,都会先看到一个 Cloudflare 的邮箱验证页面。

输入你的邮箱,点击发送验证码,在邮箱里查收并填入,才能看见真正的 WebUI

这一步要绑定visa或mastercard,不会扣费,只是验证

最后

整个方案的核心思想就是"零信任":不信任任何网络,每个入口都要验证身份,且全程加密。

你的 Mac 虽然放在家里,但现在它已经拥有了企业级的安全远程访问能力。

快去搭建属于你自己的远程开发环境吧!有什么问题欢迎评论区留言!

相关推荐
云栖梦泽在3 小时前
Claude Code / Codex 使用卡顿怎么办?AI 编程 Agent 连接失败与网络排查思路
网络·人工智能·网络协议·chatgpt·性能优化
子不语1806 小时前
从0开始学习S7-1200+ET200SP(3)——两台S7-1200通过TCP连接
网络协议·学习·tcp/ip
折哥的程序人生 · 物流技术专研7 小时前
Java面试通关⑦:JavaWeb网络核心全集
网络协议·http·javaweb·校招·前后端交互·java面试·社招
小蜗牛的路9 小时前
使用OpenSSL生成本地证书https+nginx
网络协议·nginx·https
FPGA小迷弟10 小时前
vivado中的AXI Interconnect到底应该怎么用,他的底层原理是什么,一篇文档全部理清楚!!!
网络协议·tcp/ip·fpga开发·verilog·fpga
网络攻城狮_11 小时前
网络协议大全
运维·网络·网络协议·http
hbugs0011 天前
【案例分享】全网首个华三数据中心流量可视化实验,基于EVE-NG V7平台
网络·网络协议·安全·devops·eve-ng
yxl874646461 天前
PCTG-1015型Profinet转Ethernet/IP协议转换器
服务器·网络·物联网·网络协议·自动化·信息与通信
pW3g3lLuu1 天前
.NET 高级开发 | http 接口对接和客户端开发技巧
网络协议·http·.net
阿标在干嘛1 天前
政策快报爬虫的生存指南:IP池、浏览器模拟、验证码识别实战
爬虫·网络协议·tcp/ip