查看公网IP地址
# 使用 curl 命令
curl ifconfig.me
curl icanhazip.com
curl ipinfo.io/ip
# 使用 wget 命令
wget -qO- ifconfig.me
# 查看详细IP信息
curl ipinfo.io
1. 准备配置文件
首先创建配置目录和文件:
# 创建配置目录
mkdir -p /opt/cloudflare-ddns
cd /opt/cloudflare-ddns
# 创建配置文件
cat > config.json << 'EOF'
{
"cloudflare": [
{
"authentication": {
"api_token": "你的_Cloudflare_API_Token"
},
"zone_id": "你的_Zone_ID",
"subdomains": [
{
"name": "", #你的子域名,必须填写
"proxied": false
}
]
}
],
"a": true,
"aaaa": false,
"purgeUnknownRecords": false,
"ttl": 300
}
EOF
2. 获取必要信息
-
获取 API Token:
- 访问 Cloudflare Profile
- 创建一个新的 API Token,权限选择 “Edit DNS”
-
获取 Zone ID:
- 登录 Cloudflare 仪表板
- 选择你的域名
- 在概览页面右侧找到 Zone ID
3. 使用 Docker Compose 部署
创建 docker-compose.yml 文件:
cat > docker-compose.yml << 'EOF'
version: '3.3'
services:
cloudflare-ddns:
image: timothyjmiller/cloudflare-ddns:latest
container_name: cloudflare-ddns
security_opt:
- no-new-privileges:true
network_mode: 'host'
environment:
- PUID=1000
- PGID=1000
volumes:
- ./config.json:/config.json
restart: unless-stopped
EOF
4. 启动服务
# 启动容器
docker-compose up -d
# 查看日志
docker-compose logs -f
配置示例
基础配置(单个根域名)
{
"cloudflare": [
{
"authentication": {
"api_token": "你的API_Token"
},
"zone_id": "你的Zone_ID",
"subdomains": [
{
"name": "",
"proxied": false
}
]
}
],
"a": true,
"aaaa": false,
"purgeUnknownRecords": false,
"ttl": 300
}
多子域名配置
{
"cloudflare": [
{
"authentication": {
"api_token": "你的API_Token"
},
"zone_id": "你的Zone_ID",
"subdomains": [
{
"name": "",
"proxied": false
},
{
"name": "www",
"proxied": false
},
{
"name": "blog",
"proxied": false
}
]
}
],
"a": true,
"aaaa": false,
"purgeUnknownRecords": false,
"ttl": 300
}
常用命令
# 查看容器状态
docker ps | grep cloudflare-ddns
# 查看日志
docker logs cloudflare-ddns
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 更新镜像
docker-compose pull
docker-compose up -d
注意事项
- IPv6 支持:如果需要 IPv6,设置
"aaaa": true
并确保network_mode: 'host'
- Proxied 设置:
true
:启用 Cloudflare CDN/SSL(会禁用 SSH)false
:仅使用 DNS 解析
- TTL:可设置 30 秒到 1 天之间的值
这个 DDNS 服务会自动检测你的公网 IP 变化,并更新 Cloudflare 的 DNS 记录。