operations-manual
云账本 · 运维手册
这份手册是给「几个月后的自己」看的:系统怎么跑的、东西都在哪、坏了按什么顺序查。
不需要懂技术,照着做即可。最后更新:2026-09-12
目录
一、系统全景
📱 手机(任何网络,不需要装任何东西)
│
├── https://1298sg5zx1280.vicp.fun ← 花生壳通道(快,0.3 秒)
└── https://jz.dlink.work ← 自己的域名(稳,1.1 秒)
│
↓ 两条完全独立的通道,互为备用
│
💻 你的电脑
│
├── 花生壳客户端 把公网请求转进来
├── cloudflared 把公网请求转进来(另一条路)
│
└── 云账本 node 监听 0.0.0.0:51194
└── SQLite data/book.db ← 所有数据都在这里
三个要点:
- 手机不需要装 VPN、不需要装 App,浏览器直接开网址
- 两条通道互相独立 —— 一条挂了可以立刻换另一条
- 数据只存在你自己电脑上,花生壳和 Cloudflare 只转发请求,不存数据
二、日常使用
手机
打开任一网址 → 登录 → 用。建议把两个地址都加到手机浏览器书签或桌面。
| 地址 | 通道 | 建议 |
|---|---|---|
https://1298sg5zx1280.vicp.fun |
花生壳 | 平时用这个,快一倍 |
https://jz.dlink.work |
自己的域名 | 花生壳出问题时换成这个 |
电脑
什么都不用做。 开机登录后,云账本和两条隧道会自动在后台启动。
什么时候必须开着电脑
想让手机能用时,电脑必须开机 —— 隧道是从你电脑主动连出去的。
电脑关机 = 手机打不开(数据不受影响)。
三、开机自启了什么
在「启动」文件夹里放了两个快捷方式(Win+R 输入 shell:startup 可打开):
云账本.lnk → deploy\run-hidden.vbs → 启动云账本(无窗口)
云账本-隧道.lnk → deploy\run-tunnel-hidden.vbs → 启动 Cloudflare 隧道(无窗口)
花生壳客户端有它自己的开机自启。
查看是否生效(在项目目录跑):
Get-ChildItem ([Environment]::GetFolderPath('Startup')) -Filter *.lnk
取消开机自启:
双击 deploy\install-autostart.cmd 时加 -Uninstall
即在 CMD 里运行: deploy\install-autostart.cmd -Uninstall
四、故障排查:按这个顺序查
核心原则:先换通道,再查日志,最后重启。 不要一上来就重装。
第 1 步 · 换另一个地址试(10 秒)
vicp.fun 打不开 → 试 jz.dlink.work
jz.dlink.work 打不开 → 试 vicp.fun
- 换通了 → 只是某一条通道的问题,服务本身没事。看第 3 步
- 两个都不行 → 大概率是电脑或应用的问题,看第 2 步
第 2 步 · 看日志(1 分钟)
打开这两个文件(用记事本):
| 文件 | 看什么 |
|---|---|
E:\Works\003deepseek\data\server.log |
请求有没有到达电脑。手机操作时这里应该有新行 |
E:\Works\003deepseek\data\tunnel.log |
cloudflared 隧道状态,找 Registered tunnel connection |
判断:
- server.log 有新记录 → 请求到了电脑,问题在通道返回的路上
- server.log 完全没动静 → 请求根本没到,问题在通道或应用没启动
第 3 步 · 看三个东西在不在运行
# 云账本在监听吗
Get-NetTCPConnection -LocalPort 51194 -State Listen
# 两个隧道进程在吗
Get-Process HskDDNS, cloudflared
哪个没有就补哪个:
| 缺了 | 怎么办 |
|---|---|
| 云账本 | 双击项目里的 start.cmd |
| cloudflared | 双击 deploy\run-tunnel-hidden.vbs(会静默启动) |
| 花生壳 | 双击桌面「贝锐花生壳」图标 |
第 4 步 · 看通道本身的状态
花生壳 —— 打开花生壳客户端,看那条映射:
| 显示 | 含义 | 处理 |
|---|---|---|
| 在线 / 正常 | 通道没问题 | 往下查 |
| 网络映射已到期 | 最常见的原因 | 去控制台续费(见第九节) |
Cloudflare —— 看 data\tunnel.log 有没有 Registered tunnel connection。
第 5 步 · 重启电脑
上面都正常还是打不开,就重启电脑。两个自启会把所有服务重新拉起来。
重启后等 1 分钟再试(隧道建立需要几秒)。
五、常见故障对照表
| 现象 | 最可能的原因 | 处理 |
|---|---|---|
| 手机报「网页无法打开 / ERR_EMPTY_RESPONSE」,但地址栏有 🔒 | 花生壳映射到期 | 去花生壳控制台续费 |
| 一直转圈、最后超时 | 电脑关机了,或云账本没启动 | 检查电脑和 start.cmd |
| 提示「证书错误 / 不安全」 | 证书异常(正常不该出现) | 先停止访问,截图记录,改用另一条通道 |
| 能打开页面但登录失败 | 密码错了;或输错太多次被限流 | 等 10 分钟再试 |
| 打开是白屏 | 浏览器缓存问题 | 强制刷新(手机:清浏览器缓存) |
| 花生壳诊断显示「内网连接失败」但实际能用 | 诊断工具在重启间隙测的误报 | 以手机实际能否打开为准 |
| 页面样式乱了 / 显示旧内容 | Service Worker 缓存 | 手机浏览器清缓存后重开 |
六、关键路径速查
项目与数据
| 项 | 路径 |
|---|---|
| 项目目录 | E:\Works\003deepseek |
| 数据库(最重要) | E:\Works\003deepseek\data\book.db |
| 应用日志 | E:\Works\003deepseek\data\server.log |
| 隧道日志 | E:\Works\003deepseek\data\tunnel.log |
| 自动备份 | E:\Works\003deepseek\data\backups\ |
| 端口 | 51194 |
云账本的启动方式
| 场景 | 用什么 |
|---|---|
| 日常(局域网 + 隧道都能用) | start.cmd |
| 只走隧道(更安全,只监听本机) | deploy\start-tunnel.cmd |
| 临时公网隧道(Cloudflare 快速隧道) | deploy\start-online.cmd |
| 停止隧道与云账本 | deploy\stop-online.cmd |
| 开机自启开关 | deploy\install-autostart.cmd(加 -Uninstall 卸载) |
通道配置
| 项 | 位置 |
|---|---|
| Cloudflare 隧道名 | yunzhangben |
| 隧道 ID | 7d02623e-45a4-4eb9-b55c-6fcff81f7ad7 |
| 隧道配置文件 | C:\Users\彭明华\.cloudflared\config.yml |
| 隧道凭证(保密,别外传) | C:\Users\彭明华\.cloudflared\cert.pem 和 7d02623e-*.json |
| 域名 | dlink.work(阿里云注册,NS 托管在 Cloudflare) |
| Cloudflare 名称服务器 | heather.ns.cloudflare.com / renan.ns.cloudflare.com |
修改配置
要改隧道指向的端口:编辑 C:\Users\彭明华\.cloudflared\config.yml 里的
service: http://127.0.0.1:51194,然后重启隧道。
要改云账本端口:设置环境变量 ACCT_PORT,但同时要改上面那个文件。
七、备份与恢复
自动备份
应用内:设置 → 备份与恢复
建议开启「按间隔自动备份」,比如每 24 小时、保留 14 份。
⚠️ 默认只在应用每次启动时备份一次。电脑长期不关机的话,
会有很多天没有新备份 —— 建议务必开启定时备份。
手动备份(推荐每月做一次)
设置 → 备份与恢复 → 下载数据库 → 存到手机或网盘。
这是异地备份。现在的自动备份全在同一块硬盘上,硬盘坏了会一起没。
恢复
设置 → 备份与恢复 → 选择备份文件恢复。
恢复前系统会自动存一份当前快照,恢复失败可以退回。
八、安全
必做
- 用强密码(12 位以上)—— 现在有两条公网路径可达,密码是唯一的门
- 花生壳 / Cloudflare / 阿里云账号都开两步验证 ⚠️
这比密码被破解危险得多:平台账号被盗 = 攻击者能把你的域名指向他的钓鱼页,
而地址栏和证书全都正常,你根本分辨不出来。详见
tunnel-internals.md 第七节 - 域名开启自动续费(阿里云 → 域名 → 自动续费)
- 定期看登录设备 —— 设置 → 登录设备,发现陌生设备立刻下线
- 开启自动备份
⚠️ 一个容易被忽略的风险:局域网明文访问
云账本默认监听所有网卡,所以电脑连到任何网络,同网段的人都能用明文 HTTP 访问它
(包括登录密码):
curl http://192.168.44.4:51194/api/health # -> HTTP 200,明文!
| 场景 | 风险 |
|---|---|
| 家里 Wi-Fi / 自己手机热点 | 🟢 低 |
| 公司 / 学校网络 | 🟡 中 |
| 咖啡厅 / 酒店 / 机场 Wi-Fi | 🔴 高 |
如果平时只用手机走隧道访问,建议改成只监听本机:
双击 deploy\start-tunnel.cmd ← 只监听 127.0.0.1,局域网访问不到,外部只能走隧道
需要在电脑上记账时 http://localhost:51194 照样能用。
反过来,如果你需要在同一 Wi-Fi 下用手机直接访问(不开隧道),
那就保持start.cmd,但要记得别在公共网络下这样做。
已内置的防护
- 密码用 scrypt 加盐散列,不可逆
- 令牌只走请求头,不进 URL
- 登录失败限流(同一来源 10 分钟 10 次 + 全局 50 次)
- 所有响应带安全头(CSP / X-Frame-Options 等)
- 默认不发 CORS 头
- 审计日志记录每个写操作
- 自动备份 + 恢复前快照
不需要做的
- ❌ 不需要 ICP 备案 —— 服务器不在中国大陆
- ❌ 不需要装杀毒软件的额外设置
- ❌ 不需要在路由器上做端口映射
- ❌ 不需要担心隧道服务商会存你的账本 —— 数据只在你本机,
中间方只能看到「经过的请求」,看不到历史账本
九、通道到期了怎么办
花生壳(最可能出问题的)
症状:手机报 ERR_EMPTY_RESPONSE,地址栏有 🔒 但页面空白。
原因:体验版的 HTTP/HTTPS 映射只有 2 小时试用期,你买的是
¥0.01 的「映射服务」(开通功能),按年续费。
处理:
- 打开花生壳客户端或 https://console.hsk.oray.com
- 看那条映射的状态和到期时间
- 续费(注意看续费价格;如果涨到几百元/年,别续)
不想续费 → 直接用 https://jz.dlink.work,把手机书签换过去。
这条通道是你自己的域名,只需每年续域名(约 ¥10)。
Cloudflare / 域名
域名续费:阿里云 → 域名 → 到期时间(每年一次)。
建议开启自动续费,或设手机日历提醒。
证书:Cloudflare 自动续期,不用管。
隧道:永久有效,不用续。
十、从零恢复
万一电脑重装、项目丢失,按这个顺序:
1. 恢复项目
# 从 git 克隆(如果推到过远程)
git clone <仓库地址> E:\Works\003deepseek
# 或者从备份解压
项目零第三方依赖,不需要 npm install。
2. 恢复数据
把备份的 book.db 放到 E:\Works\003deepseek\data\book.db。
3. 恢复开机自启
双击 deploy\install-autostart.cmd
4. 恢复 tunnel 凭证(如果丢了)
Cloudflare 凭证(~/.cloudflared/)如果丢了,重新走一遍:
cloudflared tunnel login # 浏览器授权(注意先验证邮箱)
cloudflared tunnel create yunzhangben # 会生成新的隧道 ID
cloudflared tunnel route dns yunzhangben jz.dlink.work
# 然后按 docs\deploy-option2-tunnel.md 第 4.3 节写 config.yml
旧隧道可以在 Cloudflare 控制台 → Zero Trust → Networks → Tunnels 删除。
5. 恢复花生壳
重新安装花生壳客户端,登录,重新建 HTTPS 映射
(内网主机 127.0.0.1,端口 51194)。
附:相关文档
| 文档 | 内容 |
|---|---|
README.md |
功能说明、安装、使用 |
docs\deploy-option2-tunnel.md |
隧道部署全过程(含所有踩过的坑) |
docs\deployment-analysis.md |
云服务器方案的架构 / 安全 / 成本分析 |
deploy\cloudflared-config.example.yml |
隧道配置模板 |
附:一句话应急卡
手机打不开时:先换另一个网址试 → 不行就看
data\server.log有没有新记录 →
再看花生壳映射是不是到期了 → 最后重启电脑。
浙公网安备 33010602011771号