一个用于管理 Clash 规则的 Telegram 机器人,支持域名查询与直连规则添加。
- ✅ 自动检查 GitHub 规则与 GEOSITE:CN
- ✅ DNS / NS 归属地判断,给出添加建议
- ✅ 群组验证与群组 @ 提及模式
- ✅ Docker 部署,支持
linux/amd64与linux/arm64
不提供 Windows 支持,仅建议 Docker 部署。
- 打开 @BotFather
- 发送
/newbot,按提示设置机器人名称与用户名 - 复制并保存返回的 Token
BotFather 推荐设置(按需)
- 群组模式必需:
/mybots→ 选择机器人 →Bot Settings→Group Privacy→Turn off - 允许加入群组:确认
Allow Groups为启用(默认开启) - 可选:
/setcommands设置命令菜单
建议的命令列表:
start - 主菜单
help - 帮助信息
query - 查询域名
add - 添加规则入口
delete - 删除规则(暂不可用)
skip - 跳过说明
- 打开 GitHub → Settings → Developer settings → Personal access tokens
- 二选一创建 Token(推荐 Classic 简单直观)
Classic Token
- 选择
Generate new token (classic) - 勾选权限:
repo
Fine-grained Token
- 选择
Generate new token - 指定仓库
- 权限:
Contents设为Read and write
Token 只显示一次,请妥善保存。
把 @userinfobot 加入群组,它会返回完整群组 ID(通常以 -100 开头)。
- 创建
docker-compose.yml
services:
rule-bot:
image: aethersailor/rule-bot:latest
container_name: rule-bot
restart: unless-stopped
environment:
- TELEGRAM_BOT_TOKEN=你的机器人 Token
- GITHUB_TOKEN=你的 GitHub Token
- GITHUB_REPO=your_username/your_repository
- DIRECT_RULE_FILE=rule/Custom_Direct.list- 启动
docker compose up -d- 查看日志
docker compose logs -f rule-botTELEGRAM_BOT_TOKEN:从 @BotFather 获取(见“准备工作”)GITHUB_TOKEN:需要repo权限(见“准备工作”)GITHUB_REPO:格式用户名/仓库名DIRECT_RULE_FILE:规则文件路径(仓库内)
点击展开
| 变量 | 说明 | 默认值 |
|---|---|---|
PROXY_RULE_FILE |
代理规则文件(暂不使用) | 空 |
GITHUB_COMMIT_EMAIL |
提交邮箱 | noreply@users.noreply.github.com |
LOG_LEVEL |
日志级别:DEBUG/INFO/WARNING/ERROR |
INFO |
LOG_FORMAT |
日志格式:compact/verbose |
compact |
DATA_UPDATE_INTERVAL |
数据更新间隔(秒) | 21600(6 小时) |
DATA_DIR |
数据目录(容器内路径) | /app/data |
DOH_SERVERS |
A 记录 DoH 列表,逗号分隔 name=url |
内置默认 |
NS_DOH_SERVERS |
NS 记录 DoH 列表,逗号分隔 name=url |
内置默认 |
REQUIRED_GROUP_ID |
群组验证 ID | 空 |
REQUIRED_GROUP_NAME |
群组验证名称 | 空 |
REQUIRED_GROUP_LINK |
群组验证链接 | 空 |
ALLOWED_GROUP_IDS |
群组模式允许的群组 ID,逗号分隔 | 空 |
TZ |
时区 | Asia/Shanghai |
容器默认以非 root 用户运行,若挂载宿主机目录到
/app/data,请确保目录属主为UID/GID=1000。
/start:主菜单/help:帮助信息/query:查询域名/add:添加规则入口/delete:暂不可用/skip:跳过域名说明
- 仅在白名单群组中响应
- 仅响应 @ 机器人 的消息
- 支持“回复包含域名的消息 + @ 机器人”
使用群组模式需要关闭机器人 Privacy Mode,并重新添加机器人到群组。
同时配置 REQUIRED_GROUP_ID/NAME/LINK 后生效,未通过或校验失败会拒绝访问(失败即拒绝)。
- 解析域名并提取二级域名
- 检查 GitHub 规则与 GEOSITE:CN
- DNS / NS 归属地检测
- 符合条件则自动添加
.cn域名默认直连,不允许添加。
latest:稳定版dev:开发版vX.Y.Z:发布标签
群组不响应消息
- 关闭 Privacy Mode
- 重新添加机器人到群组
- 仅在消息中 @ 机器人
挂载数据目录后权限报错
把宿主机目录 chown -R 1000:1000 再启动容器。
- Python 3.12+
pip install -r requirements.txt
GPLv3