
PHP DynDNS是一个非常简单的DynDNS服务。它允许您通过简单的HTTP请求更新DNS服务器。
授权通过HTTP Basic Auth或使用URL变量中的username和password进行。
完整URL格式如下:https://dyndns.example.com/?hostname=myhost.example.com(HTTP Basic Auth方式)或https://dyndns.example.com/?hostname=myhost.example.com&username=myuser&password=mypassword(URL变量授权方式)。
您还可以通过GET变量指定IPv4和IPv6地址(myip=your.ipv4.address.here和myipv6=your:ipv6:address:here)。
示例:
https://dyndns.example.com/?hostname=myhost.example.com&myip=79.206.99.18https://dyndns.example.com/?hostname=myhost.example.com&myipv6=2003:66:ef5d:9300:5899:991b:8542:b19fhttps://dyndns.example.com/?hostname=myhost.example.com&myip=79.206.99.18&myipv6=2003:66:ef5d:9300:5899:991b:8542:b19f或使用现成的Docker镜像(参见下文“使用Docker安装”部分)。
获取最新版本有两种方法:
*(推荐)下载https://github.com/Programie/PHPDynDNS/releases/latest%E5%B9%B6%E8%A7%A3%E5%8E%8B%E5%88%B0%E6%82%A8%E6%83%B3%E8%A6%81%E6%8F%90%E4%BE%9B%E6%9C%8D%E5%8A%A1%E7%9A%84Web%E7%9B%AE%E5%BD%95%EF%BC%88%E4%BE%8B%E5%A6%82%60/var/www/dyndns%60%EF%BC%89
/var/www/dyndns)直接克隆仓库需要使用Composer下载依赖:composer install
下载完成后,继续以下步骤:
config.sample.json复制为config.jsonconfig.json以满足您的需求(详见下文“配置”部分)allow-update { localhost; })PHPDynDNS也提供Docker镜像。可从https://hub.docker.com/r/programie/phpdyndns%E6%8B%89%E5%8F%96%E3%80%82
将您的config.json挂载到/app/config.json
启动容器的示例命令:
bashdocker run -d --name phpdyndns -p 80:80 -v /path/to/config.json:/app/config.json:ro programie/phpdyndns
确保config.json不能通过HTTP访问!在Apache中,这已通过.htaccess文件实现。
配置通过存储在config.json文件中的JSON完成,示例如下:
json{ "server": "localhost", "ttl": 60, "users": { "myuser": { "password_hash": "$5$1IekWfmq$yVTjQcWsX/qK.TIws0NWAj0mmlyDFsSMw6nSFYHcyH8", "hosts": { "myhost.example.com": { "zone": "example.com" }, "anotherhost.example.com": { "zone": "anotherhost.example.com" } }, "post_process": "nohup sudo /opt/some-script.sh %hostname% %ipv4address%" } } }
server:要连接的DNS服务器(默认:localhost)ttl:PHPDynDNS管理的所有DNS条目的TTL(生存时间)(默认:60)users:所有用户的列表(每个条目的键为用户名)
password_hash:用户的哈希密码(例如使用mkpasswd -m sha-256生成)hosts:用户可更新的所有主机列表(每个条目的键为要更新的主机名)
zone:包含此主机名的区域post_process:成功更新DNS条目后应执行的命令(可包含占位符,见下文说明)post_process选项中可使用以下占位符,执行时会被替换:
%username%:用户名%hostname%:主机名%ipv4address%:新的IPv4地址(如可用)%ipv6address%:新的IPv6地址(如可用)自定义https://your.domain/path/to/phpdyndns?username=<username>&password=<pass>&hostname=<domain>&myip=<ipaddr>your.configured.host.of.your.domain您配置的用户名您配置的密码如果您的路由器不支持向(自定义)DynDNS服务发送更新,可使用此方法。每次请求都会更新DNS区域!
* * * * * curl https://your.domain/path/to/phpdyndns?username=your-username&password=your-password&hostname=your.domain.tld
这将每分钟更新您的域名your.domain.tld。
将your-username、your-password和your.domain.tld替换为您配置的用户名、密码和域名。
PHP DynDNS可在成功更新DynDNS主机名后触发用户定义的命令。
例如,命令/opt/reload-iptables.sh可使用DynDNS主机名的新IP地址自动重新加载iptables。
后处理命令可在config.json中为每个用户单独配置。
PHP DynDNS可在成功更新主机名后执行命令。此类命令可从文件重新加载iptables规则,强制iptables重新查找动态主机名。
后处理脚本示例如下:
sh#! /bin/sh /sbin/iptables-restore < /path/to/your/iptables.rules
iptables.rules示例如下:
*filter # 设置默认策略 :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # 允许已建立的连接 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许本地连接 -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A FORWARD -i lo -o lo -j ACCEPT # 允许HTTP -A INPUT -p tcp --dport 80 -j ACCEPT # DynDNS -A INPUT -p tcp --dport 22 -s yourhost.example.com -j ACCEPT COMMIT
注意:您必须使用root权限调用脚本(如sudo)!只需允许运行Web服务器的用户(如www-data)以root身份执行脚本(如在/etc/sudoers文件中添加www-data ALL=(ALL) NOPASSWD:/opt/scripts/update_dyndns_iptables.sh)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务