惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
D
Docker
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
U
Unit 42

Dejavu's Blog

甲骨文 ARM 实例部署 Gemma 4 模型 Headscale + Tailscale 组建虚拟专用网 在 Linux 上使用 Yubikey OpenPGP 应用 BuyVM VPS 块存储挂载教程 Alpine Linux 服务器配置指南 Alpine Linux 安装 Cloudflared Docker 多容器共享中心数据库 安装 Komari 服务器监控工具 Scaleway VPS 安装 Debian Linux Debian 13 下部署 AsmBB 论坛 使用 Kopia 自动化备份服务器数据 给 Docker 启用 IPv6 支持 Netcup 服务器安装自定义 ISO 镜像 烽火 HG5582A 光猫开启桥接模式 Docker 自托管 Shlink 短链服务 部署 Obsidian LiveSync 实时同步服务指南 我的 2025 年不完全回顾 Linux 下 Intel 核显驱动配置与硬件加速 Fedora Linux 安装配置记录 2025 年优雅地自托管 RSS 服务 Woodpecker CI 和 Gitea 实现 Hugo 自动部署 Gitea/Forgejo 集成 Woodpecker CI/CD 在 Blinko 中使用 Ollama 作为 AI 供应商 Docker 部署 Gitea/Forgejo Plausible CE 启用城市级地理位置识别 Blinko 开源 AI 知识库 Docker 部署指南 Netcup 免税账号注册及购买服务器全记录 Docker 自托管 Cloudreve Pro 私有网盘服务 GiffGaff SIM 卡使用体验和注意事项 简体中文互联网在变得糟糕吗?
初探 Cloudflare 零信任 - 通过 Cloudflare Tunnel 访问服务
Dejavu Moe · 2022-11-18 · via Dejavu's Blog

前言

前段时间发现一个开源可自托管的网站服务运行状态监控服务—— Uptime Kuma ,最近在整理 Oracle 免费服务器,早就想玩 Cloudflare Zero Trust 了,这次先来试试 Cloudflare Tunnel。

Uptime Kuma

初始条件:

  • 域名已经添加到 Cloudflare 上
  • 在 Cloudflare Zero Trust 平台注册一个 Team (Free Plan 即可)

准备环境

Cloudflare Tunnel

本文演示的服务器是新开的 Oracle 免费服务器 (Ubuntu 22.04.1 LTS x86_64),通过 SSH 登录

# 刷新软件源 && 更新软件包
sudo apt update && \
apt upgrade -y

# 安装环境所需的软件包
sudo apt install -y curl wget && \
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
sudo apt install -y nodejs

# 验证安装
node -v
npm -v

# 安装 PM2 守护进程管理器
sudo npm install pm2 -g

[可选] 设置系统 Swap 交换分区

因为 Oracle 免费服务器的运行内存很小,所以这里先设置下 Swap

# 1GB RAM with 2GB Swap
sudo fallocate -l 2G /swapfile && \
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152 && \
sudo chmod 600 /swapfile && \
sudo mkswap /swapfile && \
sudo swapon /swapfile && \
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab && \
sudo swapon --show && \
sudo free -h

部署 Uptime Kuma

上面的「准备环境」完成后就可以开始部署 Uptime Kuma 了

git clone https://github.com/louislam/uptime-kuma.git && \
cd uptime-kuma && \
npm run setup

# 使用 PM2 守护运行 Uptime Kuma
pm2 start server/server.js --name uptime-kuma
# 设置 PM2 跟随系统启动(执行提示的命令)
pm2 startup
# 开始守护 uptime-kuma 服务(现在 Uptime Kuma 运行在本地 3001 端口上)
pm2 start uptime-kuma

后续 PM2 对 Uptime Kuma 的进程守护和管理

# 启动 Uptime Kuma
pm2 start uptime-kuma
# 查看 Uptime Kuma 运行状态
pm2 status uptime-kuma
# 停止 Uptime Kuma 服务
pm2 stop uptime-kuma
# 重启 Uptime Kuma 服务
pm2 restart uptime-kuma

登录 Cloudflare Zero Trust 控制台,选择左侧导航栏的 Access 菜单,进入 Tunnels 配置,点击 Create a tunnel 创建一个 Tunnel,输入 Tunnel 隧道名称

Tunnel Name

选择服务器的操作系统和平台架构

Choose Environment

复制左边命令粘贴到 SSH 会话里安装 Cloudflared(注意保护 Refresh Token 不要泄漏)

Install Cloudflared

现在 Cloudflared 服务已经正常安装在我们的服务器上了,接下来配置 Cloudflared 监听服务即可

Add Public Hostname

点击保存,Cloudflare 会自动给托管的域名添加一条 DNS 解析记录。现在打开你的域名就可以愉快的访问了。

PS:只要是可以安装 Cloudflared 的机器、并且能访问 Cloudflare 网络,就可以使用 Cloudflare Tunnel 保护服务的访问。

Cloudflare Tunnel 可以用是内网穿透、反向代理、完全自动的 HTTPS,支持 HTTP, HTTPS, TCP, UNIX, SSH, RDP, SMB, UNIX+TLS… 等协议,如果配合 Cloudflare 的零信任策略,还可以有更安(hao)全(wan)的玩法,比如:零信任 SSH、Web SSH、Web RDP 等等。

参考资料