# TG转发器运维 ## 基本信息 - 容器名: `telegramforwarder-telegram-forwarder` (短名: `telegram-forwarder`) - Bot: `@mikes_MsgForwarder_bot` - 用户客户端: `@mikes669` - 数据库: `/app/db/forward.db` (SQLite) - 环境变量: `/app/.env` ## 转发规则 - 源: 实盘监控 (chat_id=3805472665) - 目标: 交易信号群 (chat_id=-1003966251111) - 模式: WHITELIST - 白名单关键词: `.*` (匹配所有,不过滤) ## 修改关键词过滤 ```bash # 1. 导出数据库 docker cp telegram-forwarder:/app/db/forward.db /tmp/forward.db # 2. 查看当前关键词 sqlite3 /tmp/forward.db "SELECT * FROM keywords;" # 3. 修改(示例:删除旧的,添加新的) sqlite3 /tmp/forward.db "DELETE FROM keywords WHERE id=8;" sqlite3 /tmp/forward.db "INSERT INTO keywords (rule_id, keyword, is_regex, is_blacklist) VALUES (1, '.*', 1, 0);" # 4. 导回并重启 docker cp /tmp/forward.db telegram-forwarder:/app/db/forward.db docker restart telegram-forwarder ``` ## keywords表字段 | 字段 | 说明 | |------|------| | rule_id | 关联的转发规则ID | | keyword | 关键词或正则表达式 | | is_regex | 0=普通文本, 1=正则 | | is_blacklist | 0=白名单(放行), 1=黑名单(拦截) | ## 日志查看 ```bash # 最近日志 docker logs telegram-forwarder --tail 50 # 过滤信号相关 docker logs telegram-forwarder --since 1h 2>&1 | grep -E "转发|匹配|白名单|不转发|过滤" # 查看是否收到消息 docker logs telegram-forwarder --since 1h 2>&1 | grep "处理转发规则" ``` ## Bot命令(通过Telegram发给bot) - `/lk` 或 `/list_keyword` — 查看关键词列表 - `/a` 或 `/add` — 添加关键词 - `/ar` 或 `/add_regex` — 添加正则关键词 - `/rk` 或 `/remove_keyword` — 删除关键词 - `/sw` 或 `/switch` — 切换模式 ⚠️ bot命令需要通过Telegram客户端发送,不能从agent内直接调(gateway占用getUpdates)。 ## 重启 ```bash docker restart telegram-forwarder ``` 重启后约5秒恢复,会自动重新连接Telegram。 ## 常见问题 - **信号不转发**: 检查白名单关键词是否匹配,`docker logs` 看"未匹配到普通白名单关键词" - **bot消息被忽略**: 正常,bot自己发的消息不处理(`过滤器识别到机器人消息,忽略处理`) - **容器内无sqlite3**: 用 `docker cp` 导出到宿主机操作