本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

phpdyndns Docker 镜像下载 - 轩辕镜像

phpdyndns 镜像详细信息和使用指南

phpdyndns 镜像标签列表和版本信息

phpdyndns 镜像拉取命令和加速下载

phpdyndns 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

phpdyndns
programie/phpdyndns

phpdyndns 镜像详细信息

phpdyndns 镜像标签列表

phpdyndns 镜像使用说明

phpdyndns 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

一个用PHP编写的简单DynDNS服务
0 次下载activeprogramie镜像

phpdyndns 镜像详细说明

phpdyndns 使用指南

phpdyndns 配置说明

phpdyndns 官方文档

PHP DynDNS

![DockerHub]([] ![GitHub release]([]

简介

PHP DynDNS是一个非常简单的DynDNS服务。它允许您通过简单的HTTP请求更新DNS服务器。

授权通过HTTP Basic Auth或使用URL变量中的usernamepassword进行。

完整URL格式如下:[***](HTTP Basic Auth方式)或[***](URL变量授权方式)。

您还可以通过GET变量指定IPv4和IPv6地址(myip=your.ipv4.address.heremyipv6=your:ipv6:address:here)。

示例:

  • 仅IPv4:[***]
  • 仅IPv6:[***]
  • IPv4 + IPv6:[***]

需求

  • 一个域名
  • 运行PHP 7.2或更高版本的Web服务器
  • 一个DNS服务器(如bind)

或使用现成的Docker镜像(参见下文“使用Docker安装”部分)。

安装

获取最新版本有两种方法:

*(推荐)下载最新发布版并解压到您想要提供服务的Web目录(例如/var/www/dyndns

  • 将此仓库克隆到您想要提供服务的Web目录(例如/var/www/dyndns

直接克隆仓库需要使用Composer下载依赖:composer install

下载完成后,继续以下步骤:

  • config.sample.json复制为config.json
  • 编辑config.json以满足您的需求(详见下文“配置”部分)
  • 配置DNS服务器允许来自Web服务器的更新请求(如在bind中设置allow-update { localhost; }
  • 配置路由器在每次重新连接后自动请求您的DynDNS服务URL(或使用curl/wget创建cron任务)。

使用Docker安装

PHPDynDNS也提供Docker镜像。可从Docker Hub拉取。

将您的config.json挂载到/app/config.json

启动容器的示例命令:

bash
docker 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选项的占位符

post_process选项中可使用以下占位符,执行时会被替换:

  • %username%:用户名
  • %hostname%:主机名
  • %ipv4address%:新的IPv4地址(如可用)
  • %ipv6address%:新的IPv6地址(如可用)

配置路由器

Fritz!Box

  • DynDNS服务提供商:自定义
  • 更新URL:[***]<username>&password=<pass>&hostname=<domain>&myip=<ipaddr>
  • 域名:your.configured.host.of.your.domain
  • 用户名:您配置的用户名
  • 密码:您配置的密码

Cron任务(crontab)

如果您的路由器不支持向(自定义)DynDNS服务发送更新,可使用此方法。每次请求都会更新DNS区域!

* * * * * curl [***]

这将每分钟更新您的域名your.domain.tld

your-usernameyour-passwordyour.domain.tld替换为您配置的用户名、密码和域名。

后处理

PHP DynDNS可在成功更新DynDNS主机名后触发用户定义的命令。

例如,命令/opt/reload-iptables.sh可使用DynDNS主机名的新IP地址自动重新加载iptables。

后处理命令可在config.json中为每个用户单独配置。

示例:使用iptables的动态防火墙

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)。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"