#dns-records #ip-address #ddns #update #dynamic #subdomain #namecheap

app namecheap-ddns

更新 Namecheap 的 A + 动态 DNS 记录

11 个版本

0.3.3 2024 年 3 月 30 日
0.3.0 2023 年 12 月 2 日
0.2.4 2023 年 8 月 1 日
0.2.3 2023 年 1 月 29 日
0.1.1 2019 年 12 月 25 日

网络编程 中排名第 555

Download history 6/week @ 2024-05-18 1/week @ 2024-05-25 3/week @ 2024-06-08 1/week @ 2024-06-15 98/week @ 2024-07-27

每月 98 次下载

MIT 许可证

10KB
88

Namecheap DDNS

Latest Version Downloads License Continuous Integration Status

一个命令行界面 (CLI),用于更新 Namecheap 的 A + 动态 DNS 记录。

预编译的二进制文件

您可以通过下载和运行 预编译的二进制文件 来立即启动。

安装

另一种方法是使用 cargo 进行安装

cargo install namecheap-ddns

使用方法

请查看帮助 (--help) 了解此工具的详细信息

Updates the A + Dynamic DNS records for Namecheap

Usage: namecheap-ddns [OPTIONS] --domain <DOMAIN> --subdomain <SUBDOMAIN> --token <TOKEN>

Options:
  -d, --domain <DOMAIN>        The domain with subdomains [env: NAMECHEAP_DDNS_DOMAIN=]
  -s, --subdomain <SUBDOMAIN>  The subdomain to update [env: NAMECHEAP_DDNS_SUBDOMAIN=]
  -i, --ip <IP>                The ip address to set on the subdomains (if
                               blank the ip used to make this request will be
                               used) [env: NAMECHEAP_DDNS_IP=]
  -t, --token <TOKEN>          The secret token [env: NAMECHEAP_DDNS_TOKEN=]
  -h, --help                   Print help
  -V, --version                Print version

您需要指定 Namecheap 提供的高级 DNS 控制面板中的动态 DNS 密码作为环境变量 NAMECHEAP_DDNS_TOKEN

提示: 这不是您的 Namecheap 登录密码。

示例

我想使用我的当前公网 IP 地址更新主机 host1.example.com

$ NAMECHEAP_DDNS_TOKEN=... namecheap-ddns -d example.com -s host1
host1.example.com IP address updated to: 123.123.123.123

我想使用给定的 IP 地址更新多个子域名(host1host2host3

$ NAMECHEAP_DDNS_TOKEN=... namecheap-ddns \
>     -d example.com \
>     -s host1 -s host2 -s host3
>     -i 123.123.123.123
host1.example.com IP address updated to: 123.123.123.123
host2.example.com IP address updated to: 123.123.123.123
host3.example.com IP address updated to: 123.123.123.123

我想使用环境变量文件

$ cat .env
export NAMECHEAP_DDNS_TOKEN=...
export NAMECHEAP_DDNS_DOMAIN=example.com
export NAMECHEAP_DDNS_SUBDOMAIN=host1,host2
export NAMECHEAP_DDNS_IP=321.321.321.321
$ source .env
$ namecheap-ddns
host1.example.com IP address updated to: 321.321.321.321

Linux - systemd

如果您想将其设置为服务,则需要创建一个服务文件和相应的定时器。

  1. 创建更新子域名的服务本身

    # /etc/systemd/system/ddns-update.service
    
    [Unit]
    Description=Update DDNS records for Namecheap
    After=network-online.target
    
    [Service]
    Type=simple
    Environment=NAMECHEAP_DDNS_TOKEN=<TOKEN>
    Environment=NAMECHEAP_DDNS_DOMAIN=<DOMAIN>
    Environment=NAMECHEAP_DDNS_SUBDOMAIN=<SUBDOMAIN>
    ExecStart=/path/to/namecheap-ddns
    User=<USER>
    
    [Install]
    WantedBy=default.target
    

    请确保填写正确的二进制文件路径以及环境变量。

  2. 请注意,超级秘密令牌在此文件中,因此我们应该设置限制性权限

    sudo chmod 600 /etc/systemd/system/ddns-update.service
    
  3. 创建运行此服务的定时器

    # /etc/systemd/system/ddns-update.timer
    
    [Unit]
    Description=Run DDNS update every 15 minutes
    Requires=ddns-update.service
    
    [Timer]
    Unit=ddns-update.service
    OnUnitInactiveSec=15m
    AccuracySec=1s
    
    [Install]
    WantedBy=timers.target
    
  4. 现在我们重新加载守护进程并启动新服务

    sudo systemctl daemon-reload
    sudo systemctl start ddns-update.service ddns-update.timer
    

您可以使用以下命令查看服务的日志

sudo journalctl -u ddns-update.service

依赖项

~5MB
~113K SLoC