部署与安全
装在哪、数据放哪、外网怎么开,都在这一页说清楚。
🐳 Docker 部署(推荐)
适合 NAS / 服务器。核心就两件事:端口映射、数据目录挂载。
services:
zyjkw:
image: crpi-dbr3innzupa5risf.cn-hangzhou.personal.cr.aliyuncs.com/zyjkw/zyjkw:latest
container_name: zyjkw
restart: unless-stopped
ports:
- "10001:10001" # HTTP
- "10002:10002" # HTTPS(证书在 data/certs)
environment:
- TZ=Asia/Shanghai
# - WJK_HTTP_PORT=10001 # 想改容器内端口再解开
# - WJK_PUBLIC_PORT=10001 # 仅用于页面显示"外部端口"
volumes:
- ./data:/data # 数据、授权、缓存、日志都在这
# - /vol1/1000/网盘挂载:/mnt/cd2 # 要用挂载中转才加
- 首次打开会让你创建管理员账号(没有默认密码)
- 升级:设置里点「立即更新」,或
docker compose pull && docker compose up -d - 容器内只保留编译后的
.pyc,改源码要重建镜像
🧩 飞牛应用(fpk)
- 飞牛「应用中心 → 手动安装」,选
zyjkw-monitor_x.y.z.fpk - 装完在应用列表点「打开」,首次同样创建管理员
- 之后可在应用内点「立即更新」:下载 → 校验 sha256 → 停应用 → 安装 → 启动
/vol1/@appshare/zyjkw-monitor/data,卸载不会删。🪟 Windows 桌面版
- 双击安装包,装完是独立窗口(不需要浏览器)+ 托盘常驻
- 数据在
%LOCALAPPDATA%\ResourceMonitor\data,卸载不删 - 关窗口 = 收进托盘;退出走托盘菜单(托盘被 Windows 收进「^」里找不到时,可用设置页的「退出程序」)
- 更新:设置里点「立即更新」,后台静默安装并自动重启回来
💾 数据目录与迁移
| 路径 | 内容 | 能不能删 |
|---|---|---|
data/data_users.json | 账号与密码哈希 | 不能删(删了要重新建管理员) |
data/license/ | 授权码 + 实例标识 | 不能删;换机器会变机器码 |
data/server_config.json | 端口、更新渠道等本机配置 | 不能删 |
data/*.json | 任务、日志、状态 | 删了任务会丢 |
data/cache/ data/remux/ data/strm/ | 缓存、转封装、生成的 STRM | 可以删,会自动重建 |
迁移:整目录拷走即可;Docker 里就是 ./data。CPU 架构变化(x86 ↔ ARM)需要重新拉对应镜像。
🌐 端口与反向代理
- 只用内网:直接
http://NAS_IP:10001,不需要改任何东西 - 要外网:不要把 10001 直接映射到公网。推荐 Cloudflare Tunnel / 反向代理 + HTTPS + 访问控制
- 反向代理要开 WebSocket、放大上传体积(上传文件走请求体)、超时 ≥ 600 秒(转码/大文件)
- HTTPS 证书放
data/certs/server.crt+server.key,程序会自动加载
🛡 安全:先把暴露面收小
这套软件会接触你的网盘账号,安全上只做两件事最重要:少暴露、强密码。
必须做
- 管理员密码 ≥ 12 位,别用
admin123 - 只给可信设备开放;不用的账号及时封禁
- 外网访问一律走 HTTPS,不用裸 HTTP
- 定期备份
data/(尤其license/) - 保持更新(安全修复只在较新版本里)
不要做
- 不要把管理端口直接映射到公网(尤其别开 22 / 数据库端口)
- 不要把
data/放进 Web 可访问目录或公开网盘 - 不要在群里发带 token 的截图 / 日志
- 不要让多套程序共用同一套网盘 token(会互相顶掉)
- 不要用来源不明的"破解/加速"镜像
🔒 加固清单(外网访问时)
1. 用隧道或反代,不直连端口
Cloudflare Tunnel、frp(带 token)、Nginx 反代都行;家庭宽带别开 10001 到公网,暴露 IP 后扫描器几小时就会找上来。
2. 前面加一层人机校验 / 访问控制
Cloudflare Access、Nginx basic auth、IP 白名单任选其一;登录页已有"5 次错密锁 10 分钟",再叠一层更稳。
3. 限制请求速率
Nginx limit_req 10r/s、Cloudflare Rate Limiting;上传接口单独放宽,登录接口单独收紧。
4. 安全响应头
HSTS、X-Content-Type-Options、Referrer-Policy、X-Frame-Options;反代层加即可,不必改程序。
5. 出站只留必要
程序只需要出站访问网盘 API、TMDB、授权心跳(hb.xtfwq.top);入站一个端口足够。
6. 出事能回滚
升级前备份 data/;保留上一个可用镜像 / fpk,必要时回退。
🚀 官网怎么发布(这一站本身)
这是一套纯静态站(只有 HTML/CSS/JS,没有后端、没有数据库),所以发布非常轻,也天然抗打。
| 方案 | 成本 | 优点 | 注意 |
|---|---|---|---|
| Cloudflare Pages(推荐) | 免费 | 全球 CDN、自动 HTTPS、自带 WAF/DDoS 防护、免费额度足够;可绑自己域名 | 国内访问速度一般,可再加国内镜像 |
| 阿里云 OSS + CDN | 几元/月 | 国内快、稳定 | 域名需备案;开 CDN 后隐藏源站 |
| Nginx(自己的服务器) | 已有服务器 | 可控 | 需要自己做 HTTPS、限速、防 CC |
步骤 1:本地预览
在站点目录跑 python3 -m http.server 8080,浏览器打开 http://127.0.0.1:8080 检查链接与手机宽度。
步骤 2:打包
zip -r zyjkw_site.zip . -x "*.DS_Store";或直接拖目录到 Cloudflare Pages 上传。
步骤 3:绑定域名 + HTTPS
Cloudflare Pages 一键绑;OSS 用 CDN 证书;Nginx 用 Let's Encrypt。
步骤 4:加防护
开 Cloudflare 代理(小黄云)、WAF 托管规则、Rate Limiting;静态站可开 "Under Attack Mode" 应急。
步骤 5:检查
访问 /robots.txt、/sitemap.xml、/404.html 是否正常;用手机 4G 测一次。
hb.xtfwq.top)不要挂任何网页内容,只暴露心跳与更新接口。🧯 被攻击怎么办
- 静态站被刷:开 Cloudflare "I'm Under Attack"、加 Rate Limiting;静态文件走 CDN,源站压力几乎为零
- 登录接口被撞库:Cloudflare Access / IP 白名单 + 程序自带 5 次锁 10 分钟;必要时临时只允许内网
- 带宽被打:把图片/视频全部走 CDN;官网不要放视频原文件
- 源站 IP 泄露:换 IP、只用隧道出站(Cloudflare Tunnel 不暴露源站)、关掉不必要的端口映射
- 被爬内容:加
robots.txt只是礼貌;要真防就上 WAF 规则(UA/频率/地理) - 客户端被假站骗:客户端只信任内置域名 + 数字签名;官网写明"只从这两个渠道下载",并给出校验方式