9. 授权与升级
9.1 授权机制:你的实例怎么被认可
每个 畅来WAF 实例安装后有自己的安装指纹(install_id),授权码与指纹一一绑定,拷贝到别的机器无法使用。
[Pro] 授权管理页的三步流程:

| 步骤 | 在哪 | 做什么 |
|---|---|---|
| 1. 获取安装指纹 | 引擎后台 → 系统配置 → 授权管理 | 点「复制」拿到本实例指纹 |
| 2. 获取授权码 | 云平台下单后 | 服务商按指纹 + 授权时长签发一串授权码字符串 |
| 3. 粘贴激活 | 授权管理页 | 粘贴 → 激活,验签通过即生效 |
免费版没有这个页面(菜单不存在),也不需要——免费版不用授权。
9.2 心跳保活:激活不是一锤子买卖
激活后引擎按周期(6-24 小时,系统配置里的 heartbeat_interval)向云平台发送心跳:
- 正常:续期授权状态
- 授权被吊销(退款、换绑):心跳返回吊销指令,引擎下个周期内停止防护
所以换机/重装系统的正确姿势是:先在云平台解绑旧指纹,再用新指纹重新签发授权码。直接把授权码搬去新机器是无效的。
9.3 到期后会怎样:三态的真实表现
到期不是「啪一下全停」,分三个阶段:
| 阶段 | 业务转发 | 防护能力 | 说明 |
|---|---|---|---|
| 有效 | 正常 | 完整 | — |
| 48 小时宽限期 | 不中断 | 完整 | 全功能保留,后台强提醒续费。忘了续费也不会立刻裸奔 |
| 过期 | 不中断 | 停止 | 只保留攻击拦截 + 业务转发;日志与统计停写,白名单/爬虫库/CC 失效,不能新增站点;已配站点原样转发 |
要点:过期永远不会把你业务断掉。转发是底线,停的是防护。但过期状态下白名单和 CC 都失效了,等于你的回调接口突然要面对完整人机验证——所以宽限期那 48 小时请认真处理。
9.4 升级版本
没有在线一键升级。升级 = 替换二进制 + 重启:
cd /usr/local/waf
./wafctl.sh stop
# 覆盖新版二进制(wafd/waf/admin/cron 四个文件)
# config/ 和 web/ 保持不动,除非新版本说明里特别要求
./wafctl.sh start
./wafctl.sh status # 确认三个进程运行时长正常、自动重启 0 次
| 注意项 | 说明 |
|---|---|
| 数据库变更 | 版本间如有表结构变更,会提供 alter_*.sql,按版本顺序执行。不要对存量库重跑 init.sql,会清表 |
| 证书与配置 | config/、站点证书路径都不受升级影响 |
| 回滚 | 保留旧版二进制,出问题换回来再 wafctl.sh restart |
| 升级后验证 | 仪表盘请求数在涨 + 打一条测试攻击请求确认拦截页正常 |
9.5 常见授权问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 激活报签名错误 | 授权码不是签给这个指纹的 | 核对指纹是否复制完整;换过机器需重新签发 |
| 后台提示宽限期 | 授权到期,48h 宽限中 | 尽快续费,宽限内全功能不受影响 |
| 云平台功能全部灰色不可用 | custom.json 的 platform_base_url 为空 | 这是免费版不联网的正常形态;Pro 需配置云平台地址 |
| 心跳失败 | 服务器出网受限或 DNS 异常 | 检查出站网络;心跳连续失败达到期限会影响授权续期 |
下一步:10. 免费版与 Pro 对照