---
title: NameCheap DDNS IP 更新简易脚本
description: 动态域名解析（DDNS）的核心思想在于，当客户端（通常是您的家庭网络或服务器）的…
url: "https://brimflow.xyz/docs/operations/namecheap-ddns-script/"
updated: "2025-06-09"
category: 运维
---

# NameCheap DDNS IP 更新简易脚本

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

本简易脚本皆在简化 NameCheap DDNS IP 地址更新过程。

## 简易 **DDNS**IP 更新脚本

以下是一个使用 `curl` 命令实现的简单 Bash 脚本，用于向 NameCheap DDNS 服务发送更新 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 的服务器。

## 功能**验证**

赋予执行权限。如果您将脚本保存为 `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`，则表示更新失败，您需要检查脚本中的配置信息是否正确。

 NameCheap：[How to dynamically update the host's IP with an HTTPS request?](https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-to-dynamically-update-the-hosts-ip-with-an-https-request/)
