
timothyjmiller/cloudflare-ddns通过自定义域名远程访问家庭网络,无需静态IP!
一个轻量、🕵️ 隐私优先且 ⚡ 极速的多架构Docker镜像,适用于自托管项目。
此脚本为树莓派平台编写,旨在实现低成本、简单的自托管,以促进更去中心化的互联网。执行时,脚本会获取公网IPv4和IPv6地址,并为Cloudflare中的子域创建/更新DNS记录。同时会清理陈旧、重复的DNS记录以保持整洁。
| 大小 | 下载量 | *** |
|---|---|---|
首先将示例配置文件复制为实际配置文件:
bashcp config-example.json config.json
编辑config.json并替换为您自己的值。
您可以选择使用较新的API令牌或传统的API密钥。
要生成新的API令牌,请前往您的Cloudflare个人资料并创建一个具有编辑DNS权限的令牌。然后在配置中替换以下值:
json"authentication": { "api_token": "您的Cloudflare API令牌,需包含**编辑DNS**权限" }
或者,您可以使用传统API密钥,设置以下相应值:
json"authentication": { "api_key": { "api_key": "您的Cloudflare API密钥", "account_email": "您用于登录Cloudflare的电子邮件地址" } }
json"zone_id": "将获取记录的区域ID。从您的仪表板进入区域,在概览选项卡下滚动,区域ID列在右侧栏中", "subdomains": "要更新A记录(如适用,还有AAAA记录)的子域数组。重要!只需填写子域名,不要包含基础域名(例如foo或空字符串以更新基础域名)", "proxied": false(默认为false。如果您希望获得Cloudflare的CDN/SSL benefits,请设为true,这通常会禁用SSH)
当托管多个指向同一IP的域名时(如使用Traefik的情况),您可以通过定义一个A和AAAA记录'ddns.example.com'指向将由本DDNS脚本更新的服务器IP来简化操作。为每个子域创建一个指向'ddns.example.com'的CNAME记录。这样,每次向站点添加新子域时,您无需手动修改脚本配置!
预编译镜像可通过DockerHub上的官方容器获取:timothyjmiller/cloudflare-ddns。
修改docker-compose.yml的volumes部分中config.json的主机文件路径:
yamlversion: "3.7" 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
Docker需要将network_mode设置为host才能访问IPv6公网地址。
从项目根目录执行:
bashdocker-compose up -d
创建包含您生产凭据的config.json文件。
可选的docker-build-all.sh脚本需要启用Docker实验性功能。
Docker Hub支持多架构构建的实验性功能。其官方博客文章详细说明了如何使用Mac和Windows版本的Docker Desktop进行构建。
多架构(实验性):docker-build-all.sh
默认Linux/amd64:docker-build.sh
bashsudo chmod +x ./docker-build.sh
bashsudo chmod +x ./docker-build-all.sh
docker-build.sh脚本:本地开发推荐:
bash./docker-build.sh
生产环境推荐:
bash./docker-build-all.sh
bashdocker run -d timothyjmiller/cloudflare_ddns:latest
此脚本需要Python 3.5+,最新版本的Raspbian已预装。下载/克隆此仓库并通过运行chmod +x ./start-sync.sh为项目的bash脚本赋予权限。现在您可以执行./start-sync.sh,它将设置虚拟环境、拉取依赖项并运行脚本。
将cloudflare-ddns文件夹上传到您的主目录/home/您的用户名/
在终端中运行以下命令:
bashcrontab -e
bash*/15 * * * * /home/您的用户名/cloudflare-ddns/start-sync.sh
本模板采用GNU通用公共许可证第3版(GPLv3)授权。
Timothy Miller
查看我的GitHub个人资料 💡
查看我的个人网站 💻
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务