前言

之前在家里的爱普生 ST190E 小主机上搭建了小说壁纸站服务,并通过 FRP 做内网穿透(frps 服务器部署在 RackNerd 的 VPS 上)。但最近 RackNerd 的 IP 被移动网络屏蔽,内网穿透服务也随之失效,导致外网访问中断,。

因此决定改用 Cloudflare Tunnel 来替代原有的 FRP 方案,实现更稳定的内网穿透,并顺便记录整个迁移过程。

在家里小主机上安装客户端

登录家里的 st190e 终端,运行:

1
2
3
4
5
# 下载 Ubuntu 24.04 (Noble) 适用的官方安装包
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

# 安装
sudo dpkg -i cloudflared.deb

在 Cloudflare 网页后台创建隧道

  1. 登录 Cloudflare 后台,进入左侧的 Zero TrustNetworksConnectors
  2. 点击 Create a Tunnel,选择 Cloudflare Tunnel
  3. 随便起个名字(比如 home-st190e-tunnel),点击 Save

创建隧道

家里小主机接管隧道

在网页上选择 Debian / Ubuntu -> amd64 之后,下方会给出一行带有 Token 的命令(类似 sudo cloudflared service install eyJ...)。

  1. 复制这行命令,粘贴到家里 st190e 的终端执行。
  2. 看到服务启动成功的提示后,回到网页,隧道状态会瞬间变成绿色的 HEALTHY

在Cloudflare网页后台映射本地服务

点击 Published application routesAdd a Published application routes

发布程序路由

填写映射本地服务的配置表单

  • 子域名 (Subdomain):填 wallpaper(根据服务或者需要自定义名字)
  • 网域 (Domain):在下拉菜单里选择绑定在 Cloudflare 的主域名 pkll.de
  • 路径 (Path):留空,什么都不用填
  • 服务 (Service)
    • 类型 (Type):选择 HTTP(千万别选 HTTPS,本地服务通常是纯 HTTP,CF 会在公网自动帮你套上 HTTPS)
    • URL:填 127.0.0.1:9520(直接填本地回环地址加服务的实际端口)

填写完成后,点击右下角的 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
2
3
4
5
6
7
8
# 重启隧道(最常用)
sudo systemctl restart cloudflared

# 停止隧道(停止公网访问)
sudo systemctl stop cloudflared

# 启动隧道
sudo systemctl start cloudflared

3. 查看实时连接日志

如果某天发现网站打不开了,可以通过这个命令看它本地在报什么错:

1
2
# 查看最后 50 行日志,并保持滚动实时刷新
sudo journalctl -u cloudflared -n 50 -f

4. 开机自启控制(默认已开启)

1
2
3
4
5
# 允许开机自启(安装时已默认开启,无需重复执行)
sudo systemctl enable cloudflared

# 禁止开机自启
sudo systemctl disable cloudflared

5.更换、删除或更新

  • 卸载或清理当前 Token 痕迹:

如果以后想换一个 Cloudflare 账号,或者想重新生成一条隧道,需要先在小主机上把旧服务注销:

1
2
3
4
5
# 1. 停止并注销系统服务
sudo cloudflared service uninstall

# 2. 清理掉下载的安装包(强迫症可选)
rm ~/cloudflared.deb
  • 要更新 cloudflared 客户端版本:

由于是用 dpkg -i 离线包安装的,它不会跟随 apt upgrade 自动更新,只需要重新执行一遍第一步:下载最新的 .deb 包,再次执行 sudo dpkg -i 覆盖安装即可, Token 配置不会丢失。