
通过自定义域名远程访问家庭网络,无需静态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上的官方容器获取:https://hub.docker.com/r/timothyjmiller/cloudflare-ddns%E3%80%82
修改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
https://github.com/timothymiller
查看我的个人网站 💻
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务