View Categories

NameCheap DDNS IP 地址更新简易脚本

阅读时间: 2 分钟

动态域名解析(DDNS)的核心思想在于,当客户端(通常是您的家庭网络或服务器)的公共 IP 地址发生变化时,它能够主动地将这个新的 IP 地址告知域名服务提供商。这样,即使您的 IP 地址是动态的,您的域名也能始终指向最新的 IP 地址,从而保证服务的连续性。

本脚本旨在简化 NameCheap 用户的 DDNS IP 地址更新过程。

1. 简易 IP 更新脚本 #

以下是一个使用 curl 命令实现的简单 Bash 脚本,用于向 NameCheap 的动态 DNS 服务发送更新 IP 地址的请求。

Bash
#!/bin/bash
HOST="your_subdomain"
DOMAIN="yourdomain.com"
PASSWORD="YOUR_API_KEY"

IP=$(curl -s https://checkip.amazonaws.com)

curl "https://dynamicdns.park-your-domain.com/update?host=$HOST&domain=$DOMAIN&password=$PASSWORD&ip=$IP"

请务必将脚本中的以下占位符替换为您的实际信息:

  • your_subdomain: 您需要动态更新 IP 地址的子域名(例如,home)。如果需要更新根域名,通常设置为 @
  • yourdomain.com: 您的域名。
  • YOUR_API_KEY: 您在 NameCheap 账户中获取的 API 密钥,用于进行动态 DNS 更新的身份验证。

脚本工作原理:

  1. 获取当前 IP 地址: 脚本首先使用 curl 命令访问 https://checkip.amazonaws.com 这个服务,该服务会返回客户端的公共 IP 地址,并将其存储在 IP 变量中。
  2. 构建更新 URL: 脚本然后使用 curl 命令向 NameCheap 的动态 DNS 更新接口发送一个 HTTP GET 请求。请求的 URL 包含了您的主机名 (host)、域名 (domain)、API 密钥 (password) 以及获取到的当前 IP 地址 (ip)。
  3. 发送更新请求: curl 命令将构建好的 URL 发送给 NameCheap 的服务器。

2. 功能测试 #

赋予执行权限。如果您将脚本保存为 ./namecheap-ddns-client.sh,执行:

Bash
sudo chmod +x ./namecheap-ddns-client.sh

执行脚本:

Bash
bash ./namecheap-ddns-client.sh

如果您的 API 密钥、主机名和域名配置正确,并且更新成功,NameCheap 的服务器通常会返回一个 XML 格式的响应,其中 <ErrCount> 标签的值为 0<Done> 标签的值为 true。一个成功的响应示例如下:

XML
<?xml version="1.0" encoding="utf-16"?>
<interface-response>
    <Command>SETDNSHOST</Command>
    <Language>eng</Language>
    <IP>22.33.44.55</IP>
    <ErrCount>0</ErrCount>
    <errors />
    <ResponseCount>0</ResponseCount>
    <responses />
    <Done>true</Done>
    <debug><![CDATA[]]></debug>
</interface-response>

请注意,<IP> 标签中的值是您执行脚本时机器的公共 IP 地址。如果 <ErrCount> 大于 0 或者 <Done> 的值为 false,则表示更新失败,您需要检查脚本中的配置信息是否正确。

有用的链接

更新 2025-05-10