Files
dy/.workbuddy/memory/2026-08-28.md
T
2026-09-01 15:31:05 +08:00

1.9 KiB
Raw Blame History

2026-08-28 工作日志

抖音 IM「decision=KICK」排查(服务器 116.62.23.103

结论:不是抖音改了 IM 规则/签名算法,是账号被安全网关风控踢下线。签名链路正常(同服务器另一账号可正常发送、读接口正常返回、凭证完整)。

关键证据(服务器 MySQL kefu 库 + /www/wwwlogs/python/douyin/error.log):

  • 活跃账号:id=11「随安尔乐」my_uid=7670159096859706425、id=12「抖音账号_12」my_uid=7670157997767050299,均为 Chrome/148 UAkeys/web_protect 凭证完整(len 533/459)。
  • 两个账号反复 KICK,且都在回复同一测试号「Huhao」(peer_uid=66578464308),回复内容只是 "ss"/"jjj" 测试文本(非导流话术)。
  • 时序:KICK → create_conversation INVALID_REQUEST → 「用户未登录」→ 自动重登录 → 恢复 → 再发 → 再 KICK,形成死循环(约每 10~30 分钟一次)。
  • 读接口(get_by_user_init)正常,只有 signed 的发送(message/send)被 KICK → 签名没问题,是账号级风控。

根因判断:抖音 2026 风控收紧(内容+设备+IP+行为+账号五维)。触发点最可能是:多账号同服务器 IP + 对同一陌生 peer 的自动回复行为;且 KICK→重登→再发 的紧循环本身会加重风控。

处理方向

  1. 停掉受影响账号的托管/自动回复,冷却几小时~一天。
  2. 浏览器模式手动重登,先用互关好友或「对方先发」的真实用户测发送,别再用小号对冷门 peer 反复自动回。
  3. 确认账号没在手机端同时登录(并发登录会吊销 web ticket)。
  4. 后续可选代码改进:KICK 后对同一会话加冷却(重登后暂不重发),打断紧循环。

环境备注:后端用 MySQL(KEFU_DB_TYPE=mysql)kefu.db/kefu1.db 是遗留 SQLite(kefu.db 已损坏,非活跃库,可忽略)。