A telegram bot can manage your cloudflare domain dns records
2.2K
这是一个基于 Telegram Bot 的 Cloudflare DNS 交互式记录管理工具,支持多域名管理,可以方便地添加、更新、删除和查询多种DNS记录类型(A、AAAA、CNAME、TXT)。
预构建镜像支持 linux/amd64 和 linux/arm64,Apple Silicon Mac 会自动拉取 ARM64 镜像。
docker-compose.yml 文件:services:
tg-cf-dns-bot:
image: ghcr.io/zcp1997/telegram-cf-dns-bot:latest
container_name: tg-cf-dns-bot
restart: unless-stopped
environment:
# Telegram Bot Token
- TELEGRAM_TOKEN=your_telegram_token_here
# Cloudflare API Token
- CF_API_TOKEN=your_api_token_here
# 允许访问的 Telegram 用户 ID(逗号分隔),第一个用户是管理员
- ALLOWED_CHAT_IDS=123456789,987654321
# DNS管理可选参数:排除的域名列表(逗号分隔)
# - EXCLUDE_DOMAINS=example.com,example.org
# DDNS管理可选参数:是否部署在中国大陆服务器(默认为false)
# - IN_CHINA=false
# 可选参数:是否启用IPv6 DDNS更新 (true/false,默认为false)
# - ENABLE_IPV6_DDNS=false
# 可选参数:Bot提示语言(zh-CN/en-US,默认自动推断,回退为zh-CN)
# - BOT_LANGUAGE=zh-CN
volumes:
- ./config:/app/config
- ./logs:/app/logs
# ipv6配置
# networks:
# - ipv6_network
# networks:
# ipv6_network:
# driver: bridge
# enable_ipv6: true
# ipam:
# config:
# - subnet: 2001:db8:2::/64
# gateway: 2001:db8:2::1
编辑 docker-compose.yml 文件,填入必要的配置信息:
your_telegram_token_here 为您的 Telegram Bot Tokenyour_api_token_here 为您的 Cloudflare API TokenALLOWED_CHAT_IDS 中的用户ID为您允许访问的用户ID启动服务:
docker compose up -d
docker compose logs -f
如果您希望自行构建镜像或对代码进行修改,可以按照以下步骤操作:
git clone https://github.com/zcp1997/telegram-cf-dns-bot.git
cd telegram-cf-dns-bot
填写配置信息
your_telegram_token_here 为您的 Telegram Bot Tokenyour_api_token_here 为您的 Cloudflare API TokenALLOWED_CHAT_IDS 中的用户ID为您允许访问的用户ID使用 Docker Compose 构建并启动:
docker compose build
docker compose up -d
直接拉取最新镜像并重启容器:
docker compose pull
docker compose up -d
/start - 启动机器人,显示欢迎信息和功能菜单/help - 查看详细的帮助信息和使用指南/language - 切换Bot提示语言(支持简体中文/English)/domains - 列出所有可管理的域名列表/setdns - 设置DNS记录,支持四种类型:
/getdns - 查询特定域名的DNS记录(支持A/AAAA/CNAME/TXT)/getdnsall - 查询域名下所有DNS记录(支持A/AAAA/CNAME/TXT)/deldns - 删除指定的DNS记录(支持A/AAAA/CNAME/TXT)/dnschangelogs - 查看DNS变更日志/dnschangelogs 域名关键字 - 按域名模糊查询DNS变更日志,例如 /dnschangelogs example.com/ddns - 设置自动DDNS任务(动态更新域名IP地址)/ddnsstatus - 查看所有DDNS任务的运行状态/stopddns - 暂停指定的DDNS任务/delddns - 删除指定的DDNS任务/listusers - 显示当前白名单用户列表(仅管理员可用)/zonemap - 显示域名和Zone ID的映射关系(仅管理员可用)/setdns 命令192.168.1.12001:db8::1example.com(自动验证域名格式)v=spf1 include:_spf.google.com ~all创建 API Token 时需要包含以下权限:
| 变量名 | 说明 | 是否必填 | 示例 |
|---|---|---|---|
| TELEGRAM_TOKEN | Telegram Bot Token | 必填 | 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw |
| CF_API_TOKEN | Cloudflare API Token | 必填 | your-api-token-here |
| ALLOWED_CHAT_IDS | 允许访问的用户ID(逗号分隔) | 必填 | 123456789,987654321 |
| EXCLUDE_DOMAINS | 排除的域名列表(逗号分隔) | 可选 | example.com,example.org |
| IN_CHINA | 是否部署在中国大陆服务器 | 可选 | true 或 false(默认为false) |
| ENABLE_IPV6_DDNS | 是否启用IPv6 DDNS更新 | 可选 | true 或 false(默认为false) |
| BOT_LANGUAGE | Bot提示语言 | 可选 | zh-CN 或 en-US(默认自动推断,回退为zh-CN) |
| DEBUG_DDNS | 是否打印DDNS调试日志 | 可选 | true 或 false(默认为false) |
如果 Bot 无响应:
TELEGRAM_TOKEN 是否正确docker compose logs -f如果无法管理 DNS:
CF_API_TOKEN 权限是否正确如果无法访问 Bot:
ALLOWED_CHAT_IDS 中# 查看实时日志
docker compose logs -f
# 查看最近 100 行日志
docker compose logs --tail=100
# 停止服务
docker compose down
# 重启服务
docker compose restart
# 查看服务状态
docker compose ps
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
Content type
Image
Digest
sha256:d0f818a90…
Size
61 MB
Last updated
21 days ago
docker pull zcp970603/telegram-cf-dns-bot:v1.0.0