Cloudflare Tunnel内网穿透教程
前言
之前在家里的爱普生 ST190E 小主机上搭建了小说和壁纸站服务,并通过 FRP 做内网穿透(frps 服务器部署在 RackNerd 的 VPS 上)。但最近 RackNerd 的 IP 被移动网络屏蔽,内网穿透服务也随之失效,导致外网访问中断,。
因此决定改用 Cloudflare Tunnel 来替代原有的 FRP 方案,实现更稳定的内网穿透,并顺便记录整个迁移过程。
在家里小主机上安装客户端
登录家里的 st190e 终端,运行:
1 | # 下载 Ubuntu 24.04 (Noble) 适用的官方安装包 |
在 Cloudflare 网页后台创建隧道
- 登录 Cloudflare 后台,进入左侧的 Zero Trust ➔ Networks ➔ Connectors。
- 点击 Create a Tunnel,选择 Cloudflare Tunnel。
- 随便起个名字(比如
home-st190e-tunnel),点击 Save。

家里小主机接管隧道
在网页上选择 Debian / Ubuntu -> amd64 之后,下方会给出一行带有 Token 的命令(类似 sudo cloudflared service install eyJ...)。
- 复制这行命令,粘贴到家里
st190e的终端执行。 - 看到服务启动成功的提示后,回到网页,隧道状态会瞬间变成绿色的
HEALTHY。
在Cloudflare网页后台映射本地服务
点击 Published application routes ➔ Add a Published application routes:

填写映射本地服务的配置表单
- 子域名 (Subdomain):填
wallpaper(根据服务或者需要自定义名字) - 网域 (Domain):在下拉菜单里选择绑定在 Cloudflare 的主域名
pkll.de - 路径 (Path):留空,什么都不用填
- 服务 (Service):
- 类型 (Type):选择
HTTP(千万别选 HTTPS,本地服务通常是纯 HTTP,CF 会在公网自动帮你套上 HTTPS) - URL:填
127.0.0.1:9520(直接填本地回环地址加服务的实际端口)
- 类型 (Type):选择
填写完成后,点击右下角的 Save hostname(保存) 即可。
| 子域名 (Subdomain) | 主域名 (Domain) | 类型 (Type) | 目标地址 (URL) | 对应原本的本地服务 |
|---|---|---|---|---|
wallpaper |
pkll.de |
HTTP |
127.0.0.1:9520 |
壁纸服务 ✅ |
novel |
pkll.de |
HTTP |
127.0.0.1:8083 |
小说前台 ✅ |

本地小主机上的维护命令
1. 查看当前隧道运行状态
1 | sudo systemctl status cloudflared |
看到绿色的 active (running) 说明一切正常。
2. 手动重启 / 停止 / 启动隧道
1 | # 重启隧道(最常用) |
3. 查看实时连接日志
如果某天发现网站打不开了,可以通过这个命令看它本地在报什么错:
1 | # 查看最后 50 行日志,并保持滚动实时刷新 |
4. 开机自启控制(默认已开启)
1 | # 允许开机自启(安装时已默认开启,无需重复执行) |
5.更换、删除或更新
- 卸载或清理当前 Token 痕迹:
如果以后想换一个 Cloudflare 账号,或者想重新生成一条隧道,需要先在小主机上把旧服务注销:
1 | # 1. 停止并注销系统服务 |
- 要更新
cloudflared客户端版本:
由于是用 dpkg -i 离线包安装的,它不会跟随 apt upgrade 自动更新,只需要重新执行一遍第一步:下载最新的 .deb 包,再次执行 sudo dpkg -i 覆盖安装即可, Token 配置不会丢失。
评论





