Browse Source

doc(providers): all providers doc (#522)

* doc(providers): all providers doc

- Enhanced No-IP documentation with clearer authentication methods and examples.
- Added official links and improved parameter descriptions for No-IP.
- Updated TencentCloud documentation to streamline API key acquisition and configuration examples.
- Improved troubleshooting sections for both providers, including common issues and error codes.
- Standardized JSON configuration examples across both providers.
- Added schema validation reference in configuration examples.

Co-authored-by: Copilot <[email protected]>
New Future 4 months ago
parent
commit
0eea4c6850

+ 14 - 12
.github/ISSUE_TEMPLATE/new-dns-provider.md

@@ -8,24 +8,26 @@ assignees: ''
 
 ## DNS 服务商信息
 
-- **官网 (Website):**
-- **中文名称 (Chinese Name):**
-- **英文名称 (English Name):**
-- **标准DNS服务商 (Standard DNS Provider):**  Yes/No
+- **官网 (Website)**:
+- **中文名称 (Chinese Name)**:
+- **英文名称 (English Name)**:
+- **标准DNS服务商 (Standard DNS Provider)**:  Yes/No
 
---
+---
 
 ## DNS 服务商文档链接
 
+<!-- 务必准确提供各种文档链接,以方便AI 自动生成 -->
+
 请提供以下相关文档的链接(如有):
 
-- [ ] **API 认证与签名** (Authorization & Signature)
-- [ ] **查询/列出域名** (Query/List Domains)
-- [ ] **查询/列出解析记录** (Query/List DNS Records)
-- [ ] **创建解析记录** (Create DNS Record)
-- [ ] **修改解析记录** (Update DNS Record)
-- [ ] **其它配置或使用文档** (Other Configuration/Usage Docs, 可选)
-- [ ] **官方或第三方Python SDK** (Official or Third-party Python SDK, 可选)
+- [ ] **API 认证与签名** (Authorization & Signature):
+- [ ] **查询/列出域名** (Query/List Domains):
+- [ ] **查询/列出解析记录** (Query/List DNS Records):
+- [ ] **创建解析记录** (Create DNS Record):
+- [ ] **修改解析记录** (Update DNS Record):
+- [ ] **其它配置或使用文档** (Other Configuration/Usage Docs, 可选):
+- [ ] **官方或第三方Python SDK** (Official or Third-party Python SDK, 可选):
 
 ---
 

+ 5 - 0
.github/copilot-instructions.md

@@ -18,6 +18,11 @@ This is a Python-based Dynamic DNS (DDNS) client that automatically updates DNS
 Follow the steps below to add a new DNS provider:
 - [Python coding standards](./instructions/python.instructions.md)
 - [Provider development guide](../doc/dev/provider.md)
+- Provider documentation template:[aliyun]](../doc/provider/aliyun.md) and [dnspod](../doc/provider/dnspod.md)
+  - keep the template structure and fill in the required information
+  - remove the not applicable sections or fields
+  - in english doc linke the documentation to the english version documentations
+  - don't change the ref link `[参考](../json.md#ipv4-ipv6)` in the template. In english documentation, use the english version link `[Reference](../json.en.md#ipv4-ipv6)`
 
 ## Repository Structure
 - `ddns/`: Main application code

+ 2 - 2
README.md

@@ -40,7 +40,7 @@
   - [DNSPOD](https://www.dnspod.cn/) ([配置指南](doc/providers/dnspod.md))
   - [阿里 DNS](http://www.alidns.com/) ([配置指南](doc/providers/alidns.md)) ⚡
   - [阿里云边缘安全加速(ESA)](https://esa.console.aliyun.com/) ([配置指南](doc/providers/aliesa.md)) ⚡
-  - [DNS.COM](https://www.dns.com/) ([配置指南](doc/providers/dnscom.md)) (@loftor-git)
+  - [DNS.COM](https://www.dns.com/) ([配置指南](doc/providers/51dns.md)) (@loftor-git)
   - [DNSPOD 国际版](https://www.dnspod.com/) ([配置指南](doc/providers/dnspod_com.md))
   - [CloudFlare](https://www.cloudflare.com/) ([配置指南](doc/providers/cloudflare.md)) (@tongyifan)
   - [HE.net](https://dns.he.net/) ([配置指南](doc/providers/he.md)) (@NN708) (不支持自动创建记录)
@@ -120,7 +120,7 @@
    - **DNSPOD(中国版)**: [创建 token](https://support.dnspod.cn/Kb/showarticle/tsid/227/) | [详细配置文档](doc/providers/dnspod.md)
    - **阿里云 DNS**: [申请 accesskey](https://help.aliyun.com/document_detail/87745.htm) | [详细配置文档](doc/providers/alidns.md)
    - **阿里云边缘安全加速(ESA)**: [申请 accesskey](https://help.aliyun.com/document_detail/87745.htm) | [详细配置文档](doc/providers/aliesa.md)
-   - **DNS.COM**: [API Key/Secret](https://www.dns.com/member/apiSet) | [详细配置文档](doc/providers/dnscom.md)
+   - **51DNS(dns.com)**: [API Key/Secret](https://www.dns.com/member/apiSet) | [详细配置文档](doc/providers/51dns.md)
    - **DNSPOD(国际版)**: [获取 token](https://www.dnspod.com/docs/info.html#get-the-user-token) | [详细配置文档](doc/providers/dnspod_com.md)
    - **CloudFlare**: [API Key](https://support.cloudflare.com/hc/en-us/articles/200167836-Where-do-I-find-my-Cloudflare-API-key-)(除了 `email + API KEY`,也可使用 `Token`,**需要list Zone 权限**) | [详细配置文档](doc/providers/cloudflare.md)
    - **HE.net**: [DDNS 文档](https://dns.he.net/docs.html)(仅需将设置的密码填入 `token` 字段,`id` 字段可留空) | [详细配置文档](doc/providers/he.md)

+ 3 - 0
_config.yml

@@ -8,3 +8,6 @@ kramdown:
 
 plugins:
   - jekyll-mentions
+  - jekyll-seo-tag
+  - jekyll-sitemap
+  - jekyll-redirect-from

+ 31 - 31
doc/dev/provider.md

@@ -106,7 +106,8 @@ class MySimpleProvider(SimpleProvider):
             raise ValueError("Invalid API token format")
 
     def set_record(self, domain, value, record_type="A", ttl=None, line=None, **extra):
-        """更新DNS记录 - 必须实现"""
+        # type: (str, str, str, int | None, str | None) -> bool
+        """更新或创建DNS记录 https://doc.simpledns.com/update"""
         # logic to update DNS record
 ```
 
@@ -139,36 +140,35 @@ class MyProvider(BaseProvider):
 
     def _query_zone_id(self, domain):
         # type: (str) -> str | None
-        """查询主域名的Zone ID"""
-        # 精确查找 或者 list匹配
-
-    def _query_record(self, zone_id, subdomain, main_domain, record_type, line=None, extra=None):
-        # type: (str, str, str, str, str | None, dict | None) -> Any
-        """查询现有DNS记录"""
-
-
-    def _create_record(self, zone_id, subdomain, main_domain, value, record_type, ttl=None, line=None, extra=None):
-        # type: (str, str, str, str, str, int | str | None, str | None, dict | None) -> bool
-        """创建新的DNS记录"""
-
-    def _update_record(self, zone_id, old_record, value, record_type, ttl=None, line=None, extra=None):
-        # type: (str, dict, str, str, int | str | None, str | None, dict | None) -> bool
-        """更新现有DNS记录"""
-
-    
-    def _request(self, action, **params):
-        # type: (str, **(str | int | bytes | bool | None)) -> dict
-        """[推荐]封装通用请求逻辑,处理认证和公共参数"""
-        # 构建请求参数
-        request_params = {
-            "Action": action,
-            "Version": "2023-01-01",
-            "AccessKeyId": self.token,
-            **{k: v for k, v in params.items() if v is not None}
-        }
-
-        res = self._http("POST", "/", params=request_params, headers=headers)
-        return res.get("data", {})
+        """查询Zone信息 ZoneId https://doc.exmaple.com/api/query_zone"""
+        res = self._request("ZoneInfo", key=value...)
+        ...
+        self.logger.debug("domain not found for: %s", domain)
+        return None
+
+    def _query_record(self, zone_id, subdomain, main_domain, record_type, line, extra):
+        # type: (str, str, str, str, str | None, dict) -> dict | None
+        """查询记录信息 https://doc.exmaple.com/api/list_records"""
+        res = self._request("DescribeRecords", ZoneId=zone_id, Key=value...)
+        ...
+        self.logger.warning("No record found for: %s", res)
+        return None
+
+    def _create_record(self, zone_id, subdomain, main_domain, value, record_type, ttl, line, extra):
+        # type: (str, str, str, str, str, int, str | None, dict) -> bool
+        """创建新record https://doc.exmaple.com/api/create_record"""
+        res = self._request("CreateRecord", ZoneId=zone_id, DomainName=domain, OriginInfo=origin, **extra)
+        ...
+        self.logger.error("Failed to create record: %s", res)
+        return False
+
+    def _update_record(self, zone_id, old_record, value, record_type, ttl, line, extra):
+        # type: (str, Any, str, str, int, str | None, dict) -> bool
+        """更新record https://doc.exmaple.com/api/update_record"""
+        res = self._request("ModifyRecord", ZoneId=zone_id, DomainName=domain, OriginInfo=origin)
+        ...
+        self.logger.error("Failed to update record: %s", res)
+        return False
 ```
 
 ---

+ 136 - 386
doc/json.en.md

@@ -1,32 +1,34 @@
 # DDNS JSON Configuration File Reference
 
-This document provides detailed information about the DDNS JSON configuration file format and parameters. JSON configuration files have priority between command line arguments and environment variables.
+This document provides detailed information about the JSON configuration file format and parameters for the DDNS tool. JSON configuration files have priority between command line arguments and environment variables.
 
 ## Basic Usage
 
-By default, DDNS looks for a `config.json` file in the current directory. You can also specify a configuration file path using the `-c` parameter:
+By default, DDNS looks for a `config.json` file in the current directory. You can also use the `-c` parameter to specify a configuration file path:
 
-* Current directory `config.json` (note that Docker working directory is `/ddns/`)
+* Current directory `config.json` (note that Docker runtime directory is `/ddns/`)
 * Current user directory `~/.ddns/config.json`
 * Linux system directory `/etc/ddns/config.json`
 
-> Note: When using configuration files in Docker, you need to mount the configuration file to the container's `/ddns/` directory through volume mapping. For details, please refer to the [Docker Usage Documentation](docker.en.md).
+> Note: When using configuration files in Docker, you need to mount the configuration file to the container's `/ddns/` directory through volume mapping. For details, please refer to the [Docker documentation](docker.en.md).
 
 ```bash
-# Use default configuration file
-# Will auto-generate configuration file if none exists
-ddns
+# Generate configuration file
+ddns --new-config
+# Specify parameters and configuration file
+ddns --dns dnspod --ipv4 ddns.newfuture.cc --new-config config.json
 
 # Use specified configuration file
 ddns -c /path/to/config.json
-
-# Or using Python source code
+# Or use Python source code
 python -m ddns -c /path/to/config.json
 ```
 
 ## JSON Schema
 
-DDNS configuration files follow JSON Schema, and it's recommended to add the `$schema` field to your configuration file for editor auto-completion and validation:
+DDNS configuration files follow JSON Schema standards. It's recommended to add the `$schema` field to your configuration file for editor auto-completion and validation features:
+
+Since v4.1.0, configuration files support single-line comments.
 
 ```json
 {
@@ -34,449 +36,197 @@ DDNS configuration files follow JSON Schema, and it's recommended to add the `$s
 }
 ```
 
-## Configuration Parameters Table
-
-| Key      | Type               | Required | Default Value | Description          | Notes                                                                                                                          |
-| :------: | :----------------: | :------: | :-----------: | :------------------: | ------------------------------------------------------------------------------------------------------------------------------ |
-| id       | string             | Yes      | None          | API Access ID        | Cloudflare uses email (leave empty when using Token)<br>HE.net can be empty<br>Huawei Cloud uses Access Key ID (AK)         |
-| token    | string             | Yes      | None          | API Authorization Token | Some platforms call it secret key                                                                                           |
-| endpoint | string             | No       | None          | API Endpoint URL     | For custom or private API deployments, uses default endpoint when empty                                                       |
-| dns      | string             | No       | `"dnspod"`    | DNS Provider         | Available values: 51dns, alidns, aliesa, callback, cloudflare, debug, dnscom, dnspod_com, dnspod, he, huaweidns, noip, tencentcloud |
-| ipv4     | array              | No       | `[]`          | IPv4 Domain List     | When `[]`, IPv4 address will not be retrieved and updated                                                                     |
-| ipv6     | array              | No       | `[]`          | IPv6 Domain List     | When `[]`, IPv6 address will not be retrieved and updated                                                                     |
-| index4   | string\|int\|array | No       | `["default"]` | IPv4 Detection Method | See detailed explanation below                                                                                                |
-| index6   | string\|int\|array | No       | `["default"]` | IPv6 Detection Method | See detailed explanation below                                                                                                |
-| ttl      | number             | No       | `null`        | DNS Resolution TTL    | In seconds, uses DNS default policy when not set                                                                             |
-| line     | string             | No       | `null`        | DNS Resolution Line   | ISP line selection, supported values depend on DNS provider, e.g., `"default"`, `"telecom"`, `"unicom"`, `"mobile"`, etc.   |
-| proxy    | string\|array      | No       | None          | HTTP Proxy           | Multiple proxies are tried one by one until success, `DIRECT` means direct connection                                        |
-| ssl      | string\|boolean    | No       | `"auto"`      | SSL Certificate Verification | `true` (force verification), `false` (disable verification), `"auto"` (auto fallback), or custom CA certificate file path |
-| cache    | string\|bool       | No       | `true`        | Enable Record Caching | Normally enabled to avoid frequent updates, default location is `ddns.{hash}.cache` in temp directory, can specify custom path     |
-| log      | object             | No       | `null`        | Log Configuration (Optional) | Log configuration object, supports `level`, `file`, `format`, `datefmt` parameters                                      |
-
-### log Object Parameters
-
-| Key     | Type   | Required | Default Value                                   | Description            |
-| :-----: | :----: | :------: | :-------------------------------------: | :--------------------: |
-| level   | string | No       | `INFO`                                  | Log Level              |
-| file    | string | No       | None                                    | Log File Path          |
-| format  | string | No       | `%(asctime)s %(levelname)s [%(module)s]: %(message)s` | Log Format String |
-| datefmt | string | No       | `%Y-%m-%dT%H:%M:%S`                     | Date Time Format       |
-
-### index4 and index6 Parameters
-
-The `index4` and `index6` parameters specify IP address detection methods and can use the following values:
-
-* **Number** (e.g., `0`, `1`, `2`...): Use IP address of the Nth network interface
-* **String**:
-  * `"default"`: System's default external IP
-  * **Comma or semicolon-separated strings**: Support using comma `,` or semicolon `;` to separate multiple detection methods, e.g., `"public,regex:192\\.168\\..*"`
-* **Boolean**: `false` means disable updating corresponding IP type DNS records
-* **Array**: Try different detection methods in order, use the first successful result
-
-## DNS Provider Values
-
-DDNS supports the following DNS providers:
-
-* **51dns**: DNS.COM service (alias for dnscom)
-* **alidns**: Alibaba Cloud DNS
-* **aliesa**: Alibaba Cloud ESA (Edge Security Acceleration)
-* **callback**: Custom callback/webhook
-* **cloudflare**: Cloudflare DNS
-* **debug**: Debug provider (prints IP without updating DNS)
-* **dnscom**: DNS.COM service (same as 51dns)
-* **dnspod**: DNSPod (China)
-* **dnspod_com**: DNSPod International
-* **he**: Hurricane Electric DNS
-* **huaweidns**: Huawei Cloud DNS
-* **noip**: No-IP Dynamic DNS
-* **tencentcloud**: Tencent Cloud DNS
-
-## Custom Callback Configuration
-
-When `dns` is set to `callback`, you can configure custom callbacks as follows:
-
-* `id` field: Fill in the callback URL starting with HTTP or HTTPS, supports variable substitution
-* `token` field: POST request parameters (JSON object or JSON string), uses GET method when empty
-
-For detailed configuration, please refer to: [Callback Provider Configuration Documentation](providers/callback.en.md)
-
-Supported variable substitutions:
-
-| Variable Name | Content | Description |
-|---------------|---------|-------------|
-| `__DOMAIN__` | Full domain name | e.g., `www.example.com` |
-| `__IP__` | IP address | IPv4 or IPv6 address |
-| `__RECORDTYPE__` | DNS record type | e.g., `A`, `AAAA`, `CNAME` |
-| `__TTL__` | Time to live | TTL value in seconds |
-| `__LINE__` | Resolution line | ISP line identifier |
-| `__TIMESTAMP__` | Current timestamp | Unix timestamp |
-
-## Configuration Examples
-
-### Basic Configuration
+## Schema
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "dns": "cloudflare",
-  "id": "[email protected]",
-  "token": "your_cloudflare_token",
-  "ipv4": ["example.com"]
-}
-```
+Configuration Parameters Table
 
-### Advanced Configuration
+| Key Name | Type | Required | Default Value | Parameter Description | Notes |
+| :------: | :--: | :------: | :-----------: | :------------------: | ----- |
+| dns | string | No | None | DNS Provider | Available values: 51dns, alidns, aliesa, callback, cloudflare, debug, dnscom, dnspod_com, dnspod, he, huaweidns, namesilo, noip, tencentcloud |
+| id | string | Yes | None | API Access ID | Configure according to provider documentation (e.g., AccessKeyID) |
+| token | string | Yes | None | API Authorization Token | Configure according to provider documentation (e.g., AccessSecret) |
+| endpoint | string | No | None | API Endpoint URL | For custom or private deployment API addresses, uses default endpoint when empty |
+| ipv4 | array | No | `[]` | IPv4 Domain List | |
+| ipv6 | array | No | `[]` | IPv6 Domain List | |
+| index4 | string\|int\|array | No | `["default"]` | IPv4 Retrieval Method | [See details below](#ipv4-ipv6) |
+| index6 | string\|int\|array | No | `["default"]` | IPv6 Retrieval Method | [See details below](#ipv4-ipv6) |
+| ttl | number | No | `null` | DNS TTL Time | In seconds, uses DNS default policy when not set |
+| line | string | No | `null` | DNS Resolution Line | ISP line selection, supported values depend on DNS provider |
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "dns": "cloudflare",
-  "id": "[email protected]",
-  "token": "your_cloudflare_token",
-  "ipv4": ["example.com", "www.example.com", "api.example.com"],
-  "ipv6": ["ipv6.example.com"],
-  "index4": ["public", "default"],
-  "index6": "public",
-  "ttl": 600,
-  "proxy": ["127.0.0.1:1080", "DIRECT"],
-  "cache": "/var/cache/ddns.json",
-  "ssl": true,
-  "log": {
-    "level": "INFO",
-    "file": "/var/log/ddns.log",
-    "format": "%(asctime)s [%(levelname)s] %(message)s",
-    "datefmt": "%Y-%m-%d %H:%M:%S"
-  }
-}
-```
+### dns
 
-### Provider-Specific Examples
+The `dns` parameter specifies the DNS provider identifier. For supported values, please refer to the [Provider List](providers/README.en.md):
 
-#### Cloudflare (Email + API Key)
+> When in debug mode and no dns parameter is configured, the debug provider is used.
 
-```json
-{
-  "dns": "cloudflare",
-  "id": "[email protected]",
-  "token": "your_api_key",
-  "ipv4": ["example.com", "www.example.com"]
-}
-```
+### id and token
 
-#### Cloudflare (API Token Only)
+The `id` and `token` parameters are used for API authentication. Their specific meaning and format depend on the selected DNS provider.
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_api_token",
-  "ipv4": ["example.com", "www.example.com"]
-}
-```
+### endpoint
 
-#### DNSPod
+The `endpoint` parameter is used to specify a custom API endpoint. Most providers have default endpoints, so modification is not needed unless there are special requirements.
 
-```json
-{
-  "dns": "dnspod",
-  "id": "12345",
-  "token": "your_dnspod_token",
-  "ipv4": ["example.com"],
-  "line": "默认"
-}
-```
+Special cases include:
 
-#### Alibaba Cloud DNS
+* Providers with regional deployment (such as Tencent Cloud, Alibaba Cloud, etc.) need to specify the corresponding regional API endpoint.
+* **Private Cloud Deployment**: If you're using a privately deployed DNS service, you need to specify the corresponding private API endpoint address.
+* **Proxy Forwarding**: If you're using a third-party API proxy service, you need to specify the proxy URL.
 
-```json
-{
-  "dns": "alidns",
-  "id": "LTAI4xxxxxxxxxxxxx",
-  "token": "your_secret_key",
-  "ipv4": ["example.com"],
-  "line": "default"
-}
-```
+### ipv4-ipv6
 
-#### Alibaba Cloud ESA
+The `ipv4` and `ipv6` parameters specify the DNS record names to be updated, which can be domain or subdomain lists. You can use array format to specify multiple records.
 
-```json
-{
-  "dns": "aliesa",
-  "id": "LTAI4xxxxxxxxxxxxx",
-  "token": "your_secret_key",
-  "ipv4": ["example.com"],
-  "endpoint": "https://esa.ap-southeast-1.aliyuncs.com"
-}
-```
+Supported formats:
 
-#### No-IP
+* When empty, the corresponding IP type DNS records will not be updated.
+* **Single domain**: `"ddns.newfuture.cc"`
+* **Multiple domains**: `["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"]`
 
-```json
-{
-  "dns": "noip",
-  "id": "your_username",
-  "token": "your_password",
-  "ipv4": ["home.example.com"],
-  "endpoint": "https://dynupdate.no-ip.com"
-}
-```
+### index4-index6
 
-#### Custom Callback (GET)
+The `index4` and `index6` parameters are used to specify the method for obtaining IP addresses. The following values can be used:
 
-```json
-{
-  "dns": "callback",
-  "id": "https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__",
-  "token": "",
-  "ipv4": ["example.com"]
-}
-```
+Supported types:
+
+* `false` indicates prohibition of updating the corresponding IP type DNS records
+* **Numbers** (such as `0`, `1`, `2`...): Use the IP address of the Nth network interface
+* `"default"`: System's default IP for external network access
+* `"public"`: Use public IP (queried through API)
+* `"url:http..."`: Get IP through specified URL, e.g., `"url:http://ip.sb"`
+* `"regex:xxx"`: Use regular expression to match IP in local network configuration, e.g., `"regex:192\\.168\\..*"`
+  * Note: Backslashes need to be escaped in JSON, e.g., `"regex:10\\.00\\..*"` matches IPs starting with `10.00.`
+* `"cmd:xxx"`: Execute specified command and use its output as IP
+* `"shell:xxx"`: Use system shell to run command and use its output as IP
 
-#### Custom Callback (POST)
+Configuration examples:
 
 ```json
 {
-  "dns": "callback",
-  "id": "https://api.example.com/ddns",
-  "token": {
-    "api_key": "your_key",
-    "domain": "__DOMAIN__",
-    "ip": "__IP__",
-    "timestamp": "__TIMESTAMP__"
-  },
-  "ipv4": ["example.com"]
+    "index4": ["public", "url:http://ipv4.icanhazip.com"], // Prefer public IP, fallback to specified URL
+    "index6": ["shell:ip route", "regex:2003:.*"], // Use shell command, fallback to regex matching IPv6 addresses
+    "index4": [0, "public"], // Use first network interface IP, fallback to public IP
+    "index6": "public", // Use public IPv6 address
+    "index4": false // Disable IPv4 record updates
 }
 ```
 
-#### Custom Endpoint
+### ttl
 
-```json
-{
-  "dns": "cloudflare",
-  "endpoint": "https://api.private-cloudflare.com",
-  "token": "your_token",
-  "ipv4": ["example.com"]
-}
-```
+The `ttl` parameter specifies the Time To Live (TTL) for DNS records in seconds. The default value is `null`, which means using the DNS provider's default TTL policy.
+The specific value range and default value depend on the selected DNS provider.
 
-### IP Detection Configuration
+### line
 
-#### Multiple Detection Methods
+The `line` parameter is used to specify DNS resolution lines. Supported values depend on the selected DNS provider.
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "index4": ["public", "default", "regex:192\\.168\\..*"],
-  "index6": ["public", 0, 1]
-}
-```
+### proxy
 
-#### Custom URL Detection
+The `proxy` parameter is used to set HTTP proxy, which can be a single proxy address or an array of multiple proxy addresses. The following formats are supported:
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "index4": "url:https://api.ipify.org",
-  "index6": "url:https://api6.ipify.org"
-}
-```
+Proxy types:
 
-#### Command-based Detection
+* http: `"http://<proxy_host>:<proxy_port>"`
+* https: `"https://<proxy_host>:<proxy_port>"`
+* No proxy: `"DIRECT"`
+
+Configuration examples:
 
 ```json
 {
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "index4": "cmd:hostname -I | awk '{print $1}'",
-  "index6": "cmd:ip -6 addr show | grep global | awk '{print $2}' | cut -d/ -f1"
+    "proxy": "http://127.0.0.1:1080", // Single proxy address
+    "proxy": ["http://127.0.0.1:1080","DIRECT"], // Try proxy first, fallback to direct connection
+    "proxy": null // No proxy
 }
 ```
 
-### Network Configuration
+> Note: If `proxy` is configured, the proxy only applies to provider requests; IP retrieval APIs will not use the proxy parameter.
 
-#### Proxy Configuration
+### ssl
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "proxy": [
-    "127.0.0.1:1080",
-    "socks5://127.0.0.1:1081",
-    "http://user:[email protected]:8080",
-    "DIRECT"
-  ]
-}
-```
+The `ssl` parameter is used to configure SSL verification method. The following values are supported:
 
-#### SSL Configuration
+* `"auto"`: Auto downgrade to not verify SSL certificates (less secure)
+* `true`: Force SSL certificate verification
+* `false`: Disable SSL verification (insecure)
+* `"/path/to/ca.crt"`: Specify custom CA certificate file
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "ssl": "auto"
-}
-```
+> Note: If `ssl` is configured, all API requests, including provider and IP retrieval APIs, will use this configuration.
 
-Or with custom CA certificate:
+### cache
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "ssl": "/path/to/custom-ca.pem"
-}
-```
+The `cache` parameter is used to configure DNS record caching method. The following values are supported:
 
-### Logging Configuration
+* `true`: Enable caching, default location is `ddns.{hash}.cache` in the temporary directory
+* `false`: Disable caching
+* `"/path/to/cache.file"`: Specify custom cache file path
 
-#### Basic Logging
+### log
 
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "log": {
-    "level": "DEBUG",
-    "file": "/var/log/ddns.log"
-  }
-}
-```
+The `log` parameter is used to configure logging. It's an object that supports the following fields:
 
-#### Advanced Logging
+| Key Name | Type | Required | Default Value | Description |
+| :------: | :--: | :------: | :-----------: | :---------: |
+| level | string | No | `INFO` | Log level |
+| file | string | No | None | Log file path |
+| format | string | No | Auto-adjusted | Log format string |
+| datefmt | string | No | `%Y-%m-%dT%H:%M:%S` | Date time format |
+
+## Configuration Example
 
 ```json
 {
+  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
+  "id": "12345",
+  "token": "mytokenkey",
   "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
+  "ipv4": ["ddns.newfuture.cc"],
+  "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"],
+  "index4": ["public", "regex:192\\.168\\.1\\..*"],
+  "index6": "public",
+  "ttl": 300,
+  "proxy": ["http://127.0.0.1:1080", "DIRECT"],
+  "ssl": "auto",
+  "cache": "/var/cache/ddns.cache",
   "log": {
-    "level": "INFO",
+    "level": "DEBUG",
     "file": "/var/log/ddns.log",
-    "format": "[%(asctime)s] %(levelname)s: %(message)s",
     "datefmt": "%Y-%m-%d %H:%M:%S"
   }
 }
 ```
 
-### Cache Configuration
-
-#### Default Cache
-
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "cache": true
-}
-```
-
-#### Custom Cache Location
-
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "cache": "/var/cache/ddns/custom.json"
-}
-```
-
-#### Disable Cache
-
-```json
-{
-  "dns": "cloudflare",
-  "token": "your_token",
-  "ipv4": ["example.com"],
-  "cache": false
-}
-```
-
-## Configuration File Locations
-
-DDNS searches for configuration files in the following order:
-
-1. **Command line specified**: `-c /path/to/config.json`
-2. **Current directory**: `./config.json`
-3. **User home directory**: `~/.ddns/config.json`
-4. **System directory**: `/etc/ddns/config.json`
-
-The first found configuration file will be used.
-
-## Configuration Validation
-
-DDNS validates the configuration file and provides helpful error messages for invalid configurations:
-
-* **Required fields**: `id` and `token` are required for most providers
-* **Domain format**: Domains must be valid DNS names
-* **Array format**: Domain lists must be arrays of strings
-* **Number format**: TTL must be a positive integer
-* **URL format**: Endpoints must be valid URLs
-
-## Configuration Generation
-
-You can generate a template configuration file using the `--new-config` command line parameter:
-
-```bash
-# Generate default config.json
-ddns --new-config
-
-# Generate with custom filename
-ddns --new-config=my-config.json
-
-# Generate with pre-filled values
-ddns --new-config --dns cloudflare --id [email protected] --token your_token
-```
-
-## Configuration Priority
-
-DDNS uses the following priority order (highest to lowest):
-
-1. **Command line arguments** (highest priority)
-2. **JSON configuration file**
-3. **Environment variables** (lowest priority)
-
-This means command line arguments will override any settings in configuration files or environment variables.
-
-## Best Practices
+## Configuration Priority and Field Override Relationships
 
-### Security
+The configuration priority order in the DDNS tool is: **Command Line Arguments > JSON Configuration File > Environment Variables**.
 
-* Store sensitive tokens in separate files with restricted permissions
+* **Command Line Arguments**: Highest priority, will override the same settings in JSON configuration files and environment variables
+* **JSON Configuration File**: Between command line arguments and environment variables, will override settings in environment variables
+* **Environment Variables**: Lowest priority, used when there are no corresponding settings in command line arguments and JSON configuration files
 
-* Use environment variables for tokens in containerized environments
-* Never commit configuration files with real tokens to version control
+### Configuration Override Example
 
-### Reliability
+Assuming the following configuration:
 
-* Use multiple IP detection methods for fallback
+1. **Environment Variable**: `DDNS_TTL=600`
+2. **JSON Configuration File**: `"ttl": 300`
+3. **Command Line Argument**: `--ttl 900`
 
-* Configure appropriate TTL values for your use case
-* Enable caching to avoid rate limiting
-* Set up proper logging for troubleshooting
+The final effective value is from the command line argument: `ttl=900`
 
-### Performance
+If no command line argument is provided, the JSON configuration value is used: `ttl=300`
 
-* Use `"auto"` SSL mode for automatic fallback
+### Special Cases
 
-* Configure multiple proxy servers for redundancy
-* Set reasonable TTL values to balance speed and reliability
+* When a value in the JSON configuration file is explicitly set to `null`, it will override environment variable settings, equivalent to not setting that value
+* When a key is missing from the JSON configuration file, the corresponding environment variable will be attempted
+* Some parameters (such as `debug`) are only effective under specific configuration methods: the `debug` parameter is only effective in command line, settings in JSON configuration will be ignored
 
-## See Also
+## Notes
 
-* [Command Line Arguments](cli.en.md)
-* [Environment Variables Configuration](env.en.md)
-* [Docker Usage](docker.en.md)
-* [Provider-specific Configuration](providers/)
+1. Configuration files use UTF-8 encoding without BOM
+2. All key names in JSON are case-sensitive
+3. For strings that need to use backslashes (such as regular expressions) in configuration files, double escaping is required
+4. The `debug` parameter is ineffective when set in configuration files, only supports command line parameter `--debug`
+5. A template configuration file will be automatically generated in the current directory on first run
+6. It's recommended to use editors that support JSON Schema (such as VSCode) to edit configuration files for auto-completion and validation features

+ 118 - 157
doc/json.md

@@ -15,7 +15,8 @@
 ```bash
 # 生成配置文件
 ddns --new-config
-ddns --new-config config.json
+# 指定参数和配置文件
+ddns --dns dnspod --ipv4 ddns.newfuture.cc --new-config config.json
 
 # 使用指定配置文件
 ddns -c /path/to/config.json
@@ -27,215 +28,175 @@ python -m ddns -c /path/to/config.json
 
 DDNS配置文件遵循JSON模式(Schema),推荐在配置文件中添加`$schema`字段以获得编辑器的自动补全和验证功能:
 
+自v4.1.0版本开始,配置文件支持单行注释。
+
 ```json
 {
   "$schema": "https://ddns.newfuture.cc/schema/v4.0.json"
 }
 ```
 
-## 配置参数表
+## Schema
+
+配置参数表
 
 |  键名    |        类型        | 必需 |   默认值    |    参数说明          | 备注                                                                                                         |
 | :------: | :----------------: | :--: | :---------: | :---------------: | ------------------------------------------------------------------------------------------------------------ |
-|   id     |       string       |  是  |     无      |    API 访问 ID    | Cloudflare为邮箱(使用Token时留空)<br>HE.net可留空<br>华为云为Access Key ID (AK)                         |
-|  token   |       string       |  是  |     无      |  API 授权令牌     | 部分平台叫secret key                                                                                    |
+|  dns     |       string       |  否  |     无      |    DNS服务商      | 可选值: 51dns, alidns, aliesa, callback, cloudflare, debug, dnscom, dnspod_com, dnspod, he, huaweidns, namesilo, noip, tencentcloud |
+|   id     |       string       |  是  |     无      |   API 访问 ID    | 请根据服务商说明配置(如 AccessKeyID)  |
+|  token   |       string       |  是  |     无      |  API 授权令牌     | 请根据服务商说明配置(如 AccessSecret)  |
 | endpoint |       string       |  否  |     无      |   API端点URL      | 用于自定义或私有部署的API地址,为空时使用默认端点                                                           |
-|  dns     |       string       |  否  | `"dnspod"`  |    DNS服务商      | 可选值: 51dns, alidns, aliesa, callback, cloudflare, debug, dnscom, dnspod_com, dnspod, he, huaweidns, noip, tencentcloud |
-|  ipv4    |       array        |  否  |    `[]`     |   IPv4域名列表    | 为`[]`时,不会获取和更新IPv4地址                                                                            |
-|  ipv6    |       array        |  否  |    `[]`     |   IPv6域名列表    | 为`[]`时,不会获取和更新IPv6地址                                                                            |
-| index4   | string\|int\|array |  否  | `["default"]` |   IPv4获取方式    | 详见下方说明                                                                                               |
-| index6   | string\|int\|array |  否  | `["default"]` |   IPv6获取方式    | 详见下方说明                                                                                               |
-|  ttl     |       number       |  否  |   `null`    | DNS TTL时间     | 单位为秒,不设置则采用DNS默认策略                                                                          |
-|  line    |       string       |  否  |   `null`    | DNS解析线路       | ISP线路选择,支持的值视DNS服务商而定,如:`"默认"`、`"电信"`、`"联通"`、`"移动"`等                          |
+|  ipv4    |       array        |  否  |    `[]`     |   IPv4域名列表    |  |
+|  ipv6    |       array        |  否  |    `[]`     |   IPv6域名列表    | |
+| index4   | string\|int\|array |  否  | `["default"]` |   IPv4获取方式    | [详见下方说明](#ipv4-ipv6)|
+| index6   | string\|int\|array |  否  | `["default"]` |   IPv6获取方式    | [详见下方说明](#ipv4-ipv6)|
+|  ttl     |       number       |  否  |   `null`    | DNS TTL时间     | 单位为秒,不设置则采用DNS默认策略|
+|  line    |       string       |  否  |   `null`    | DNS解析线路       | ISP线路选择,支持的值视DNS服务商而定 |
 |  proxy   | string\|array      |  否  |     无      | HTTP代理          | 多代理逐个尝试直到成功,`DIRECT`为直连                                                                      |
 |   ssl    | string\|boolean    |  否  |  `"auto"`   | SSL验证方式    | `true`(强制验证)、`false`(禁用验证)、`"auto"`(自动降级)或自定义CA证书文件路径                          |
 |  cache   |    string\|bool    |  否  |   `true`    | 是否缓存记录       | 正常情况打开避免频繁更新,默认位置为临时目录下`ddns.{hash}.cache`,也可以指定具体路径                              |
 |  log     |       object       |  否  |   `null`    | 日志配置  | 日志配置对象,支持`level`、`file`、`format`、`datefmt`参数                                                |
 
-### log对象参数说明
+### dns
 
-|  键名   |   类型   | 必需 |     默认值            |    说明    |
-| :-----: | :------: | :--: | :-----------------: | :--------: |
-|  level  |  string  |  否  |       `INFO`        | 日志级别   |
-|  file   |  string  |  否  |         无          | 日志文件路径 |
-| format  |  string  |  否  |    自动调整          | 日志格式字符串 |
-| datefmt |  string  |  否  | `%Y-%m-%dT%H:%M:%S` | 日期时间格式 |
+`dns`参数指定使用的DNS服务商标识,支持以下值, 请参考 [服务商列表](providers/README.md):
+
+> 当 debug 模式,且未配置dns参数时,使用 debug provider。
+
+### id-token
+
+`id`和`token`参数用于API认证,具体含义和格式取决于所选的DNS服务商。
+
+### endpoint
+
+`endpoint`参数用于指定自定义API端点,大多数服务商都有默认端点,除非有特殊需求,否则不需要修改。
 
-### index4和index6参数说明
+特殊情况包括:
+
+* 不同区域部署的服务商(如腾讯云、阿里云等)需要指定对应区域的API端点。
+* **私有云部署**:如果您使用的是私有部署的DNS服务,需要指定相应的私有API端点地址。
+* **代理转发**:如果您使用第三方API代理服务,需要指定代理的URL。
+
+### ipv4-ipv6
+
+`ipv4`和`ipv6`参数指定需要更新的DNS记录名称,可以是域名或子域名列表。可以使用数组形式指定多个记录。
+
+支持格式
+
+* 无值时,表示不更新对应类型的DNS记录。
+* **单个域名**:`"ddns.newfuture.cc"`
+* **多个域名**:`["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"]`
+
+### index4-index6
 
 `index4`和`index6`参数用于指定获取IP地址的方式,可以使用以下值:
 
-* **数字**(如`0`、`1`、`2`...):表示使用第N个网卡的IP地址
-* **字符串**:
-  * `"default"`:系统访问外网的默认IP
-  * `"public"`:使用公网IP(通过API查询)
-  * `"url:xxx"`:通过指定URL获取IP,例如`"url:http://ip.sb"`
-  * `"regex:xxx"`:使用正则表达式匹配本地网络配置中的IP,例如`"regex:192\\.168\\..*"`
-    * 注意:JSON中反斜杠需要转义,如`"regex:10\\.00\\..*"`表示匹配`10.00.`开头的IP
-  * `"cmd:xxx"`:执行指定命令并使用其输出作为IP
-  * `"shell:xxx"`:使用系统shell运行命令并使用其输出作为IP
-  * **逗号或分号分隔的字符串**:支持使用逗号`,`或分号`;`分隔多个获取方式,如`"public,regex:192\\.168\\..*"`
-* **布尔值**:`false`表示禁止更新相应IP类型的DNS记录
-* **数组**:按顺序尝试不同的获取方式,使用第一个成功获取的结果
-
-## 自定义回调配置
-
-当`dns`设置为`callback`时,可通过以下方式配置自定义回调:
-
-* `id`字段:填写回调地址,以HTTP或HTTPS开头,支持变量替换
-* `token`字段:POST请求参数(JSON对象或JSON字符串),为空则使用GET方式发起回调
-
-详细配置请参考:[Callback Provider 配置文档](providers/callback.md)
-
-支持的变量替换:
-
-| 常量名称 | 常量内容 | 说明 |
-|---------|---------|------|
-| `__DOMAIN__` | DDNS域名 | 完整域名 |
-| `__IP__` | 获取的IP地址 | IPv4或IPv6地址 |
-| `__RECORDTYPE__` | DDNS记录类型 | A、AAAA、CNAME等 |
-| `__TTL__` | DDNS TTL | 生存时间(秒) |
-| `__LINE__` | 解析线路 | default、unicom等 |
-| `__TIMESTAMP__` | 请求发起时间戳 | 包含小数 |
+支持类型:
 
-## 配置示例
+* `false`表示禁止更新相应IP类型的DNS记录
+* **数字**(如`0`、`1`、`2`...):表示使用第N个网卡的IP地址
+* `"default"`:系统访问外网的默认IP
+* `"public"`:使用公网IP(通过API查询)
+* `"url:http..."`:通过指定URL获取IP,例如`"url:http://ip.sb"`
+* `"regex:xxx"`:使用正则表达式匹配本地网络配置中的IP,例如`"regex:192\\.168\\..*"`
+  * 注意:JSON中反斜杠需要转义,如`"regex:10\\.00\\..*"`表示匹配`10.00.`开头的IP
+* `"cmd:xxx"`:执行指定命令并使用其输出作为IP
+* `"shell:xxx"`:使用系统shell运行命令并使用其输出作为IP
 
-### 基本配置示例
+配置示例:
 
 ```json
 {
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "12345",
-  "token": "mytokenkey",
-  "dns": "dnspod",
-  "ipv4": ["example.com", "www.example.com"],
-  "ipv6": ["example.com", "ipv6.example.com"],
-  "ttl": 600
+    "index4": ["public", "url:http://ipv4.icanhazip.com"], // 优先使用公网IP,失败后使用指定URL获取
+    "index6": ["shell:ip route", "regex:2003:.*"], // 使用shell命令,失败换成正则匹配IPv6地址
+    "index4": [0, "public"], // 使用第一个网卡IP,失败换成公网IP
+    "index6": "public", // 使用公网IPv6地址
+    "index4": false // 禁止更新IPv4记录
 }
 ```
 
-### 高级配置示例
+### ttl
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "12345",
-  "token": "mytokenkey",
-  "dns": "cloudflare",
-  "ipv4": ["example.com", "www.example.com"],
-  "ipv6": ["example.com", "ipv6.example.com"],
-  "index4": ["public", "regex:192\\.168\\.1\\..*"],
-  "index6": "public",
-  "ttl": 300,
-  "proxy": "127.0.0.1:1080;DIRECT",
-  "ssl": "auto",
-  "cache": "/var/cache/ddns.cache",
-  "log": {
-    "level": "DEBUG",
-    "file": "/var/log/ddns.log",
-    "format": "%(asctime)s %(levelname)s [%(filename)s:%(lineno)d]: %(message)s",
-    "datefmt": "%Y-%m-%d %H:%M:%S"
-  }
-}
-```
+`ttl`参数指定DNS记录的生存时间(TTL),单位为秒。默认值为`null`,表示使用DNS服务商的默认TTL策略。
+具体取值范围和默认值取决于所选的DNS服务商。
 
-### 使用多种IP获取方式的配置
+### line
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "12345",
-  "token": "mytokenkey",
-  "dns": "dnspod",
-  "ipv4": ["example.com"],
-  "ipv6": ["example.com"],
-  "index4": ["public", 0, "regex:192\\.168\\..*"],
-  "index6": ["public", "url:http://ipv6.icanhazip.com"],
-  "ttl": 600
-}
-```
+`line`参数用于指定DNS解析线路,支持的值取决于所选的DNS服务商。
 
-### 不同DNS服务商配置示例
+### proxy
 
-#### 阿里云DNS
+`proxy`参数用于设置HTTP代理,可以是单个代理地址或多个代理地址的数组。支持以下格式:
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "LTAI4xxxxxxxxxxxxx",
-  "token": "your_secret_key",
-  "dns": "alidns",
-  "ipv4": ["example.com"],
-  "line": "default"
-}
-```
+代理类型:
+
+* http: `"http://<proxy_host>:<proxy_port>"`
+* https: `"https://<proxy_host>:<proxy_port>"`
+* 不使用代理: `"DIRECT"`
 
-#### 阿里云ESA
+配置示例
 
 ```json
 {
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "LTAI4xxxxxxxxxxxxx",
-  "token": "your_secret_key",
-  "dns": "aliesa",
-  "ipv4": ["example.com"],
-  "endpoint": "https://esa.ap-southeast-1.aliyuncs.com"
+    "proxy": "http://127.0.0.1:1080", // 单个代理地址
+    "proxy": ["http://127.0.0.1:1080","DIRECT"],// 先尝试代理,失败不使用代理
+    "proxy": null // 不使用代理
 }
 ```
 
-#### No-IP
+> 注意:如果配置了`proxy`,代理只对provider请求有效,获取IP的API不会使用proxy参数。
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "your_username",
-  "token": "your_password",
-  "dns": "noip",
-  "ipv4": ["home.example.com"],
-  "endpoint": "https://dynupdate.no-ip.com"
-}
-```
+### ssl
 
-### 自定义API端点配置
+`ssl`参数用于配置SSL验证方式,支持以下值:
 
-当使用自定义或私有部署的DNS API时:
+* `"auto"`:自动降级到不验证SSL证书(不太安全)
+* `true`:强制验证SSL证书
+* `false`:禁用SSL验证 (不安全)
+* `"/path/to/ca.crt"`,用于指定自定义的CA证书文件
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "12345",
-  "token": "mytokenkey",
-  "endpoint": "https://api.private-dns.com",
-  "dns": "cloudflare",
-  "ipv4": ["example.com"],
-  "ttl": 600
-}
-```
+> 注意:如果配置了`ssl`,则所有API请求,包括 provider 和 IP 获取 API 都会使用该配置。
 
-### 自定义回调配置示例
+### cache
 
-#### GET方式回调
+`cache`参数用于配置DNS记录的缓存方式,支持以下值:
 
-```json
-{
-  "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__&ttl=__TTL__",
-  "token": "",
-  "dns": "callback",
-  "ipv4": ["example.com"]
-}
-```
+* `true`:启用缓存,默认位置为临时目录下的`ddns.{hash}.cache`
+* `false`:禁用缓存
+* `"/path/to/cache.file"`:指定自定义缓存文件路径
+
+### log
+
+`log`参数用于配置日志记录,是一个对象,支持以下字段:
+
+|  键名   |   类型   | 必需 |     默认值            |    说明    |
+| :-----: | :------: | :--: | :-----------------: | :--------: |
+|  level  |  string  |  否  |       `INFO`        | 日志级别   |
+|  file   |  string  |  否  |         无          | 日志文件路径 |
+| format  |  string  |  否  |    自动调整          | 日志格式字符串 |
+| datefmt |  string  |  否  | `%Y-%m-%dT%H:%M:%S` | 日期时间格式 |
 
-#### POST方式回调
+## 配置示例
 
 ```json
 {
   "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
-  "id": "https://api.example.com/ddns",
-  "token": "{\"api_key\": \"your_key\", \"domain\": \"__DOMAIN__\", \"ip\": \"__IP__\", \"type\": \"__RECORDTYPE__\"}",
-  "dns": "callback",
-  "ipv4": ["example.com"],
-  "ipv6": ["example.com"]
+  "id": "12345",
+  "token": "mytokenkey",
+  "dns": "cloudflare",
+  "ipv4": ["ddns.newfuture.cc"],
+  "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"],
+  "index4": ["public", "regex:192\\.168\\.1\\..*"],
+  "index6": "public",
+  "ttl": 300,
+  "proxy": ["http://127.0.0.1:1080", "DIRECT"],
+  "ssl": "auto",
+  "cache": "/var/cache/ddns.cache",
+  "log": {
+    "level": "DEBUG",
+    "file": "/var/log/ddns.log",
+    "datefmt": "%Y-%m-%d %H:%M:%S"
+  }
 }
 ```
 

+ 135 - 0
doc/providers/51dns.en.md

@@ -0,0 +1,135 @@
+# 51DNS (DNS.COM) Configuration Guide
+
+## Overview
+
+51DNS (DNSCOM) (formerly dns.com, now 51dns.com) is a domain name resolution service provider that provides authoritative DNS resolution services and supports the creation and updating of dynamic DNS records. This DDNS project uses API Key and Secret Key for API authentication.
+
+> ⚠️ **Notice**: 51DNS (DNSCOM) Provider is currently in **pending verification** status, lacking sufficient real-world testing. Please report issues via [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
+
+Official Website: <https://www.51dns.com/>
+
+## Authentication Information
+
+### API Key + Secret Key Authentication
+
+51DNS uses API Key and Secret Key for API authentication, which is the official recommended authentication method.
+
+#### Obtaining Authentication Information
+
+1. Log into [51DNS/DNS.COM Console](https://www.51dns.com/)
+2. Navigate to "API Management" page
+3. Click "Create API Key"
+4. Record the generated **API Key** and **Secret Key**, please keep them safe
+
+```json
+{
+    "dns": "dnscom",
+    "id": "your_api_key",      // 51DNS API Key
+    "token": "your_secret_key" // 51DNS Secret Key
+}
+```
+
+## Complete Configuration Example
+
+```json
+{
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "dnscom",                    // Current provider
+    "id": "your_api_key",               // 51DNS API Key
+    "token": "your_secret_key",         // 51DNS Secret Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "line": "1",                            // Resolution line
+    "ttl": 600                              // DNS record TTL (seconds)
+}
+```
+
+### Parameter Description
+
+| Parameter | Description      | Type           | Range/Options                       | Default   | Parameter Type |
+| :-------: | :--------------- | :------------- | :--------------------------------- | :-------- | :------------- |
+| dns       | Provider ID      | String         | `dnscom`                           | None      | Provider       |
+| id        | Authentication ID| String         | 51DNS API Key                      | None      | Provider       |
+| token     | Authentication Key| String        | 51DNS Secret Key                   | None      | Provider       |
+| index4    | IPv4 source      | Array          | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config  |
+| index6    | IPv6 source      | Array          | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config  |
+| ipv4      | IPv4 domains     | Array          | Domain list                        | None      | Common Config  |
+| ipv6      | IPv6 domains     | Array          | Domain list                        | None      | Common Config  |
+| line      | Resolution line  | String         | [See below](#line)                 | `1`       | Provider       |
+| ttl       | TTL time         | Integer (seconds) | [See below](#ttl)               | `600`     | Provider       |
+| proxy     | Proxy settings   | Array          | [Reference](../json.en.md#proxy)   | None      | Common Network |
+| ssl       | SSL verification | Boolean/String | `"auto"`, `true`, `false`          | `auto`    | Common Network |
+| cache     | Cache settings   | Boolean/String | `true`, `false`, `filepath`        | `true`    | Common Config  |
+| log       | Log configuration| Object         | [Reference](../json.en.md#log)     | None      | Common Config  |
+
+> **Parameter Type Description**:  
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers  
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers  
+> - **Provider**: Supported by current provider, values related to current provider
+>
+> **Note**: Values supported for `ttl` and `line` may vary depending on your service plan.
+
+### ttl
+
+The `ttl` parameter specifies the Time To Live (TTL) of DNS records in seconds. 51DNS supports TTL ranges from 60 to 86400 seconds (1 day). If not set, the default value is used.
+
+| Plan Type    | Supported TTL Range (seconds) |
+| :---------- | :---------------------------: |
+| Free        |         600 - 86400           |
+| Professional|          60 - 86400           |
+| Enterprise  |          10 - 86400           |
+| Premium     |           1 - 86400           |
+
+> **Note**: For specific TTL ranges, please refer to [51DNS official documentation](https://www.51dns.com/service.html)
+
+### line
+
+The `line` parameter specifies DNS resolution lines. 51DNS supported lines:
+
+| Line ID         | Description      |
+| :-------------- | :--------------- |
+| 1               | Default          |
+| 2               | China Telecom    |
+| 3               | China Unicom     |
+| 4               | China Mobile     |
+
+> For more lines reference: [Official Documentation ViewID](https://www.51dns.com/document/api/index.html)
+
+## Troubleshooting
+
+### Debug Mode
+
+Enable debug logging to view detailed information:
+
+```sh
+ddns -c config.json --debug
+```
+
+### Common Issues
+
+- **Authentication Failed**: Check if API Key and Secret Key are correct, ensure API key status is enabled
+- **Domain Not Found**: Ensure domain is added to 51DNS account, configuration spelling is correct, domain is in active status
+- **Record Creation Failed**: Check if subdomain has conflicting records, TTL settings are reasonable, confirm modification permissions
+- **Request Rate Limit**: 51DNS has API call rate limits (maximum 100 times per minute), reduce request frequency
+
+### API Error Codes
+
+| Error Code | Description      | Solution           |
+| :--------- | :--------------- | :----------------- |
+| 0          | Success          | Operation successful |
+| 1          | Parameter error  | Check request parameters |
+| 2          | Authentication failed | Check API credentials |
+| 3          | Insufficient permissions | Check API permissions |
+| 4          | Record not found | Check domain and record |
+| 5          | Domain not found | Check domain configuration |
+
+## Support & Resources
+
+- [51DNS Official Website](https://www.51dns.com/)
+- [51DNS API Documentation](https://www.51dns.com/document/api/index.html)
+- [51DNS Console](https://www.51dns.com/)
+
+> ⚠️ **Pending Verification**: 51DNS Provider lacks sufficient real-world testing. It is recommended to thoroughly test before using in production environments. Please report any issues via [GitHub Issues](https://github.com/NewFuture/DDNS/issues).

+ 137 - 0
doc/providers/51dns.md

@@ -0,0 +1,137 @@
+# 51DNS(dns.com) 配置指南
+
+## 概述
+
+51DNS (DNSCOM)(原dns.com,现51dns.com)是中国知名的域名解析服务商,提供权威 DNS 解析服务,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 API Key 和 Secret Key 进行 API 认证。
+
+> ⚠️ **注意**:51DNS(DNSCOM) Provider 目前处于**待验证**状态,缺少充分的真实环境测试。请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。
+
+官方网站:<https://www.51dns.com/>
+
+## 认证信息
+
+### API Key + Secret Key 认证
+
+51DNS 使用 API Key 和 Secret Key 进行 API 认证,这是官方推荐的认证方式。
+
+#### 获取认证信息
+
+1. 登录 [51DNS/DNS.COM 控制台](https://www.51dns.com/)
+2. 进入"API管理"页面
+3. 点击"创建API密钥"
+4. 记录生成的 **API Key** 和 **Secret Key**,请妥善保存
+
+```json
+{
+    "dns": "dnscom",
+    "id": "your_api_key",      // 51DNS API Key
+    "token": "your_secret_key" // 51DNS Secret Key
+}
+```
+
+## 完整配置示例
+
+```json
+{
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "dnscom",                    // 当前服务商
+    "id": "your_api_key",               // 51DNS API Key
+    "token": "your_secret_key",         // 51DNS Secret Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "line": "1",                            // 解析线路
+    "ttl": 600                              // DNS记录TTL(秒)
+}
+```
+
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `dnscom`                           | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | 51DNS API Key                      | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | 51DNS Secret Key                   | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `1`       | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | `600`     | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数参数  
+> - **服务商参数**:前服务商支持,值与当前服务商相关
+>
+> **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
+
+### ttl
+
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。51dns 支持的 TTL 范围为 60 到 86400 秒(即 1 天)。如果不设置,则使用默认值。
+
+| 套餐类型     | 支持的 TTL 范围(秒) |
+| :---------- | :-------------------: |
+| 免费版       |     600 - 86400       |
+| 专业版       |      60 - 86400       |
+| 企业版       |      10 - 86400       |
+| 旗舰版       |      1 - 86400       |
+
+> **注意**:具体TTL范围请参考[51dns官方文档](https://www.51dns.com/service.html)
+
+### line
+
+`line` 参数指定 DNS 解析线路,51dns 支持的线路:
+
+| 线路标识         | 说明         |
+| :-------------- | :----------- |
+| 1               | 默认         |
+| 2               | 中国电信     |
+| 3               | 中国联通     |
+| 4               | 中国移动     |
+| 5               | 海外         |
+| 6               | 教育网       |
+
+> 更多线路参考:参考文档 [官方文档 ViewID](https://www.51dns.com/document/api/index.html)
+
+## 故障排除
+
+### 调试模式
+
+启用调试日志查看详细信息:
+
+```sh
+ddns -c config.json --debug
+```
+
+### 常见问题
+
+- **认证失败**:检查 API Key 和 Secret Key 是否正确,确认 API 密钥状态为启用
+- **域名未找到**:确保域名已添加到 51dns 账号,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名是否有冲突记录,TTL 设置合理,确认有修改权限
+- **请求频率限制**:51dns 有 API 调用频率限制(每分钟最多100次),降低请求频率
+
+### API 错误代码
+
+| 错误代码 | 说明         | 解决方案       |
+| :------ | :----------- | :------------- |
+| 0       | 成功         | 操作成功       |
+| 1       | 参数错误     | 检查请求参数   |
+| 2       | 认证失败     | 检查API密钥    |
+| 3       | 权限不足     | 检查API权限    |
+| 4       | 记录不存在   | 检查域名和记录 |
+| 5       | 域名不存在   | 检查域名配置   |
+
+## 支持与资源
+
+- [51dns 官网](https://www.51dns.com/)
+- [51dns API 文档](https://www.51dns.com/document/api/index.html)
+- [51dns 控制台](https://www.51dns.com/)
+
+> ⚠️ **待验证状态**:51dns Provider 缺少充分的真实环境测试,建议在生产环境使用前进行充分测试。如遇问题请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。

+ 24 - 37
doc/providers/README.en.md

@@ -1,11 +1,9 @@
 # DNS Provider Configuration Guide
 
-This directory contains detailed configuration guides for various DNS service providers. DDNS supports multiple mainstream DNS providers, each with specific configuration requirements and API features.
+This directory contains detailed configuration guides for various DNS providers. DDNS supports multiple mainstream DNS providers, each with specific configuration requirements and API characteristics.
 
 ## 🚀 Quick Navigation
 
-### Providers with Detailed Configuration Documentation
-
 | Provider | Service Provider | Chinese Doc | Configuration Doc | Features |
 |----------|------------------|-------------|-------------------|----------|
 | `alidns` | [Alibaba Cloud DNS](https://dns.console.aliyun.com/) | [alidns 中文文档](alidns.md) | [alidns English Doc](alidns.en.md) | Alibaba Cloud ecosystem integration |
@@ -13,7 +11,7 @@ This directory contains detailed configuration guides for various DNS service pr
 | `callback` | Custom API (Webhook) | [callback 中文文档](callback.md) | [callback English Doc](callback.en.md) | Custom HTTP API |
 | `cloudflare` | [Cloudflare](https://www.cloudflare.com/) | [cloudflare 中文文档](cloudflare.md) | [cloudflare English Doc](cloudflare.en.md) | Global CDN and DNS service |
 | `debug` | Debug Provider | [debug 中文文档](debug.md) | [debug English Doc](debug.en.md) | IP address printing for debugging |
-| `dnscom` | [DNS.COM](https://www.dns.com/) | [dnscom 中文文档](dnscom.md) | [dnscom English Doc](dnscom.en.md) | ⚠️ Pending verification |
+| `dnscom` | [DNS.COM](https://www.dns.com/) | [51dns 中文文档](51dns.md) | [dnscom English Doc](51dns.en.md) | ⚠️ Pending verification |
 | `dnspod_com` | [DNSPod Global](https://www.dnspod.com/) | [dnspod_com 中文文档](dnspod_com.md) | [dnspod_com English Doc](dnspod_com.en.md) | ⚠️ Pending verification |
 | `dnspod` | [DNSPod China](https://www.dnspod.cn/) | [dnspod 中文文档](dnspod.md) | [dnspod English Doc](dnspod.en.md) | Largest DNS provider in China |
 | `he` | [HE.net](https://dns.he.net/) | [he 中文文档](he.md) | [he English Doc](he.en.md) | ⚠️ Pending verification, no auto-record creation |
@@ -21,62 +19,49 @@ This directory contains detailed configuration guides for various DNS service pr
 | `noip` | [No-IP](https://www.noip.com/) | [noip 中文文档](noip.md) | [noip English Doc](noip.en.md) | Popular dynamic DNS service |
 | `tencentcloud` | [Tencent Cloud DNSPod](https://cloud.tencent.com/product/dns) | [tencentcloud 中文文档](tencentcloud.md) | [tencentcloud English Doc](tencentcloud.en.md) | Tencent Cloud DNSPod service |
 
-## ⚙️ Special Configuration Notes
-
-### Auto-Record Creation Support
-
-Most providers support automatically creating non-existent DNS records, with exceptions:
+> To add a new provider, [create an issue and fill in the template](https://github.com/NewFuture/DDNS/issues/new?template=new-dns-provider.md)
 
-- ❌ **he**: Does not support auto-record creation, records must be created manually in the control panel
-- ❌ **noip**: Does not support auto-record creation, records must be created manually in the control panel
+### Automatic Record Creation Support
 
-<!-- ## 🔧 Domain Name Format Support
-
-### Standard Format
-
-```text
-subdomain.example.com
-```
+Most providers support automatic creation of non-existent DNS records, with exceptions:
 
-### Custom Separator Format
-
-Supports using `~` or `+` to separate subdomain and main domain:
-
-```text
-subdomain~example.com
-subdomain+example.com
-``` -->
+- ❌ **he**: Does not support automatic record creation, records must be manually created in the control panel
+- ❌ **noip**: Does not support automatic record creation, records must be manually created in the control panel
 
 ## 📝 Configuration Examples
 
 ### Command Line Configuration
 
+[CLI provides command line configuration](../cli.en.md), here are some common command line examples:
+
 ```bash
 # DNSPod China
-ddns --dns dnspod --id 12345 --token your_token --ipv4 example.com
+ddns --dns dnspod --id 12345 --token your_token --ipv4 ddns.newfuture.cc
 
 # Alibaba Cloud DNS
-ddns --dns alidns --id your_access_key --token your_secret --ipv4 example.com
+ddns --dns alidns --id your_access_key --token your_secret --ipv4 ddns.newfuture.cc
 
 # Cloudflare (using email)
-ddns --dns cloudflare --id [email protected] --token your_api_key --ipv4 example.com
+ddns --dns cloudflare --id [email protected] --token your_api_key --ipv4 ddns.newfuture.cc
 
-# Cloudflare (using token)
-ddns --dns cloudflare --token your_api_token --ipv4 example.com
+# Cloudflare (using Token)
+ddns --dns cloudflare --token your_api_token --ipv4 ddns.newfuture.cc
 
 # No-IP
-ddns --dns noip --id your_username --token your_password --ipv4 example.com
+ddns --dns noip --id your_username --token your_password --ipv4 ddns.newfuture.cc
 ```
 
 ### JSON Configuration File
 
+[JSON configuration file](../json.en.md) provides a more flexible configuration method, here are some common JSON configuration examples:
+
 ```json
 {
   "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
   "dns": "dnspod",
   "id": "12345",
   "token": "your_token_here",
-  "ipv4": ["ddns.example.com", "*.example.com"],
+  "ipv4": ["ddns.newfuture.cc", "*.newfuture.cc"],
   "index4": ["default"],
   "ttl": 600
 }
@@ -84,23 +69,25 @@ ddns --dns noip --id your_username --token your_password --ipv4 example.com
 
 ### Environment Variable Configuration
 
+[Environment variable configuration](../env.en.md) provides another configuration method, here are some common environment variable examples:
+
 ```bash
 export DDNS_DNS=dnspod
 export DDNS_ID=12345
 export DDNS_TOKEN=your_token_here
-export DDNS_IPV4=ddns.example.com
+export DDNS_IPV4=ddns.newfuture.cc
 export DDNS_INDEX4=default
 ddns --debug
 ```
 
 ## 📚 Related Documentation
 
-- [Command Line Configuration](../cli.en.md) - Detailed command line parameter descriptions
-- [JSON Configuration](../json.en.md) - JSON configuration file format description
+- [Command Line Configuration](../cli.en.md) - Detailed command line parameter documentation
+- [JSON Configuration](../json.en.md) - JSON configuration file format documentation
 - [Environment Variable Configuration](../env.en.md) - Environment variable configuration method
 - [Provider Development Guide](../dev/provider.en.md) - How to develop new providers
 - [JSON Schema](../../schema/v4.0.json) - Configuration file validation schema
 
 ---
 
-If you have questions or need help, please check the [FAQ](../../README.md#FAQ) or ask in [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
+If you have questions or need help, please check the [FAQ](../../README.en.md#FAQ) or ask in [GitHub Issues](https://github.com/NewFuture/DDNS/issues).

+ 15 - 26
doc/providers/README.md

@@ -11,7 +11,7 @@
 | `callback` | 自定义API (Webhook) | [callback 中文文档](callback.md) | [callback English Doc](callback.en.md) | 自定义HTTP API |
 | `cloudflare` | [Cloudflare](https://www.cloudflare.com/) | [cloudflare 中文文档](cloudflare.md) | [cloudflare English Doc](cloudflare.en.md) | 全球CDN和DNS服务 |
 | `debug` | 调试Provider | [debug 中文文档](debug.md) | [debug English Doc](debug.en.md) | 仅打印IP地址,用于调试 |
-| `dnscom`(51dns) | [51DNS](https://www.51dns.com/) | [dnscom 中文文档](dnscom.md) | [dnscom English Doc](dnscom.en.md) | ⚠️ 等待验证  |
+| `dnscom`(51dns) | [51DNS](https://www.51dns.com/) | [51dns 中文文档](51dns.md) | [51dns English Doc](51dns.en.md) | ⚠️ 等待验证  |
 | `dnspod_com` | [DNSPod Global](https://www.dnspod.com/) | [dnspod_com 中文文档](dnspod_com.md) | [dnspod_com English Doc](dnspod_com.en.md) | ⚠️ 等待验证  |
 | `dnspod` | [DNSPod 中国版](https://www.dnspod.cn/) | [dnspod 中文文档](dnspod.md) | [dnspod English Doc](dnspod.en.md) | 国内最大DNS服务商 |
 | `he` | [HE.net](https://dns.he.net/) | [he 中文文档](he.md) | [he English Doc](he.en.md) | ⚠️ 等待验证,不支持自动创建记录 |
@@ -20,7 +20,7 @@
 | `noip` | [No-IP](https://www.noip.com/) | [noip 中文文档](noip.md) | [noip English Doc](noip.en.md) | 不支持自动创建记录 |
 | `tencentcloud` | [腾讯云 DNSPod](https://cloud.tencent.com/product/dns) | [tencentcloud 中文文档](tencentcloud.md) | [tencentcloud English Doc](tencentcloud.en.md) | 腾讯云DNSPod服务 |
 
-## ⚙️ 特殊配置说明
+> 添加新的Provider, [创建Issue,并按照模板填好链接](https://github.com/NewFuture/DDNS/issues/new?template=new-dns-provider.md)
 
 ### 支持自动创建记录
 
@@ -29,53 +29,40 @@
 - ❌ **he**: 不支持自动创建记录,需要手动在控制面板中预先创建
 - ❌ **noip**: 不支持自动创建记录,需要手动在控制面板中预先创建
 
-<!-- ## 🔧 域名格式支持
-
-### 标准格式
-
-```text
-subdomain.example.com
-```
-
-### 自定义分隔符格式
-
-支持使用 `~` 或 `+` 分隔子域名和主域名:
-
-```text
-subdomain~example.com
-subdomain+example.com
-``` -->
-
 ## 📝 配置示例
 
 ### 命令行配置
 
+[cli 提供了命令行配置方式](../cli.md),以下是一些常用的命令行示例:
+
 ```bash
 # DNSPod中国版
-ddns --dns dnspod --id 12345 --token your_token --ipv4 example.com
+ddns --dns dnspod --id 12345 --token your_token --ipv4 ddns.newfuture.cc
 
 # 阿里云DNS
-ddns --dns alidns --id your_access_key --token your_secret --ipv4 example.com
+ddns --dns alidns --id your_access_key --token your_secret --ipv4 ddns.newfuture.cc
 
 # Cloudflare (使用邮箱)
-ddns --dns cloudflare --id [email protected] --token your_api_key --ipv4 example.com
+ddns --dns cloudflare --id [email protected] --token your_api_key --ipv4 ddns.newfuture.cc
 
 # Cloudflare (使用Token)
-ddns --dns cloudflare --token your_api_token --ipv4 example.com
+ddns --dns cloudflare --token your_api_token --ipv4 ddns.newfuture.cc
 
 # No-IP
-ddns --dns noip --id your_username --token your_password --ipv4 example.com
+ddns --dns noip --id your_username --token your_password --ipv4 ddns.newfuture.cc
 ```
 
 ### JSON配置文件
 
+[JSON配置文件](../json.md)提供了更灵活的配置方式,以下是一些常用的JSON配置示例:
+
 ```json
 {
   "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
   "dns": "dnspod",
   "id": "12345",
   "token": "your_token_here",
-  "ipv4": ["ddns.example.com", "*.example.com"],
+  "ipv4": ["ddns.newfuture.cc", "*.newfuture.cc"],
   "index4": ["default"],
   "ttl": 600
 }
@@ -83,11 +70,13 @@ ddns --dns noip --id your_username --token your_password --ipv4 example.com
 
 ### 环境变量配置
 
+[环境变量配置](../env.md)提供了另一种配置方式,以下是一些常用的环境变量示例:
+
 ```bash
 export DDNS_DNS=dnspod
 export DDNS_ID=12345
 export DDNS_TOKEN=your_token_here
-export DDNS_IPV4=ddns.example.com
+export DDNS_IPV4=ddns.newfuture.cc
 export DDNS_INDEX4=default
 ddns --debug
 ```

+ 99 - 100
doc/providers/alidns.en.md

@@ -1,91 +1,95 @@
-# Alibaba Cloud DNS Configuration Guide
+# Alibaba Cloud DNS (AliDNS) Configuration Guide
 
 ## Overview
 
-Alibaba Cloud DNS (AliDNS) is an authoritative DNS resolution service provided by Alibaba Cloud, supporting high concurrency and high availability domain name resolution. This DDNS project supports authentication through Alibaba Cloud AccessKey.
+Alibaba Cloud DNS (AliDNS) is an authoritative DNS resolution service provided by Alibaba Cloud, supporting dynamic creation and updating of DNS records. This DDNS project uses AccessKey ID and AccessKey Secret for API authentication.
 
-## Authentication Method
+Official Links:
 
-### AccessKey Authentication
-
-Alibaba Cloud DNS uses AccessKey ID and AccessKey Secret for API authentication, which is the standard authentication method for Alibaba Cloud.
-
-#### How to Obtain AccessKey
+- Official Website: <https://www.alibabacloud.com/product/dns>
+- Service Console: <https://dns.console.aliyun.com/>
 
-1. **Login to Alibaba Cloud Console**
-    - Visit [Alibaba Cloud Console](https://ecs.console.aliyun.com/)
-    - Sign in with your Alibaba Cloud account
+## Authentication Information
 
-2. **Go to AccessKey Management**
-    - Visit [AccessKey Management](https://usercenter.console.aliyun.com/#/manage/ak)
-    - Click "Create AccessKey" button
+### AccessKey Authentication
 
-3. **Create New AccessKey**
-    - Click the "Create AccessKey" button
-    - Copy the generated **AccessKey ID** and **AccessKey Secret**
-    - **Important**: Save both values securely
+Use Alibaba Cloud AccessKey ID and AccessKey Secret for authentication.
 
-4. **Verify Permissions**
-    - Ensure your account has Alibaba Cloud DNS operation permissions
-    - Check [RAM Access Control](https://ram.console.aliyun.com/policies) if needed
+#### Obtaining Authentication Information
 
-#### Configuration Using AccessKey
+1. Login to [Alibaba Cloud Console](https://console.aliyun.com/)
+2. Navigate to "Resource Access Management (RAM)" > "Users"  
+3. Create or view AccessKey in user details page
+4. Copy the generated **AccessKey ID** and **AccessKey Secret**, please keep them safe
+5. Ensure the account has `AliyunDNSFullAccess` permission
 
 ```json
 {
-  "dns": "alidns",
-  "id": "LTAI4xxxxxxxxxxxxxxx",
-  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+    "dns": "alidns",
+    "id": "your_access_key_id",      // AccessKey ID
+    "token": "your_access_key_secret" // AccessKey Secret
 }
 ```
 
-**Parameters:**
-
-- `id`: Your Alibaba Cloud AccessKey ID
-- `token`: Your Alibaba Cloud AccessKey Secret
-- `dns`: Must be set to `"alidns"`
-
 ## Permission Requirements
 
 Ensure the Alibaba Cloud account has the following permissions:
 
-- **AliyunDNSFullAccess**: Full access to Alibaba Cloud DNS (recommended)
+- **AliyunDNSFullAccess**: Full access to Cloud DNS (Recommended)
 - **AliyunDNSReadOnlyAccess + Custom Write Permissions**: Fine-grained permission control
 
-You can view and configure permissions in the [RAM Access Control](https://ram.console.aliyun.com/policies).
+You can view and configure permissions in the [RAM Console](https://ram.console.aliyun.com/).
 
-## Complete Configuration Examples
+## Complete Configuration Example
 
 ```json
 {
-  "id": "LTAI4xxxxxxxxxxxxxxx",
-  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "dns": "alidns",
-  "endpoint": "https://alidns.aliyuncs.com",
-  "index4": ["public"],
-  "index6": ["default"],
-  "ipv4": ["example.com"],
-  "ipv6": ["dynamic.mydomain.com"],
-  "line": "telecom",
-  "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "alidns",                    // Current provider
+    "id": "your_access_key_id",              // AccessKey ID
+    "token": "your_access_key_secret",              // AccessKey Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "endpoint": "https://alidns.aliyuncs.com",   // API endpoint
+    "line": "default",                       // Resolution line
+    "ttl": 600                                 // DNS record TTL (seconds)
 }
 ```
 
-## Optional Configuration Parameters
-
-| Parameter | Description           | Type              | Range/Options                                 | Default |
-|-----------|-----------------------|-------------------|-----------------------------------------------|---------|
-| ttl       | Time To Live (TTL)    | Integer (seconds) | 1 - 86400                                     | 600     |
-| line      | Resolution Line       | String            | default, telecom, unicom, mobile, oversea    | default |
-| endpoint  | Custom API Endpoint   | String            | URL (see below)                              | `https://alidns.aliyuncs.com`|
-
-> **Note**: Supported values for `ttl` and `line` may vary by service plan.
-
-### Custom API Endpoint
-
-Alibaba Cloud DNS supports multiple regional endpoints for optimal network performance:
-
-#### China Regions
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `alidns` | None | Provider Parameter |
+| id | Authentication ID | String | Alibaba Cloud AccessKey ID | None | Provider Parameter |
+| token | Authentication key | String | Alibaba Cloud AccessKey Secret | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| endpoint | API endpoint | URL | [See below](#endpoint) | `https://alidns.aliyuncs.com` | Provider Parameter |
+| line | Resolution line | String | [See below](#ttl) | `default` | Provider Parameter |
+| ttl | TTL time | Integer (seconds) | [See below](#line)| None | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `auto`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers  
+> - **Provider Parameter**: Supported by current provider, values related to current provider
+>
+> **Note**: Different packages may support different values for `ttl` and `line`.
+
+### endpoint
+
+Alibaba Cloud DNS supports multiple regional endpoints, you can choose the optimal node based on region and network environment:
+
+#### China Mainland Nodes
 
 - **Default (Recommended)**: `https://alidns.aliyuncs.com`
 - **East China 1 (Hangzhou)**: `https://alidns.cn-hangzhou.aliyuncs.com`
@@ -96,7 +100,7 @@ Alibaba Cloud DNS supports multiple regional endpoints for optimal network perfo
 - **South China 1 (Shenzhen)**: `https://alidns.cn-shenzhen.aliyuncs.com`
 - **Southwest 1 (Chengdu)**: `https://alidns.cn-chengdu.aliyuncs.com`
 
-#### International Regions
+#### Interna Nodes
 
 - **Asia Pacific Southeast 1 (Singapore)**: `https://alidns.ap-southeast-1.aliyuncs.com`
 - **Asia Pacific Southeast 2 (Sydney)**: `https://alidns.ap-southeast-2.aliyuncs.com`
@@ -108,65 +112,60 @@ Alibaba Cloud DNS supports multiple regional endpoints for optimal network perfo
 - **Europe Central 1 (Frankfurt)**: `https://alidns.eu-central-1.aliyuncs.com`
 - **Europe West 1 (London)**: `https://alidns.eu-west-1.aliyuncs.com`
 
-> **Note**: It's recommended to use the default endpoint `https://alidns.aliyuncs.com`, as Alibaba Cloud automatically routes to the optimal node. Specify regional endpoints only in special network environments.
+> **Note**: It is recommended to use the default endpoint `https://alidns.aliyuncs.com`, Alibaba Cloud will automatically route to the optimal node. Only specify specific regional endpoints in special network environments.
 
-## Troubleshooting
-
-### Common Issues
+### ttl
 
-#### "Signature Error" or "Authentication Failed"
+The `ttl` parameter specifies the Time To Live (TTL) for DNS records in seconds. Alibaba Cloud supports TTL ranges from 1 to 86400 seconds (1 day). If not set, the default value is used.
 
-- Check if AccessKey ID and AccessKey Secret are correct
-- Verify the keys haven't been deleted or disabled
-- Confirm account has sufficient permissions
+| Package Type | Supported TTL Range (seconds) |
+| ------------ | :---------------------------: |
+| Free | 600 - 86400 |
+| Personal | 600 - 86400 |
+| Enterprise Standard | 60 - 86400 |
+| Enterprise Flagship | 1 - 86400 |
 
-#### "Domain Does Not Exist"
+> Reference: [Alibaba Cloud DNS Documentation](https://www.alibabacloud.com/help/en/dns/pubz-how-to-modify-ttl-time)
 
-- Verify the domain is added to Alibaba Cloud DNS
-- Check domain spelling in configuration
-- Ensure domain status is normal
+### line
 
-#### "Record Operation Failed"
+The `line` parameter specifies DNS resolution lines, supported by Alibaba Cloud:
 
-- Check if subdomain has conflicting records
-- Verify TTL value is within acceptable range
-- Confirm resolution line setting is correct
-- Check if domain plan supports the feature
+| Line Identifier | Description |
+| :-------------- | :---------- |
+| default | Default |
+| telecom | China Telecom |
+| unicom | China Unicom |
+| mobile | China Mobile |
+| edu | China Education Network |
+| aliyun | Alibaba Cloud |
+| oversea | Overseas |
+| internal | China Region |
 
-#### "API Call Limit Exceeded"
+> More lines reference: [Alibaba Cloud DNS Documentation](https://www.alibabacloud.com/help/en/dns/pubz-resolve-line-enumeration)
 
-- Alibaba Cloud API has QPS limitations
-- Personal Edition: 20 QPS, Enterprise Edition: 50 QPS
-- Increase update intervals appropriately
+## Troubleshooting
 
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### Common Error Codes
+### Common Issues
 
 - **InvalidAccessKeyId.NotFound**: AccessKey does not exist
-- **SignatureDoesNotMatch**: Signature error
-- **DomainRecordDuplicate**: Duplicate record
-- **DomainNotExists**: Domain does not exist
-- **Throttling.User**: User requests too frequent
-
-## API Limitations
-
-- **Personal Edition QPS**: 20 requests/second
-- **Enterprise Edition QPS**: 50 requests/second
-- **Domain Count**: Varies by service plan
-- **DNS Records**: Varies by service plan
+- **SignatureDoesNotMatch**: Signature error, check AccessKey Secret
+- **DomainNotExists**: Domain not added to Alibaba Cloud DNS
+- **Throttling.User**: Too frequent requests, reduce QPS (Personal: 20 QPS, Enterprise: 50 QPS)
 
 ## Support and Resources
 
-- **Alibaba Cloud DNS Documentation**: <https://help.aliyun.com/product/29697.html>
-- **Alibaba Cloud DNS API Reference**: <https://help.aliyun.com/document_detail/29739.html>
-- **Alibaba Cloud DNS Console**: <https://dns.console.aliyun.com/>
-- **Alibaba Cloud Technical Support**: <https://selfservice.console.aliyun.com/ticket>
+- [Alibaba Cloud DNS Product Documentation](https://www.alibabacloud.com/help/en/dns)
+- [Alibaba Cloud DNS Console](https://dns.console.aliyun.com/)
+- [Alibaba Cloud Technical Support](https://www.alibabacloud.com/support)
+- [GitHub Issues](https://github.com/NewFuture/DDNS/issues)
 
-> It is recommended to use RAM sub-accounts and grant only the necessary DNS permissions to improve security. Regularly rotate AccessKeys to ensure account security.
+> **Recommendation**: Use RAM sub-accounts and regularly rotate AccessKeys to improve account security.

+ 81 - 68
doc/providers/alidns.md

@@ -1,40 +1,41 @@
-# 阿里云DNS 配置指南
+# 阿里云 DNS (AliDNS)  配置指南
 
 ## 概述
 
-阿里云DNS(AliDNS)是阿里云提供的权威DNS解析服务,支持高并发、高可用性的域名解析。本 DDNS 项目支持通过阿里云AccessKey进行认证。
+阿里云 DNS(AliDNS)是阿里云提供的权威 DNS 解析服务,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 AccessKey ID 和 AccessKey Secret 进行 API 认证。
 
-## 认证方式
+官网链接:
+
+- 官方网站:<https://www.aliyun.com/product/dns>
+- 服务商控制台:<https://dns.console.aliyun.com/>
+
+## 认证信息
 
 ### AccessKey 认证
 
-阿里云DNS使用AccessKey ID和AccessKey Secret进行API认证,这是阿里云标准的认证方式。
+使用阿里云 AccessKey ID 和 AccessKey Secret 进行认证
 
-#### 获取AccessKey
+#### 获取认证信息
 
 1. 登录 [阿里云控制台](https://ecs.console.aliyun.com/)
 2. 访问 [AccessKey管理](https://usercenter.console.aliyun.com/#/manage/ak)
 3. 点击"创建AccessKey"按钮
 4. 复制生成的 **AccessKey ID** 和 **AccessKey Secret**,请妥善保存
-5. 确保账号具有云解析DNS的操作权限
+5. 确保账号具有云解析(`AliyunDNSFullAccess`)的操作权限
 
 ```json
 {
     "dns": "alidns",
-    "id": "AccessKey_ID",
-    "token": "AccessKey_Secret"
+    "id": "AccessKey_ID",     // 阿里云 AccessKey ID
+    "token": "AccessKey_Secret" // 阿里云 AccessKey Secret
 }
 ```
 
-- `id`:阿里云 AccessKey ID
-- `token`:阿里云 AccessKey Secret
-- `dns`:固定为 `"alidns"`
-
 ## 权限要求
 
 确保使用的阿里云账号具有以下权限:
 
-- **AliyunDNSFullAccess**:云解析DNS完全访问权限(推荐)
+- **AliyunDNSFullAccess**:云解析 DNS 完全访问权限(推荐)
 - **AliyunDNSReadOnlyAccess + 自定义写权限**:精细化权限控制
 
 可以在 [RAM访问控制](https://ram.console.aliyun.com/policies) 中查看和配置权限。
@@ -43,32 +44,49 @@
 
 ```json
 {
-    "id": "LTAI4xxxxxxxxxxxxxxx",
-    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "dns": "alidns",
-    "endpoint": "https://alidns.ap-southeast-1.aliyuncs.com",
-    "index4": ["public"],
-    "index6": ["default"],
-    "ipv4": ["example.com"],
-    "ipv6": ["dynamic.mydomain.com"],
-    "line": "telecom",
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "alidns",                    // 当前服务商
+    "id": "your_access_key_id",              // AccessKey ID
+    "token": "your_access_key_secret",              // AccessKey Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "endpoint": "https://alidns.aliyuncs.com",   // API端点
+    "line": "default",                       // 解析线路
+    "ttl": 600                                 // DNS记录TTL(秒)
 }
 ```
 
-## 可选参数
-
-| 参数 | 描述 | 类型 | 范围/选项 | 默认 |
-|------|------|------|-----------|------|
-| ttl  | 生存时间(TTL) | 整数 (秒) | 1 - 86400 | 600 |
-| line | 解析线路       | 字符串 | default, telecom, unicom, mobile, oversea | default |
-| endpoint | 自定义API端点 | 字符串 | URL(见下表) | `https://alidns.aliyuncs.com` |
-
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `alidns`                           | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | 阿里云 AccessKey ID                 | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | 阿里云 AccessKey Secret             | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| endpoint| API 端点      | URL            | [参考下方](#endpoint)              | `https://alidns.aliyuncs.com` | 服务商参数 |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `default`        | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | 无        | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数参数  
+> - **服务商参数**:前服务商支持,值与当前服务商相关
 > **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
 
-### 自定义API端点
+### endpoint
 
-阿里云DNS支持多个区域端点,可根据网络环境选择最优节点:
+阿里云 DNS 支持多个区域端点,可根据区域和网络环境选择最优节点:
 
 #### 国内节点
 
@@ -95,57 +113,52 @@
 
 > **注意**:建议使用默认端点 `https://alidns.aliyuncs.com`,阿里云会自动路由到最优节点。只有在特殊网络环境下才需要指定特定区域端点。
 
-## 故障排除
+### ttl
 
-### 常见问题
-
-#### "签名错误"或"认证失败"
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。阿里云支持的 TTL 范围为 1 到 86400 秒(即 1 天)。如果不设置,则使用默认值。
 
-- 检查AccessKey ID和AccessKey Secret是否正确
-- 确认密钥没有被删除或禁用
-- 验证账号权限是否足够
+| 套餐类型     | 支持的 TTL 范围(秒) |
+| ------------ | :-------------------: |
+| 免费版       |    600 - 86400        |
+| 个人版       |    600 - 86400        |
+| 企业标准版   |     60 - 86400        |
+| 企业旗舰版   |      1 - 86400        |
 
-#### "域名不存在"
+> 参考:[阿里云 DNS TTL 说明](https://help.aliyun.com/zh/dns/ttl-definition)
 
-- 确认域名已添加到阿里云DNS解析
-- 检查域名拼写是否正确
-- 验证域名状态是否正常
+### line
 
-#### "记录操作失败"
+`line` 参数指定 DNS 解析线路,阿里云支持的线路:
 
-- 检查子域名是否存在冲突记录
-- 确认TTL值在合理范围内
-- 验证解析线路设置是否正确
-- 检查域名套餐是否支持该功能
+| 线路标识         | 说明         |
+| :-------------- | :----------- |
+| default         | 默认         |
+| telecom         | 中国电信     |
+| unicom          | 中国联通     |
+| mobile          | 中国移动     |
+| edu             | 中国教育网   |
+| aliyun          | 阿里云       |
+| oversea         | 境外         |
+| internal        | 中国地区     |
 
-#### "API调用超出限制"
+> 更多线路参考:[阿里云 DNS 解析线路枚举](https://help.aliyun.com/zh/dns/resolve-line-enumeration/)
 
-- 阿里云API有QPS限制
-- 个人版:20 QPS,企业版:50 QPS
-- 适当增加更新间隔
+## 故障排除
 
 ### 调试模式
 
 启用调试日志查看详细信息:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### 常见错误代码
-
-- **InvalidAccessKeyId.NotFound**:AccessKey不存在
-- **SignatureDoesNotMatch**:签名错误
-- **DomainRecordDuplicate**:记录重复
-- **DomainNotExists**:域名不存在
-- **Throttling.User**:用户请求过于频繁
-
-## API限制
+### 常见问题
 
-- **个人版QPS**:20次/秒
-- **企业版QPS**:50次/秒
-- **域名数量**:根据套餐不同
-- **解析记录**:根据套餐不同
+- **InvalidAccessKeyId.NotFound**:AccessKey 不存在
+- **SignatureDoesNotMatch**:签名错误,检查 AccessKey Secret
+- **DomainNotExists**:域名未添加到阿里云 DNS
+- **Throttling.User**:请求过于频繁,降低 QPS,(个人版:20 QPS,企业版:50 QPS)
 
 ## 支持与资源
 
@@ -154,4 +167,4 @@ ddns --debug
 - [阿里云DNS控制台](https://dns.console.aliyun.com/)
 - [阿里云技术支持](https://selfservice.console.aliyun.com/ticket)
 
-> 建议使用RAM子账号并仅授予必要的DNS权限,以提高安全性。定期轮换AccessKey以确保账号安全
+> **建议**:使用 RAM 子账号并定期轮换 AccessKey,提升账号安全性

+ 79 - 48
doc/providers/aliesa.en.md

@@ -2,101 +2,132 @@
 
 ## Overview
 
-Alibaba Cloud Edge Security Acceleration (ESA) is an edge security acceleration service provided by Alibaba Cloud, supporting CDN acceleration and edge security protection. This DDNS project supports ESA DNS record management through Alibaba Cloud AccessKey.
+Alibaba Cloud Edge Security Acceleration (ESA) is an edge security acceleration service provided by Alibaba Cloud, supporting dynamic management of DNS records. This DDNS project uses AccessKey ID and AccessKey Secret to update ESA DNS records.
 
-## Authentication
+Official Links:
 
-### AccessKey Authentication
+- Official Website: <https://www.alibabacloud.com/product/esa>
+- Service Console: <https://esa.console.aliyun.com/>
 
-ESA API uses the same AccessKey authentication as other [Alibaba Cloud services](alidns.en.md), requiring AccessKey ID and AccessKey Secret.
+## Authentication Information
+
+### AccessKey Authentication (Recommended)
+
+Use Alibaba Cloud AccessKey ID and AccessKey Secret for authentication.
+
+#### Obtaining Authentication Information
+
+1. Login to [Alibaba Cloud Console](https://console.aliyun.com/)
+2. Navigate to "Resource Access Management (RAM)" > "Users"
+3. Create or view AccessKey in user details page
+4. Copy the generated **AccessKey ID** and **AccessKey Secret**, please keep them safe
+5. Ensure the account has Edge Security Acceleration (`AliyunESAFullAccess`) permissions
 
 ```json
 {
-    "id": "your_access_key_id",
-    "token": "your_access_key_secret",
-    "dns": "aliesa"
+    "dns": "aliesa",
+    "id": "your_access_key_id",      // AccessKey ID
+    "token": "your_access_key_secret" // AccessKey Secret
 }
 ```
 
 ## Permission Requirements
 
-Ensure the Alibaba Cloud account has the following ESA permissions:
-
-Recommended `AliyunESAFullAccess` includes all the permissions below:
+Ensure the Alibaba Cloud account has the following permissions:
 
-- **ESA Site Query Permission**: Used to query site IDs (`esa:ListSites`)
-- **ESA DNS Record Management Permission**: Used to query, create, and update DNS records (`esa:ListRecords`, `esa:CreateRecord`, `esa:UpdateRecord`)
+- **AliyunESAFullAccess**: Full access to Edge Security Acceleration (Recommended)
+- **ESA Site Query Permission + ESA DNS Record Management Permission**: Fine-grained permission control
 
-It's recommended to create a dedicated RAM sub-account with only the necessary ESA permissions.
+You can view and configure permissions in the [RAM Console](https://ram.console.aliyun.com/).
 
 ## Complete Configuration Example
 
 ```json
 {
-    "id": "LTAI4xxx",
-    "token": "xxx",
-    "dns": "aliesa",
-    "ipv4": ["www.example.com", "api.example.com"],
-    "ipv6": ["www6.example.com"],
-    "index4": ["public"],
-    "index6": ["public"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "aliesa",                    // Current provider
+    "id": "your_access_key_id",              // AccessKey ID
+    "token": "your_access_key_secret",              // AccessKey Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "endpoint": "https://esa.cn-hangzhou.aliyuncs.com",   // API endpoint
+    "ttl": 600                                 // DNS record TTL (seconds)
 }
 ```
 
-## Optional Parameters
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `aliesa` | None | Provider Parameter |
+| id | Authentication ID | String | Alibaba Cloud AccessKey ID | None | Provider Parameter |
+| token | Authentication key | String | Alibaba Cloud AccessKey Secret | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| endpoint | API endpoint | URL | [See below](#endpoint) | `https://esa.cn-hangzhou.aliyuncs.com` | Provider Parameter |
+| ttl | TTL time | Integer (seconds) | 1-86400 | None | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `auto`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
 
-| Parameter   | Description                   | Type          | Default                            | Example                                 |
-|-------------|-------------------------------|---------------|------------------------------------|-----------------------------------------|
-| `ttl`       | DNS record TTL value          | Integer       | 1 (auto)                           | 600                                     |
-| `endpoint`  | Custom API endpoint URL       | String        | `https://esa.cn-hangzhou.aliyuncs.com` | `https://esa.ap-southeast-1.aliyuncs.com` |
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers  
+> - **Provider Parameter**: Supported by current provider, values related to current provider
 
-### Custom Regional Endpoint
+### endpoint
 
-When you need to access ESA services in specific regions, you can configure a custom endpoint address:
+Alibaba Cloud ESA supports multiple regional endpoints, you can choose the optimal node based on region and network environment:
 
-#### China Regions
+#### China Mainland Nodes
 
-- **East China 1 (Hangzhou)**: `https://esa.cn-hangzhou.aliyuncs.com` (Default, Recommended)
+- **East China (Hangzhou)**: `https://esa.cn-hangzhou.aliyuncs.com` (Default)
 
-#### International Regions
+#### International Nodes
 
 - **Asia Pacific Southeast 1 (Singapore)**: `https://esa.ap-southeast-1.aliyuncs.com`
 
 ## Troubleshooting
 
+### Debug Mode
+
+Enable debug logging to view detailed information:
+
+```sh
+ddns -c config.json --debug
+```
+
 ### Common Issues
 
 #### "Site not found for domain"
 
-- Check if the domain has been added to ESA service
-- Confirm domain format is correct (no protocol prefix)
+- Check if the domain has been added to the ESA service
+- Confirm the domain format is correct (without protocol prefix)
 - Verify AccessKey permissions
 
 #### "Failed to create/update record"
 
-- Check if DNS record type is supported
-- Confirm record value format is correct
-- Verify TTL value is within allowed range
+- Check if the DNS record type is supported
+- Confirm the record value format is correct
+- Verify the TTL value is within the allowed range
 
 #### "API call failed"
 
 - Check if AccessKey ID and Secret are correct
-- Confirm network connection is normal
+- Confirm network connectivity is normal
 - View detailed error logs
 
-### Debug Mode
-
-Enable debug mode to view detailed API interaction information:
-
-```sh
-ddns -c config.json --debug
-```
-
 ## Support and Resources
 
-- [Alibaba Cloud ESA Product Documentation](https://help.aliyun.com/product/122312.html)
-- [Alibaba Cloud ESA API Documentation](https://help.aliyun.com/zh/edge-security-acceleration/esa/api-esa-2024-09-10-overview)
+- [Alibaba Cloud ESA Product Documentation](https://www.alibabacloud.com/help/en/esa)
 - [Alibaba Cloud ESA Console](https://esa.console.aliyun.com/)
-- [Alibaba Cloud Technical Support](https://selfservice.console.aliyun.com/ticket)
+- [Alibaba Cloud Technical Support](https://www.alibabacloud.com/support)
+- [GitHub Issues](https://github.com/NewFuture/DDNS/issues)
 
-> It's recommended to use RAM sub-accounts with only necessary ESA permissions to improve security. Regularly rotate AccessKeys to ensure account security.
+> **Recommendation**: Use RAM sub-accounts and regularly rotate AccessKeys to improve account security.

+ 74 - 41
doc/providers/aliesa.md

@@ -2,63 +2,96 @@
 
 ## 概述
 
-阿里云边缘安全加速(ESA)是阿里云提供的边缘安全加速服务,支持CDN加速和边缘安全防护。本 DDNS 项目支持通过阿里云AccessKey进行ESA DNS记录的管理
+阿里云边缘安全加速(ESA)是阿里云提供的边缘安全加速服务,支持 DNS 记录的动态管理。本 DDNS 项目通过 AccessKey ID 和 AccessKey Secret 更新 ESA DNS 记录
 
-## 认证方式
+官网链接:
+
+- 官方网站:<https://www.aliyun.com/product/esa>
+- 服务商控制台:<https://esa.console.aliyun.com/>
+
+## 认证信息
 
 ### AccessKey 认证
 
-ESA API使用与[阿里云](alidns.md)其他服务相同的AccessKey认证方式,需要提供AccessKey ID和AccessKey Secret。
+使用阿里云 AccessKey ID 和 AccessKey Secret 进行认证。
+
+#### 获取认证信息
+
+1. 登录 [阿里云控制台](https://ecs.console.aliyun.com/)
+2. 访问 [AccessKey管理](https://usercenter.console.aliyun.com/#/manage/ak)
+3. 点击"创建AccessKey"按钮
+4. 复制生成的 **AccessKey ID** 和 **AccessKey Secret**,请妥善保存
+5. 确保账号具有边缘安全加速 (`AliyunESAFullAccess`) 的操作权限
 
 ```json
 {
-    "id": "your_access_key_id",
-    "token": "your_access_key_secret",
-    "dns": "aliesa"
+    "dns": "aliesa",
+    "id": "your_access_key_id",      // AccessKey ID
+    "token": "your_access_key_secret" // AccessKey Secret
 }
 ```
 
 ## 权限要求
 
-确保使用的阿里云账号具有以下ESA权限:
-
-推荐 `AliyunESAFullAccess` 包含下列所有权限
+确保使用的阿里云账号具有以下权限:
 
-- **ESA站点查询权限**:用于查询站点ID (`esa:ListSites`)
-- **ESA DNS记录管理权限**:用于查询、创建和更新DNS记录 (`esa:ListRecords`, `esa:CreateRecord`, `esa:UpdateRecord`)
+- **AliyunESAFullAccess**:边缘安全加速完全访问权限(推荐)
+- **ESA站点查询权限 + ESA DNS记录管理权限**:精细化权限控制
+  - `esa:ListSites`:查询站点列表
+  - `esa:ListRecords`:查询 DNS 记录
+  - `esa:CreateRecord`:创建 DNS 记录
+  - `esa:UpdateRecord`:更新 DNS 记录
 
-推荐创建专门的RAM子账号并仅授予必要的ESA权限。
+可以在 [RAM控制台](https://ram.console.aliyun.com/policies) 中查看和配置权限。
 
 ## 完整配置示例
 
 ```json
 {
-    "id": "LTAI4xxx",
-    "token": "xxx",
-    "dns": "aliesa",
-    "endpoint": "https://esa.ap-southeast-1.aliyuncs.com",
-    "index4": ["public"],
-    "index6": ["default"],
-    "ipv4": ["www.example.com", "api.example.com"],
-    "ipv6": ["dynamic.mydomain.com"],
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "aliesa",                    // 当前服务商
+    "id": "your_access_key_id",              // AccessKey ID
+    "token": "your_access_key_secret",              // AccessKey Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "endpoint": "https://esa.cn-hangzhou.aliyuncs.com",   // API端点
+    "ttl": 600                                 // DNS记录TTL(秒)
 }
 ```
 
-## 可选参数
-
-| 参数 | 说明 | 类型 | 默认值 | 示例 |
-|------|------|------|--------|------|
-| `ttl` | DNS记录的TTL值 | 整数 | 1(自动) | 600 |
-| `endpoint` | 自定义API端点地址 | 字符串 | `https://esa.cn-hangzhou.aliyuncs.com` | `https://esa.ap-southeast-1.aliyuncs.com` |
-
-### 自定义区域端点
-
-当需要访问特定区域的ESA服务时,可以配置自定义端点地址 `endpoint`:
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `aliesa`                           | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | 阿里云 AccessKey ID                 | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | 阿里云 AccessKey Secret             | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考](../json.md#ipv4-ipv6)       | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考](../json.md#ipv4-ipv6)       | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| endpoint| API 端点      | URL            | [参考下方](#endpoint)                           | `https://esa.cn-hangzhou.aliyuncs.com`         | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | 30~86400                           | 1(自动)        | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考](../json.md#proxy)           | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `auto`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数参数  
+> - **服务商参数**:前服务商支持,值与当前服务商相关
+
+### endpoint
+
+阿里云 ESA 支持多个区域端点,可根据区域和网络环境选择最优节点:
 
 #### 国内节点
 
-- **华东1(杭州)**:`https://esa.cn-hangzhou.aliyuncs.com`(默认)
+- **华东(杭州)**:`https://esa.cn-hangzhou.aliyuncs.com`(默认)
 
 #### 国际节点
 
@@ -66,6 +99,14 @@ ESA API使用与[阿里云](alidns.md)其他服务相同的AccessKey认证方式
 
 ## 故障排除
 
+### 调试模式
+
+启用调试日志查看详细信息:
+
+```sh
+ddns -c config.json --debug
+```
+
 ### 常见问题
 
 #### "Site not found for domain"
@@ -86,14 +127,6 @@ ESA API使用与[阿里云](alidns.md)其他服务相同的AccessKey认证方式
 - 确认网络连接正常
 - 查看详细错误日志
 
-### 调试模式
-
-启用调试模式查看详细的API交互信息:
-
-```sh
-ddns -c config.json --debug
-```
-
 ## 支持与资源
 
 - [阿里云ESA产品文档](https://help.aliyun.com/product/122312.html)
@@ -101,4 +134,4 @@ ddns -c config.json --debug
 - [阿里云ESA控制台](https://esa.console.aliyun.com/)
 - [阿里云技术支持](https://selfservice.console.aliyun.com/ticket)
 
-> 建议使用RAM子账号并仅授予必要的ESA权限,以提高安全性。定期轮换AccessKey以确保账号安全
+> **建议**:使用 RAM 子账号并定期轮换 AccessKey,提升账号安全性

+ 69 - 109
doc/providers/callback.en.md

@@ -1,83 +1,99 @@
 # Callback Provider Configuration Guide
 
-The Callback Provider is a universal custom callback interface that allows you to forward DDNS update requests to any custom HTTP API endpoint. This provider is highly flexible, supporting both GET and POST requests with variable substitution functionality.
+Callback Provider is a universal custom callback interface that allows you to forward DDNS update requests to any custom HTTP API endpoint or webhook. This provider is highly flexible, supporting GET and POST requests with variable substitution functionality.
 
 ## Basic Configuration
 
-### Configuration Parameters
+| Parameter | Description | Required | Example |
+|-----------|-------------|----------|---------|
+| `id` | Callback URL address with variable substitution support | ✅ | `https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__` |
+| `token` | POST request parameters (JSON object or JSON string), empty for GET requests | Optional | `{"api_key": "your_key"}` or `"{\"api_key\": \"your_key\"}"` |
+| `endpoint` | Optional API endpoint address, will not participate in variable substitution | Optional | `https://api.example.com/ddns` |
+| `dns` | Fixed value `"callback"`, indicates using callback method | ✅ | `"callback"` |
 
-| Parameter  | Description                                                   | Required | Example                                                      |
-|------------|---------------------------------------------------------------|----------|--------------------------------------------------------------|
-| `id`       | Callback URL with variable substitution support               | ✅        | `https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__`    |
-| `token`    | POST request parameters (JSON object or JSON string). Empty for GET | Optional | `{"api_key": "your_key"}` or `"{\"api_key\": \"your_key\"}"` |
-| `endpoint` | Optional API endpoint base URL. If omitted, default is blank   | Optional | `https://api.example.com/ddns`                                |
-| `dns`      | Must be set to `"callback"` to use callback method           | ✅        | `"callback"`                                                |
-
-### Minimal Configuration Example
+## Complete Configuration Example
 
 ```json
 {
-  "id": "https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__",
-  "token": "",
-  "dns": "callback",
-  "ipv4": ["sub.example.com"],
-  "index4": ["default"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
+    "dns": "callback",
+    "endpoint": "https://api.example.com", // endpoint can be merged with id parameter
+    "id": "/ddns?domain=__DOMAIN__&ip=__IP__", // endpoint and id cannot both be empty
+    "token": "", // empty string means using GET request, with value uses POST request
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "index6": "public",
+    "ipv4": "ddns.newfuture.cc",
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"]
 }
 ```
 
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
+
 ## Request Methods
 
-| Method | Condition        | Description              |
-|--------|------------------|--------------------------|
-| GET    | `token` is empty | Use URL query parameters |
-| POST   | `token` provided | Use JSON request body    |
+| Method | Condition | Description |
+|--------|-----------|-------------|
+| GET | token is empty | Use URL query parameters |
+| POST | token is not empty | Use JSON request body |
 
 ### GET Request Example
 
 ```json
 {
-  "id": "https://api.example.com/update?domain=__DOMAIN__&ip=__IP__&type=__RECORDTYPE__",
-  "token": "",
-  "dns": "callback",
-  "ipv4": ["sub.example.com"],
-  "index4": ["default"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
+    "dns": "callback",
+    "id": "https://api.example.com/update?domain=__DOMAIN__&ip=__IP__&type=__RECORDTYPE__",
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "ipv4": "ddns.newfuture.cc"
 }
 ```
 
 ```http
-GET https://api.example.com/update?domain=sub.example.com&ip=192.168.1.100&type=A
+GET https://api.example.com/update?domain=ddns.newfuture.cc&ip=192.168.1.100&type=A
 ```
 
 ### POST Request Example
 
 ```json
 {
-  "id": "https://api.example.com/ddns",
-  "token": {
-    "api_key": "your_secret_key",
-    "domain": "__DOMAIN__",
-    "value": "__IP__"
-  },
-  "dns": "callback",
-  "ipv4": ["sub.example.com"],
-  "index4": ["default"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
+    "dns": "callback",
+    "endpoint": "https://api.example.com",
+    "token": {
+        "api_key": "your_secret_key",
+        "domain": "__DOMAIN__",
+        "value": "__IP__"
+    },
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "ipv4": "ddns.newfuture.cc"
 }
 ```
 
 ```http
-POST https://api.example.com/ddns
+POST https://api.example.com
 Content-Type: application/json
 
 {
   "api_key": "your_secret_key",
-  "domain": "sub.example.com",
+  "domain": "ddns.newfuture.cc",
   "value": "192.168.1.100"
 }
-```  
+```
 
 ## Variable Substitution
 
-The Callback Provider supports the following built-in variables that are automatically replaced during requests:
+Callback Provider supports the following built-in variables that are automatically replaced during requests:
 
 | Variable | Description | Example Value |
 |----------|-------------|---------------|
@@ -85,41 +101,10 @@ The Callback Provider supports the following built-in variables that are automat
 | `__IP__` | IP address (IPv4 or IPv6) | `192.168.1.100` or `2001:db8::1` |
 | `__RECORDTYPE__` | DNS record type | `A`, `AAAA`, `CNAME` |
 | `__TTL__` | Time to live (seconds) | `300`, `600` |
-| `__LINE__` | DNS line/route | `default`, `unicom` |
+| `__LINE__` | Resolution line | `default`, `unicom` |
 | `__TIMESTAMP__` | Current timestamp | `1634567890.123` |
 
-### Variable Substitution Example
-
-**Configuration:**
-
-```json
-{
-    "id": "https://api.example.com/ddns/__DOMAIN__?ip=__IP__&ts=__TIMESTAMP__",
-    "token": {
-        "domain": "__DOMAIN__",
-        "record_type": "__RECORDTYPE__",
-        "ttl": "__TTL__",
-        "timestamp": "__TIMESTAMP__"
-    },
-    "dns": "callback"
-}
-```
-
-**Actual Request:**
-
-```http
-POST https://api.example.com/ddns/sub.example.com?ip=192.168.1.100&ts=1634567890.123
-Content-Type: application/json
-
-{
-    "domain": "sub.example.com",
-    "record_type": "A",
-    "ttl": "300",
-    "timestamp": "1634567890.123"
-}
-```
-
-## Use Cases
+## Usage Scenarios
 
 ### 1. Custom Webhook
 
@@ -127,7 +112,8 @@ Send DDNS update notifications to custom webhooks:
 
 ```json
 {
-    "id": "https://hooks.example.com/ddns",
+    "endpoint": "https://hooks.example.com",
+    "id": "/webhook",
     "token": {
         "event": "ddns_update",
         "domain": "__DOMAIN__",
@@ -135,11 +121,12 @@ Send DDNS update notifications to custom webhooks:
         "record_type": "__RECORDTYPE__",
         "timestamp": "__TIMESTAMP__"
     },
-    "dns": "callback"
+    "dns": "callback",
+    "index4": ["default"]
 }
 ```
 
-### 2. JSON String Format Token
+### 2. Using String Format Token
 
 When you need to dynamically construct complex JSON strings:
 
@@ -151,51 +138,24 @@ When you need to dynamically construct complex JSON strings:
 }
 ```
 
-## Advanced Configuration
-
-### Error Handling
-
-The Callback Provider logs detailed information:
-
-- **Success**: Logs callback results
-- **Failure**: Logs error information and reasons
-- **Empty Response**: Logs warning messages
-
-### Security Considerations
-
-1. **HTTPS**: Use HTTPS protocol to protect data transmission
-2. **Authentication**: Include necessary authentication information in token
-3. **Validation**: Server should validate request legitimacy
-4. **Logging**: Avoid exposing sensitive information in logs
-
 ## Troubleshooting
 
-### Common Issues
-
-1. **Invalid URL**: Ensure `id` contains a complete HTTP/HTTPS URL
-2. **JSON Format Error**: Check if `token` JSON format is correct
-   - Object format: `{"key": "value"}`
-   - String format: `"{\"key\": \"value\"}"` (note escaped quotes)
-3. **Variables Not Replaced**: Ensure variable names are spelled correctly (note double underscores)
-4. **Request Failed**: Check if target server is accessible
-5. **Authentication Failed**: Verify API keys or authentication information are correct
-
 ### Debugging Methods
 
 1. **Enable Debug**: Set `"debug": true` in configuration
-2. **Check Logs**: Examine detailed information in DDNS runtime logs
+2. **View Logs**: Check detailed information in DDNS runtime logs
 3. **Test API**: Use curl or Postman to test callback API
-4. **Network Check**: Ensure network connectivity and DNS resolution work properly
+4. **Network Check**: Ensure network connectivity and DNS resolution are normal
 
 ### Testing Tools
 
 You can use online tools to test callback functionality:
 
 ```bash
-# Test GET request with curl
+# Test GET request using curl
 curl "https://httpbin.org/get?domain=test.example.com&ip=192.168.1.1"
 
-# Test POST request with curl
+# Test POST request using curl
 curl -X POST "https://httpbin.org/post" \
   -H "Content-Type: application/json" \
   -d '{"domain": "test.example.com", "ip": "192.168.1.1"}'
@@ -203,7 +163,7 @@ curl -X POST "https://httpbin.org/post" \
 
 ## Related Links
 
-- [DDNS Project Home](../../README.md)
-- [Configuration File Format](../json.md)
-- [Command Line Usage](../cli.md)
-- [Developer Guide](../dev/provider.md)
+- [DDNS Project Homepage](../../README.md)
+- [Configuration File Format](../json.en.md)
+- [Command Line Usage](../cli.en.md)
+- [Developer Guide](../dev/provider.en.md)

+ 38 - 47
doc/providers/callback.md

@@ -4,27 +4,42 @@ Callback Provider 是一个通用的自定义回调接口,允许您将 DDNS 
 
 ## 基本配置
 
-### 配置参数
-
 | 参数 | 说明 | 必填 | 示例 |
 |------|------|------|------|
-| `id` | 回调URL地址,支持变量替换 |  | `https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__` |
+| `id` | 回调URL地址,支持变量替换 | - | `https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__` |
 | `token` | POST 请求参数(JSON对象或JSON字符串),为空时使用GET请求 | 可选 | `{"api_key": "your_key"}` 或 `"{\"api_key\": \"your_key\"}"` |
-| `endpoint` | 可选,API端点地址,默认为 `空` | 可选 | `https://api.example.com/ddns` |
+| `endpoint` | 可选,API端点地址,不会参与变量替换 | - | `https://api.example.com/ddns` |
 | `dns` | 固定值 `"callback"`,表示使用回调方式 | ✅ | `"callback"` |
 
-### 最小配置示例
+## 完整配置示例
 
 ```json
 {
-    "id": "https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__",
-    "token": "",
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
     "dns": "callback",
-    "ipv4": ["sub.example.com"],
-    "index4": ["default"]
+    "endpoint": "https://api.example.com", // endpoint 可以和 Id 参数合并
+    "id": "/ddns?domain=__DOMAIN__&ip=__IP__", //  endpoint 可以和 Id 不能同时为空
+    "token": "", // 空字符串表示使用 GET 请求, 有值时使用 POST 请求
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "index6": "public",
+    "ipv4": "ddns.newfuture.cc",
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"]
 }
 ```
 
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
 ## 请求方式
 
 | 方法 | 条件       | 描述               |
@@ -36,40 +51,40 @@ Callback Provider 是一个通用的自定义回调接口,允许您将 DDNS 
 
 ```json
 {
-    "id": "https://api.example.com/update?domain=__DOMAIN__&ip=__IP__&type=__RECORDTYPE__",
-    "token": "",
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
     "dns": "callback",
-    "ipv4": ["sub.example.com"],
-    "index4": ["default"]
+    "id": "https://api.example.com/update?domain=__DOMAIN__&ip=__IP__&type=__RECORDTYPE__",
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "ipv4": "ddns.newfuture.cc",
 }
 ```
 
 ```http
-GET https://api.example.com/update?domain=sub.example.com&ip=192.168.1.100&type=A
+GET https://api.example.com/update?domain=ddns.newfuture.cc&ip=192.168.1.100&type=A
 ```
 
 ### POST 请求示例
 
 ```json
 {
-    "id": "https://api.example.com/update",
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json",
+    "dns": "callback",
+    "endpoint": "https://api.example.com",
     "token": {
         "api_key": "your_secret_key",
         "domain": "__DOMAIN__",
         "value": "__IP__"
     },
-    "dns": "callback",
-    "ipv4": ["sub.example.com"],
-    "index4": ["default"]
+    "index4": ["url:http://api.ipify.cn", "public"],
+    "ipv4": "ddns.newfuture.cc",
 }
-
 ```http
-POST https://api.example.com/update
+POST https://api.example.com
 Content-Type: application/json
 
 {
   "api_key": "your_secret_key",
-  "domain": "sub.example.com",
+  "domain": "ddns.newfuture.cc",
   "value": "192.168.1.100",
 }
 ```
@@ -95,7 +110,8 @@ Callback Provider 支持以下内置变量,在请求时会自动替换:
 
 ```json
 {
-    "id": "https://hooks.example.com/ddns",
+    "endpoint": "https://hooks.example.com",
+    "id":"/webhook",
     "token": {
         "event": "ddns_update",
         "domain": "__DOMAIN__",
@@ -120,33 +136,8 @@ Callback Provider 支持以下内置变量,在请求时会自动替换:
 }
 ```
 
-## 错误处理
-
-Callback Provider 会记录详细的日志信息:
-
-- **成功**:记录回调结果
-- **失败**:记录错误信息和原因
-- **空响应**:记录警告信息
-
-### 安全考虑
-
-1. **HTTPS**: 建议使用 HTTPS 协议保护数据传输
-2. **认证**: 在 token 中包含必要的认证信息
-3. **验证**: 服务端应验证请求的合法性
-4. **日志**: 避免在日志中暴露敏感信息
-
 ## 故障排除
 
-### 常见问题
-
-1. **URL无效**: 确保 `id` 包含完整的HTTP/HTTPS URL
-2. **JSON格式错误**: 检查 `token` 的JSON格式是否正确
-   - 对象格式:`{"key": "value"}`
-   - 字符串格式:`"{\"key\": \"value\"}"`(注意转义双引号)
-3. **变量未替换**: 确保变量名拼写正确(注意双下划线)
-4. **请求失败**: 检查目标服务器是否可访问
-5. **认证失败**: 验证API密钥或认证信息是否正确
-
 ### 调试方法
 
 1. **启用调试**: 在配置中设置 `"debug": true`

+ 107 - 48
doc/providers/cloudflare.en.md

@@ -2,97 +2,156 @@
 
 ## Overview
 
-Cloudflare is a leading global CDN and network security service provider. This DDNS project supports automatic DNS record management through the Cloudflare API.
+Cloudflare is a leading global CDN and network security service provider, offering authoritative DNS resolution services that support dynamic DNS record creation and updates. This DDNS project performs automatic DNS record management through the Cloudflare API.
 
-## Authentication Methods
+Official Links:
 
-### API Token Authentication (Recommended)
+- Official Website: <https://www.cloudflare.com/>
+- Service Console: <https://dash.cloudflare.com/>
+
+## Authentication Information
+
+### 1. API Token Authentication (Recommended)
+
+API Token method is more secure and supports fine-grained permission control, which is Cloudflare's recommended integration method.
+
+#### Obtaining Authentication Information
+
+1. Login to [Cloudflare Dashboard](https://dash.cloudflare.com/)
+2. Go to "My Profile" > "API Tokens" or visit <https://dash.cloudflare.com/profile/api-tokens>
+3. Click "Create Token" and select "Custom token" template
+4. Configure permissions:
+   - **Zone:Read** (Zone:Read)
+   - **DNS:Edit** (Zone:DNS:Edit)
+5. Select the domain zones to manage
+6. Copy the generated **API Token**. The token is only displayed once, please save it securely
 
 ```json
 {
     "dns": "cloudflare",
-    "token": "your_api_token_here"
+    "token": "your_cloudflare_api_token"  // Cloudflare API Token, leave ID empty or omit
 }
 ```
 
-### API Key Authentication
+### 2. Global API Key Authentication (Not Recommended)
+
+Uses Cloudflare account email and Global API Key, with excessive permissions and **lower security**, only recommended for special scenarios.
+
+#### Obtaining Global API Key
+
+1. Login to [Cloudflare Dashboard](https://dash.cloudflare.com/)
+2. Go to "My Profile" > "API Tokens"
+3. View "Global API Key" and copy
 
 ```json
 {
-    "id": "[email protected]",
-    "token": "your_global_api_key",
     "dns": "cloudflare",
+    "id": "[email protected]",    // Cloudflare account email
+    "token": "your_global_api_key"     // Cloudflare Global API Key
 }
 ```
 
-## Getting Authentication Credentials
+## Permission Requirements
 
-### API Token
+Ensure that the Cloudflare account being used has the following permissions:
 
-1. Log in to [Cloudflare Dashboard](https://dash.cloudflare.com/)
-2. Go to "My Profile" → "API Tokens"
-3. Create custom token with permissions:
-   - **Zone.Zone Read**, **Zone.DNS Read**, **Zone.DNS Edit**
-4. Select domains to manage
+### API Token Permissions
 
-### Global API Key
+- **Zone:Read**: Zone read permission for listing and retrieving domain zone information
+- **Zone:DNS:Edit**: DNS edit permission for creating, updating, and deleting DNS records
 
-1. Log in to [Cloudflare Dashboard](https://dash.cloudflare.com/)
-2. Go to "My Profile" → "API Tokens"
-3. View "Global API Key"
+### Global API Key Permissions
 
-## Permission Requirements
+- **Full Access**: Complete control over all resources under the account
 
-- **API Token**: Grant the following minimum permissions for secure operation:
-  - `Zone.Zone Read` – list and retrieve zone information
-  - `Zone.DNS Read` – list existing DNS records
-  - `Zone.DNS Edit` – create and update DNS records
-- **Global API Key**: Has full permissions; use only when API Token is not supported and store securely
+You can view and configure permissions in [Cloudflare API Token Management](https://dash.cloudflare.com/profile/api-tokens).
 
-## Configuration Examples
+## Complete Configuration Example
 
 ```json
 {
-    "dns": "cloudflare",
-    "token": "your_api_token_here",
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "ipv6": ["ddns.example.com"],
-    "index4": ["default"],
-    "index6": ["default"],  
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "cloudflare",                // Current provider
+    "token": "your_cloudflare_api_token", // Cloudflare API Token
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "ttl": 300,                             // DNS record TTL (seconds)
+    "proxied": false                        // Whether to enable Cloudflare proxy
 }
 ```
 
-## Optional Parameters
+### Parameter Description
 
-| Parameter | Description         | Type   | Default               |
-|-----------|------------------------|--------|-----------------------|
-| `ttl`     | DNS record TTL value   | int    | auto (automatic TTL)  |
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `cloudflare` | None | Provider Parameter |
+| id | Authentication email | String | Cloudflare account email (Global API Key only) | None | Provider Parameter |
+| token | Authentication key | String | Cloudflare API Token or Global API Key | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| ttl | TTL time | Integer (seconds) | [Reference below](#ttl) | `300/auto` | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
 
-Cloudflare uses a single global API endpoint, but custom endpoints may be needed in special cases:
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Parameter**: Supported by current provider, values related to current provider
 
-- **Enterprise/Private Cloud Deployments**: Configure according to specific deployment environment
-- **Proxy/Mirror Services**: Third-party API proxy service addresses
+### ttl
 
-> **Note**: Cloudflare officially recommends using the default global endpoint `https://api.cloudflare.com`, which is automatically optimized through Cloudflare's global network. Custom endpoints are only needed when using enterprise private deployments or third-party proxy services.
+The `ttl` parameter specifies the Time To Live (TTL) of DNS records in seconds. Cloudflare's TTL settings vary depending on whether the record has proxy enabled.
 
-## Troubleshooting
+#### Proxied Records
 
-### Common Errors
+All proxied records have TTL defaulted to **Auto**, fixed at **300 seconds** (5 minutes), and this value **cannot be edited**.
 
-- **"Invalid API token"** - Check token validity and permissions
-- **"Zone not found"** - Ensure domain is added to Cloudflare
-- **"Record creation failed"** - Check record format and TTL value (60-86400 seconds)
+Since only records used for IP address resolution can be proxied, this setting ensures that potential changes to the assigned anycast IP address will take effect quickly, as recursive resolvers will not cache them for longer than 300 seconds.
+
+> **Note**: It may take longer than 5 minutes for you to actually experience record changes, as your local DNS cache may take longer to update.
+
+#### Unproxied Records
+
+For DNS-only records, you can choose the following TTL ranges:
+
+| Plan Type | Supported TTL Range (seconds) | Description |
+| --------- | :---------------------------: | :---------- |
+| Free/Pro/Business | 60 - 86400 | Minimum TTL is 1 minute |
+| Enterprise | 30 - 86400 | Minimum TTL is 30 seconds |
+
+TTL set to **Auto** is fixed at **300 seconds** (5 minutes).
+
+> Reference: [Cloudflare TTL Documentation](https://developers.cloudflare.com/dns/manage-dns-records/reference/ttl/)
+
+## Troubleshooting
 
 ### Debug Mode
 
+Enable debug logging to view detailed information:
+
 ```sh
 ddns -c config.json --debug
 ```
 
-## Related Links
+### Common Issues
+
+- **Invalid API token**: Check if API Token is correct, confirm permission configuration
+- **Zone not found**: Ensure domain has been added to Cloudflare account, domain is in active state
+- **Record creation failed**: Check record format and TTL values, confirm permission settings
+- **Rate limit exceeded**: API call frequency exceeded, reduce request frequency
+
+## Support and Resources
 
-- [Cloudflare API Documentation](https://developers.cloudflare.com/api/)
+- [Cloudflare Developer Documentation](https://developers.cloudflare.com/)
+- [Cloudflare API Reference](https://developers.cloudflare.com/api/)
 - [Cloudflare Dashboard](https://dash.cloudflare.com/)
+- [Cloudflare Community Support](https://community.cloudflare.com/)
 
-> It's recommended to use API Token instead of Global API Key for better security with finer-grained permissions.
+> **Recommendation**: Use API Token method for fine-grained permission control and improved account security, avoid using Global API Key.

+ 105 - 48
doc/providers/cloudflare.md

@@ -2,97 +2,154 @@
 
 ## 概述
 
-Cloudflare 是全球领先的 CDN 和网络安全服务提供商。本 DDNS 项目支持通过 Cloudflare API 进行 DNS 记录的自动管理。
+Cloudflare 是全球领先的 CDN 和网络安全服务提供商,提供权威 DNS 解析服务,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 Cloudflare API 进行 DNS 记录的自动管理。
 
-## 认证方式
+官网链接:
 
-### API Token 认证(推荐)
+- 官方网站:<https://www.cloudflare.com/>
+- 服务商控制台:<https://dash.cloudflare.com/>
+
+## 认证信息
+
+### 1. API Token 认证(推荐)
+
+API Token 方式更安全,支持精细化权限控制,是 Cloudflare 推荐的集成方法。
+
+#### 获取认证信息
+
+1. 登录 [Cloudflare 控制台](https://dash.cloudflare.com/)
+2. 进入"我的个人资料" > "API 令牌"或访问 <https://dash.cloudflare.com/profile/api-tokens>
+3. 点击"创建令牌",选择"自定义令牌"模板
+4. 配置权限:
+   - **区域:读取** (Zone:Read)
+   - **DNS:编辑** (Zone:DNS:Edit)
+5. 选择要管理的域名区域
+6. 复制生成的 **API Token**,令牌只显示一次,请妥善保存
 
 ```json
 {
     "dns": "cloudflare",
-    "token": "your_api_token_here",
+    "token": "your_cloudflare_api_token"  // Cloudflare API Token, ID 留空或者不填
 }
 ```
 
-### API Key 认证
+### 2. Global API Key 认证(不推荐)
+
+使用 Cloudflare 账户邮箱和 Global API Key,权限过大,**安全性较低**,仅建议特殊场景使用。
+
+#### 获取 Global API Key
+
+1. 登录 [Cloudflare 控制台](https://dash.cloudflare.com/)
+2. 进入"我的个人资料" > "API 令牌"
+3. 查看"Global API Key"并复制
 
 ```json
 {
-    "id": "[email protected]",
-    "token": "your_global_api_key",
     "dns": "cloudflare",
+    "id": "[email protected]",    // Cloudflare 账户邮箱
+    "token": "your_global_api_key"     // Cloudflare Global API Key
 }
 ```
 
-## 获取认证信息
+## 权限要求
 
-### API Token
+确保使用的 Cloudflare 账号具有以下权限:
 
-1. 登录 [Cloudflare 控制台](https://dash.cloudflare.com/)
-2. 进入「我的个人资料」→「API 令牌」
-3. 创建自定义令牌,配置权限:
-   - **区域:读取** 和 **DNS:编辑**
-4. 选择要管理的域名
+### API Token 权限
 
-### 全局 API Key
+- **Zone:Read**:区域读取权限,用于列出和获取域名区域信息
+- **Zone:DNS:Edit**:DNS 编辑权限,用于创建、更新和删除 DNS 记录
 
-1. 登录 [Cloudflare 控制台](https://dash.cloudflare.com/)
-2. 进入「我的个人资料」→「API 令牌」
-3. 查看「Global API Key」
+### Global API Key 权限
 
-## 权限要求
+- **完全访问权限**:拥有账户下所有资源的完全控制权限
 
-- **API Token**:请授予以下最小权限以确保安全:
-  - `Zone.Zone Read`(区域: 读取)– 用于列出和获取域名区域信息
-  - `Zone.DNS Read`(DNS: 读取)– 用于列出现有记录
-  - `Zone.DNS Edit`(DNS: 编辑)– 用于创建和更新 DNS 记录
-- **Global API Key**:拥有所有权限,仅在无法使用 API Token 时使用,并确保妥善保管
+可以在 [Cloudflare API 令牌管理](https://dash.cloudflare.com/profile/api-tokens) 中查看和配置权限。
 
-## 配置示例
+## 完整配置示例
 
 ```json
 {
-    "dns": "cloudflare",
-    "token": "your_api_token_here",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "ipv6": ["ddns.example.com"],
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "cloudflare",                // 当前服务商
+    "token": "your_cloudflare_api_token", // Cloudflare API Token
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "ttl": 300,                             // DNS记录TTL(秒)
+    "proxied": false                        // 是否启用 Cloudflare 代理
 }
 ```
 
-## 可选参数
+### 参数说明
 
-| 参数 | 说明 | 类型 | 默认值 |
-|------|------|------|-------|
-| `ttl` | DNS记录的TTL值 | int | 自动 |
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `cloudflare`                       | 无        | 服务商参数 |
+| id      | 认证邮箱     | 字符串         | Cloudflare 账户邮箱(仅 Global API Key) | 无   | 服务商参数 |
+| token   | 认证密钥     | 字符串         | Cloudflare API Token 或 Global API Key | 无  | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | 300/auto | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
 
-Cloudflare使用单一的全球API端点,但在特殊情况下可能需要自定义:
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持, 值与当前服务商相关
 
-- **企业版/私有云部署**:根据具体部署环境配置
-- **代理/镜像服务**:第三方API代理服务地址
+### ttl
 
-> **注意**:Cloudflare官方推荐使用默认的全球端点 `https://api.cloudflare.com`,该端点通过Cloudflare的全球网络自动优化路由。只有在使用企业版私有部署或第三方代理服务时才需要自定义端点。
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。Cloudflare 的 TTL 设置根据记录是否启用代理而有所不同
 
-## 故障排除
+#### 代理记录 (Proxied Records)
+
+所有代理记录的 TTL 默认为 **Auto**,固定设置为 **300 秒**(5 分钟),此值**无法编辑**。
+
+由于只有用于 IP 地址解析的记录才能被代理,此设置确保分配的任播 IP 地址的潜在变化能够快速生效,因为递归解析器不会将其缓存超过 300 秒。
+
+> **注意**:实际体验记录变化可能需要超过 5 分钟,因为本地 DNS 缓存可能需要更长时间才能更新。
+
+#### 非代理记录 (Unproxied Records)
 
-### 常见错误
+对于仅 DNS 记录,您可以选择以下 TTL 范围:
 
-- **"Invalid API token"** - 检查 Token 是否正确及权限
-- **"Zone not found"** - 确认域名已添加到 Cloudflare
-- **"Record creation failed"** - 检查记录格式和 TTL 值(60-86400秒)
+| 套餐类型     | 支持的 TTL 范围(秒) | 说明 |
+| ------------ | :-------------------: | :--- |
+| Free/Pro/Business | 60 - 86400 | 最低 TTL 为 1 分钟 |
+| Enterprise   | 30 - 86400 | 最低 TTL 为 30 秒 |
+
+> 参考:[Cloudflare TTL 说明](https://developers.cloudflare.com/dns/manage-dns-records/reference/ttl/)
+
+## 故障排除
 
 ### 调试模式
 
+启用调试日志查看详细信息:
+
 ```sh
 ddns -c config.json --debug
 ```
 
-## 相关链接
+### 常见问题
+
+- **Invalid API token**:检查 API Token 是否正确,确认权限配置
+- **Zone not found**:确保域名已添加到 Cloudflare 账号,域名处于活跃状态
+- **Record creation failed**:检查记录格式和 TTL 值,确认权限设置
+- **Rate limit exceeded**:API 调用频率超限,降低请求频率
+
+## 支持与资源
 
-- [Cloudflare API 文档](https://developers.cloudflare.com/api/)
+- [Cloudflare 开发者文档](https://developers.cloudflare.com/)
+- [Cloudflare API 参考](https://developers.cloudflare.com/api/)
 - [Cloudflare 控制台](https://dash.cloudflare.com/)
+- [Cloudflare 社区支持](https://community.cloudflare.com/)
 
-> 建议使用 API Token 而非 Global API Key,权限更精细更安全。
+> **建议**:推荐使用 API Token 方式,支持精细化权限控制,提升账号安全性,避免使用 Global API Key

+ 76 - 26
doc/providers/debug.en.md

@@ -1,47 +1,97 @@
-# Debug Provider
+# Debug Provider Configuration Guide
 
-Debug Provider is a virtual DNS provider used for debugging and testing purposes only. It does not perform any actual DNS updates, but simply prints IP addresses to the console.
+## Overview
 
-## Use Cases
+Debug Provider is a virtual DNS provider specifically designed for debugging and testing purposes. It simulates the DNS record update process but does not perform any actual operations, only outputs relevant information to the console to help developers debug DDNS configuration and functionality.
 
-- Test DDNS configuration validity
-- Debug IP address detection functionality
-- Develop and debug new features
+Official Links:
 
-## Configuration Examples
+- Project Homepage: [DDNS Project](https://github.com/NewFuture/DDNS)
+- Development Documentation: [Provider Development Guide](../dev/provider.en.md)
+
+### Important Notice
+
+- Debug Provider **is only for debugging and testing**, it does not perform any actual DNS update operations
+- Only prints detected IP addresses and domain information to the console
+- Suitable for verifying configuration file format and IP address detection functionality
+
+## Authentication Information
+
+Debug Provider does not require any authentication information, no need to configure `id` and `token` parameters.
+
+```json
+{
+    "dns": "debug"  // Only need to specify provider as debug
+}
+```
+
+## Complete Configuration Example
 
 ```json
 {
-  "dns": "debug",
-  "index4": ["default"],
-  "index6": ["default"],
-  "ipv4": [],
-  "ipv6": []
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "debug",                     // Current provider
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "cache": false,                    // Recommend disabling cache for debugging
+    "log": {
+        "level": "debug"               // Log level
+    }
 }
 ```
 
-```bash
-ddns --dns debug --index4 default --debug
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `debug` | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `false` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+
+## Command Line Usage
+
+```sh
+ddns --debug
 ```
 
-## Output Examples
+### Specify Parameters
 
-```text
-DEBUG DebugProvider: example.com(A) => 192.168.1.100
-DEBUG DebugProvider: example.com(AAAA) => 2001:db8::1
+```sh
+ddns --dns debug --index4=0 --ipv4=ddns.newfuture.cc --debug
 ```
 
-## Important Notes
+### Output Log
+
+```log
+INFO  DebugProvider: ddns.newfuture.cc(A) => 192.168.1.100
+```
+
+### Error Simulation
+
+Debug Provider also simulates some common error scenarios to help test error handling logic.
 
-**Debug Only**: Does not actually update DNS records
+## Troubleshooting
 
-## Debugging Tips
+### Common Issues
 
-1. **Test Configuration**: Use debug provider to verify configuration file format
-2. **Check IP Detection**: Confirm IP address detection is working properly
+- **No output information**: Check log level settings, ensure DEBUG level is enabled
+- **IP detection failed**: Check network connection and IP source configuration
+- **Configuration format error**: Use JSON validation tools to check configuration file format
 
-## Related Documentation
+## Support and Resources
 
+- [DDNS Project Documentation](../../README.md)
 - [Configuration File Format](../json.en.md)
-- [Command Line Usage](../cli.en.md)
-- [Environment Variables](../env.en.md)
+- [Command Line Usage Guide](../cli.en.md)
+- [Developer Guide](../dev/provider.en.md)

+ 76 - 26
doc/providers/debug.md

@@ -1,47 +1,97 @@
-# Debug Provider
+# Debug Provider 配置指南
 
-Debug Provider 是一个仅用于调试和测试的虚拟DNS provider。它不进行任何实际的DNS更新操作,只是将IP地址打印到控制台。
+## 概述
 
-使用场景
+Debug Provider 是一个专门用于调试和测试的虚拟 DNS 服务商。它模拟 DNS 记录更新过程,但不进行任何查询修改操作,只是将相关信息输出到控制台,帮助开发者调试 DDNS 配置和功能。
 
-- 测试DDNS配置是否正确
-- 调试IP地址检测功能
-- 开发和调试新功能
+官网链接:
 
-## 配置示例
+- 项目主页:[DDNS 项目](https://github.com/NewFuture/DDNS)
+- 开发文档:[Provider 开发指南](../dev/provider.md)
+
+### 重要提示
+
+- Debug Provider **仅用于调试和测试**,不会进行任何实际的 DNS 更新操作
+- 只会将检测到的 IP 地址和域名信息打印到控制台
+- 适合用于验证配置文件格式和 IP 地址检测功能
+
+## 认证信息
+
+Debug Provider 不需要任何认证信息,无需配置 `id` 和 `token` 参数。
+
+```json
+{
+    "dns": "debug"  // 仅需指定服务商为 debug
+}
+```
+
+## 完整配置示例
 
 ```json
 {
-  "dns": "debug",
-  "index4": ["default"],
-  "index6": ["default"],
-  "ipv4": [],
-  "ipv6": []
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "debug",                     // 当前服务商
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "cache": false,                    // 建议关闭缓存以便调试
+    "log": {
+        "level": "debug",               // 日志级别
+    }
 }
 ```
 
-```bash
-ddns --dns debug --index4 default --debug
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `debug`                            | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `false`   | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数
+
+## 命令行使用
+
+```sh
+ddns --debug
 ```
 
-## 输出示例
+### 指定参数
+
+```sh
+ddns --dns debug --index4=0 --ipv4=ddns.newfuture.cc --debug
+```
+
+### 输出Log
 
 ```log
-DEBUG DebugProvider: example.com(A) => 192.168.1.100
-DEBUG DebugProvider: example.com(AAAA) => 2001:db8::1
+INFO  DebugProvider: ddns.newfuture.cc(A) => 192.168.1.100
 ```
 
-## 注意事项
+### 错误模拟
+
+Debug Provider 也会模拟一些常见错误场景,帮助测试错误处理逻辑。
 
-**仅用于调试**: 不会实际更新DNS记录
+## 故障排除
 
-## 调试技巧
+### 常见问题
 
-1. **测试配置**: 使用debug provider验证配置文件格式
-2. **检查IP**: 确认IP地址检测是否正常工作
+- **无输出信息**:检查日志级别设置,确保启用了 DEBUG 级别
+- **IP 检测失败**:检查网络连接和 IP 来源配置
+- **配置格式错误**:使用 JSON 验证工具检查配置文件格式
 
-## 相关文档
+## 支持与资源
 
-- [配置文件格式](../json.md)
-- [命令行使用](../cli.md)
-- [环境变量配置](../env.md)
+- [DDNS 项目文档](../../README.md)
+- [配置文件格式说明](../json.md)
+- [命令行使用指南](../cli.md)
+- [开发者指南](../dev/provider.md)

+ 9 - 125
doc/providers/dnscom.en.md

@@ -1,129 +1,13 @@
-# DNS.COM Configuration Guide
-
-## Overview
-
-DNS.COM (formerly dns.com, now 51dns.com) is a Chinese domain name resolution service provider. This document describes how to configure DDNS to use DNS.COM's API for dynamic DNS updates.
-
-> ⚠️ **Notice**: DNS.COM Provider is currently in **pending verification** status, lacking sufficient real-world testing. It is recommended to thoroughly test before using in production environments.
-
-## Authentication Method
-
-### API Key + Secret Key
-
-DNS.COM uses API Key and Secret Key for API authentication, which is the official recommended authentication method.
-
-#### Obtaining API Credentials
-
-1. Log into [DNS.COM Console](https://www.51dns.com/)
-2. Navigate to "API Management" page
-3. Create new API key
-4. Record the **API Key** and **Secret Key**, please keep them safe
-
-```json
-{
-    "dns": "dnscom",
-    "id": "your-api-key",
-    "token": "your-secret-key"
-}
-```
-
-- `id`: DNS.COM API Key
-- `token`: DNS.COM Secret Key
-- `dns`: Fixed as `"dnscom"`
-
-## Complete Configuration Example
-
-```json
-{
-    "id": "your-api-key",
-    "token": "your-secret-key",
-    "dns": "dnscom",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com"],
-    "ipv6": ["home.example.com", "nas.example.com"],
-    "line": "1",
-    "ttl": 600
-}
-```
-
-## Optional Parameters
-
-| Parameter | Description | Type | Range/Examples | Default |
-|-----------|-------------|------|----------------|---------|
-| ttl | TTL (Time to Live) | int | 60-86400 (seconds) | auto |
-| line | Resolution line ID | str | "1", "2", "3", "4", "5", "6" | auto |
-
-> **Note**: Values supported for `ttl` and `line` may vary depending on your service plan.
-
-DNS.COM supports multiple resolution lines. You can choose the optimal line based on your network environment:
+---
+redirect_to: 51dns.en.md
+---
 
-| Line ID | Line Name | Description |
-|---------|-----------|-------------|
-| `1` | Default | Global default line |
-| `2` | China Telecom | Telecom network optimization |
-| `3` | China Unicom | Unicom network optimization |
-| `4` | China Mobile | Mobile network optimization |
-| `5` | Overseas | Overseas access optimization |
-| `6` | Education Network | Education network optimization |
-
-## API Limits
-
-- **Request Rate**: Maximum 100 API calls per minute
-- **Domain Count**: Free version supports up to 10 domains
-- **Record Count**: Maximum 100 records per domain
-- **TTL Range**: 60-86400 seconds
-
-## Troubleshooting
-
-| Error Code | Description | Solution |
-|------------|-------------|----------|
-| `0` | Success | Operation successful |
-| `1` | Parameter error | Check request parameters |
-| `2` | Authentication failed | Check API credentials |
-| `3` | Insufficient permissions | Check API permissions |
-| `4` | Record not found | Check domain and record |
-| `5` | Domain not found | Check domain configuration |
-
-### Common Issues
-
-#### "Authentication Failed"
-
-- Check if API Key and Secret Key are correct
-- Ensure API key status is enabled
-- Verify account permissions are sufficient
-
-#### "Domain Not Found"
-
-- Confirm domain is added to DNS.COM
-- Check domain spelling is correct
-- Verify domain status is normal
-
-#### "Record Operation Failed"
-
-- Check if subdomain has conflicting records
-- Ensure TTL value is within reasonable range
-- Verify resolution line settings are correct
-
-#### "API Call Limit Exceeded"
-
-- DNS.COM API has QPS limits
-- Appropriately increase update intervals
-
-### Debug Mode
-
-Enable debug logging to view detailed information:
-
-```sh
-ddns --debug
-```
+# DNS.COM Configuration Guide
 
-## Support & Resources
+**DNS.COM has been renamed to 51DNS, redirecting to the new page...**
 
-- [DNS.COM Official Website](https://www.51dns.com/)
-- [DNS.COM API Documentation](https://www.51dns.com/document/api/index.html)
-- [Configuration File Format](../json.en.md)
-- [Command Line Usage](../cli.en.md)
-- [Environment Variables](../env.en.md)
+If the page doesn't redirect automatically, please click: [51DNS Configuration Guide](51dns.en.md)
 
-> ⚠️ **Pending Verification**: DNS.COM Provider lacks sufficient real-world testing. It is recommended to thoroughly test before using in production environments. Please report any issues via [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
+<script>
+window.location.href = '51dns.en.html';
+</script>

+ 9 - 125
doc/providers/dnscom.md

@@ -1,129 +1,13 @@
-# DNS.COM 配置指南
-
-## 概述
-
-DNS.COM(原dns.com,现51dns.com)是一个中文域名解析服务商。本文档介绍如何配置DDNS以使用DNS.COM的API进行动态DNS更新。
-
-> ⚠️ **注意**:DNS.COM Provider 目前处于**待验证**状态,缺少充分的真实环境测试。建议在生产环境使用前进行充分测试,如遇问题请及时反馈。
-
-## 认证方式
-
-### API Key + Secret Key
-
-DNS.COM使用API Key和Secret Key进行API认证,这是官方推荐的认证方式。
-
-#### 获取API密钥
-
-1. 登录 [DNS.COM控制台](https://www.51dns.com/)
-2. 进入"API管理"页面
-3. 创建新的API密钥
-4. 记录 **API Key** 和 **Secret Key**,请妥善保存
-
-```json
-{
-    "dns": "dnscom",
-    "id": "your-api-key",
-    "token": "your-secret-key"
-}
-```
-
-- `id`:DNS.COM API Key
-- `token`:DNS.COM Secret Key  
-- `dns`:固定为 `"dnscom"`
-
-## 完整配置示例
-
-```json
-{
-    "id": "your-api-key",
-    "token": "your-secret-key",
-    "dns": "dnscom",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com"],
-    "ipv6": ["home.example.com", "nas.example.com"],
-    "line": "1",
-    "ttl": 600
-}
-```
-
-## 可选参数
-
-| 参数 | 说明 | 类型 | 取值范围/示例 | 默认值 |
-|------|------|------|---------------|--------|
-| ttl  | 生存时间 | int | 60-86400(秒) | auto |
-| line | 解析线路ID | str | "1"、"2"、"3"、"4"、"5"、"6" | auto |
-
-> **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
-
-DNS.COM支持多条解析线路,可根据网络环境选择最优线路:
+---
+redirect_to: 51dns.md
+---
 
-| 线路ID | 线路名称 | 说明 |
-|--------|----------|------|
-| `1` | 默认 | 全球默认线路 |
-| `2` | 中国电信 | 电信网络优化 |
-| `3` | 中国联通 | 联通网络优化 |
-| `4` | 中国移动 | 移动网络优化 |
-| `5` | 海外 | 海外访问优化 |
-| `6` | 教育网 | 教育网络优化 |
-
-## API限制
-
-- **请求频率**:每分钟最多100次API调用
-- **域名数量**:免费版最多10个域名
-- **记录数量**:每个域名最多100条记录
-- **TTL范围**:60-86400秒
-
-## 故障排除
-
-| 错误代码 | 说明 | 解决方案 |
-|----------|------|----------|
-| `0` | 成功 | 操作成功 |
-| `1` | 参数错误 | 检查请求参数 |
-| `2` | 认证失败 | 检查API密钥 |
-| `3` | 权限不足 | 检查API权限 |
-| `4` | 记录不存在 | 检查域名和记录 |
-| `5` | 域名不存在 | 检查域名配置 |
-
-### 常见问题
-
-#### "认证失败"
-
-- 检查API Key和Secret Key是否正确
-- 确认API密钥状态为启用
-- 验证账号权限是否足够
-
-#### "域名不存在"
-
-- 确认域名已添加到DNS.COM
-- 检查域名拼写是否正确
-- 验证域名状态是否正常
-
-#### "记录操作失败"
-
-- 检查子域名是否存在冲突记录
-- 确认TTL值在合理范围内
-- 验证解析线路设置是否正确
-
-#### "API调用超出限制"
-
-- DNS.COM API有QPS限制
-- 适当增加更新间隔时间
-
-### 调试模式
-
-启用调试日志查看详细信息:
-
-```sh
-ddns --debug
-```
+# DNS.COM 配置指南
 
-## 支持与资源
+**DNS.COM 已更名为 51DNS,正在重定向到新页面...**
 
-- [DNS.COM官网](https://www.51dns.com/)
-- [DNS.COM API文档](https://www.51dns.com/document/api/index.html)
-- [配置文件格式](../json.md)
-- [命令行使用](../cli.md)
-- [环境变量配置](../env.md)
+如果页面未自动跳转,请点击:[51DNS 配置指南](51dns.md)
 
-> ⚠️ **待验证状态**:DNS.COM Provider 缺少充分的真实环境测试,建议在生产环境使用前进行充分测试。如遇问题请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。
+<script>
+window.location.href = '51dns.html';
+</script>

+ 95 - 63
doc/providers/dnspod.en.md

@@ -1,20 +1,21 @@
 # DNSPod China Configuration Guide
 
-> For Global DNSPod, see [DNSPod Global Configuration Guide](dnspod_com.en.md).
+> For International DNSPod, see [DNSPod Global Configuration Guide](dnspod_com.en.md).
 
 ## Overview
 
-DNSPod China (dnspod.cn) is a DNS service provider, widely used in mainland China. This DDNS project supports two authentication methods to connect to DNSPod:
+DNSPod (dnspod.cn) is an authoritative DNS resolution service under Tencent Cloud, widely used in mainland China, supporting dynamic DNS record creation and updates. This DDNS project supports multiple authentication methods to connect to DNSPod for dynamic DNS record management.
 
-1. **API Token** (Recommended)
-2. **Email + Password** (Legacy)
-3. AccessKey (Tencent Cloud DNSPod) [Reference](tencentcloud.md)
+Official Links:
 
-## Authentication Methods
+- Official Website: <https://www.dnspod.cn/>
+- Service Console: <https://console.dnspod.cn/>
 
-### 1. API Token (Recommended)
+## Authentication Information
 
-The API Token method is more secure and is the recommended integration method by DNSPod.
+### 1. API Token Authentication (Recommended)
+
+API Token method is more secure and is the recommended integration method by DNSPod.
 
 #### Obtaining API Token
 
@@ -26,89 +27,120 @@ The API Token method is more secure and is the recommended integration method by
 ```json
 {
     "dns": "dnspod",
-    "id": "123456",
-    "token": "abcdef1234567890abcdef1234567890"
+    "id": "123456",            // DNSPod API Token ID
+    "token": "Your-API-TOKEN"  // DNSPod API Token Secret
 }
 ```
 
-- `id`: API Token ID
-- `token`: API Token secret
-- `dns`: Must be `"dnspod"`
-
-### 2. Email + Password (Legacy)
+### 2. Email Password Authentication (Not Recommended)
 
 Uses DNSPod account email and password. Lower security, only recommended for special scenarios.
 
 ```json
 {
-    "id": "[email protected]",
-    "token": "your-account-password",
-    "dns": "dnspod"
+    "dns": "dnspod",
+    "id": "[email protected]",  // DNSPod account email
+    "token": "your-account-password" // DNSPod account password
 }
 ```
 
-- `id`: DNSPod account email
-- `token`: DNSPod account password
-- `dns`: Must be `"dnspod"`
+### 3. Tencent Cloud AccessKey Method
+
+For users using Tencent Cloud AccessKey, please refer to [Tencent Cloud DNSPod Configuration Guide](tencentcloud.en.md).
 
 ## Complete Configuration Example
 
 ```json
 {
-  "id": "123456",
-  "token": "abcdef1234567890abcdef1234567890abcdef12",
-  "dns": "dnspod",
-  "index4": ["public"],
-  "index6": ["public"],
-  "ipv4": ["home.example.com"],
-  "ipv6": ["home.example.com", "nas.example.com"],
-  "line": "默认",
-  "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "dnspod",                    // Current provider
+    "id": "123456",                     // DNSPod API Token ID
+    "token": "Your-API-TOKEN",           // DNSPod API Token
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "line": "默认",                          // Resolution line
+    "ttl": 600                              // DNS record TTL (seconds)
 }
 ```
 
-## Optional Parameters
-
-| Parameter | Description               | Type    | Range/Options                             | Default |
-|-----------|---------------------------|---------|-------------------------------------------|---------|
-| `ttl`     | Time To Live (seconds)    | Integer | 1-604800                                | 600     |
-| `line`    | DNS line/route            | String  | "默认"、"电信"、"联通"、"移动" etc. | "默认" |
-
-> **Note**: Supported values for `ttl` and `line` may vary by service plan.
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `dnspod` | None | Provider Parameter |
+| id | Authentication ID | String | DNSPod API Token ID or email | None | Provider Parameter |
+| token | Authentication key | String | DNSPod API Token secret or password | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| line | Resolution line | String | [Reference below](#line) | `默认` | Provider Parameter |
+| ttl | TTL time | Integer (seconds) | [Reference below](#ttl) | `600` | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Parameter**: Supported by current provider, values related to current provider
+> **Note**: `ttl` and `line` supported values may vary by service plan.
+
+### ttl
+
+The `ttl` parameter specifies the Time To Live (TTL) of DNS records in seconds. DNSPod supports TTL range from 1 to 604800 seconds (7 days). If not set, the default value is used.
+
+| Plan Type | Supported TTL Range (seconds) |
+| --------- | :---------------------------: |
+| Free | 600 - 604800 |
+| Professional | 60 - 604800 |
+| Enterprise | 1 - 604800 |
+| Premium | 1 - 604800 |
+
+> Reference: [DNSPod TTL Documentation](https://docs.dnspod.cn/dns/help-ttl/)
+
+### line
+
+The `line` parameter specifies DNS resolution lines. DNSPod supported lines:
+
+| Line Identifier | Description |
+| :-------------- | :---------- |
+| 默认 | Default |
+| 电信 | China Telecom |
+| 联通 | China Unicom |
+| 移动 | China Mobile |
+| 教育网 | China Education Network |
+| 搜索引擎 | Search Engine |
+| 境外 | Overseas |
+
+> More lines reference: [DNSPod Resolution Line Documentation](https://docs.dnspod.cn/dns/dns-record-line)
 
 ## Troubleshooting
 
-### Common Issues
-
-#### "Authentication Failed"
-
-- Check if API Token or email/password are correct
-- Confirm domain management permissions
-
-#### "Domain Not Found"
-
-- Domain has been added to DNSPod account
-- Configuration spelling is correct
-- Domain is in active state
-
-#### "Record Creation Failed"
-
-- Check if subdomain has conflicting records
-- TTL is reasonable
-- Has modification permissions
-
 ### Debug Mode
 
-Enable debug logging:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### Common Issues
+
+- **Authentication Failed**: Check if API Token or email/password are correct, confirm domain management permissions
+- **Domain Not Found**: Ensure domain has been added to DNSPod account, configuration spelling is correct, domain is in active state
+- **Record Creation Failed**: Check if subdomain has conflicting records, TTL settings are reasonable, confirm modification permissions
+- **Request Rate Limit**: DNSPod has API call rate limits, reduce request frequency
+
 ## Support and Resources
 
-- [DNSPod Documentation](https://docs.dnspod.cn/)
-- [API Reference](https://docs.dnspod.cn/api/)
-- [Tencent Cloud DNSPod (AccessKey)](./tencentcloud.en.md) (DNSPod's AccessKey method)
+- [DNSPod Product Documentation](https://docs.dnspod.cn/)
+- [DNSPod API Reference](https://docs.dnspod.cn/api/)
+- [DNSPod Console](https://console.dnspod.cn/)
+- [Tencent Cloud DNSPod (AccessKey Method)](./tencentcloud.en.md)
 
-> It is recommended to use the API Token method for improved security and management convenience.
+> **Recommendation**: Use API Token method to improve security and management convenience, avoid using email/password method.

+ 90 - 60
doc/providers/dnspod.md

@@ -2,113 +2,143 @@
 
 ## 概述
 
-DNSPod (dnspod.cn) 在中国大陆地区广泛使用,后被腾讯云收购。本 DDNS 项目支持两种认证方式连接 DNSPod:
+DNSPod (dnspod.cn) 是腾讯云旗下的权威 DNS 解析服务,在中国大陆地区广泛使用,支持动态 DNS 记录的创建与更新。本 DDNS 项目支持多种认证方式连接 DNSPod 进行动态 DNS 记录管理。
 
-1. **API Token**(推荐)
-2. **邮箱 + 密码**(传统)
-3. AccessKey(腾讯云 DNSPod)[参考](tencentcloud.md)
+官网链接:
 
-## 认证方式
+- 官方网站:<https://www.dnspod.cn/>
+- 服务商控制台:<https://console.dnspod.cn/>
 
-### 1. API Token(推荐)
+## 认证信息
+
+### 1. API Token 认证(推荐)
 
 API Token 方式更安全,是 DNSPod 推荐的集成方法。
 
-#### 获取 API Token
+#### 获取认证信息
 
 1. 登录 [DNSPod 控制台](https://console.dnspod.cn/)
-2. 进入“用户中心” > “API 密钥”或访问 <https://console.dnspod.cn/account/token/token>
-3. 点击“创建密钥”,填写描述,选择域名管理权限,完成创建
+2. 进入"用户中心" > "API 密钥"或访问 <https://console.dnspod.cn/account/token/token>
+3. 点击"创建密钥",填写描述,选择域名管理权限,完成创建
 4. 复制 **ID**(数字)和 **Token**(字符串),密钥只显示一次,请妥善保存
 
 ```json
 {
     "dns": "dnspod",
-    "id": "123456",
-    "token": "abcdef1234567890abcdef1234567890"
+    "id": "123456",               // DNSPod API Token ID
+    "token": "YOUR_DNSPOD_TOKEN"  // DNSPod API Token 密钥
 }
 ```
 
-- `id`:API Token ID
-- `token`:API Token 密钥
-- `dns`:固定为 `"dnspod"`
-
-### 2. 邮箱 + 密码(传统)
+### 2. 邮箱密码认证(不推荐)
 
-使用 DNSPod 账号邮箱和密码,安全性较低,仅建议特殊场景使用。
+使用 DNSPod 账号邮箱和密码,**安全性较低**,仅建议特殊场景使用。
 
 ```json
 {
-    "id": "[email protected]",
-    "token": "your-account-password",
-    "dns": "dnspod"
+    "dns": "dnspod",
+    "id": "[email protected]",  // DNSPod 账号邮箱
+    "token": "your-account-password" // DNSPod 账号密码
 }
 ```
 
-- `id`:DNSPod 账号邮箱
-- `token`:DNSPod 账号密码
-- `dns`:固定为 `"dnspod"`
+### 3. 腾讯云 AccessKey 方式
+
+对于使用腾讯云 AccessKey 的用户,请参考 [腾讯云 DNSPod 配置指南](tencentcloud.md)。
 
 ## 完整配置示例
 
 ```json
 {
-    "id": "123456",
-    "token": "abcdef1234567890abcdef1234567890abcdef12",
-    "dns": "dnspod",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com"],
-    "ipv6": ["home.example.com", "nas.example.com"],
-    "line": "默认",
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "dnspod",                    // 当前服务商
+    "id": "123456",                     // DNSPod API Token ID
+    "token": "abcdef1234567890abcdef1234567890", // DNSPod API Token 密钥
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "line": "默认",                          // 解析线路
+    "ttl": 600                              // DNS记录TTL(秒)
 }
 ```
 
-## 可选参数
-
-### 可选参数一览
-
-| 参数   | 说明         | 类型   | 取值范围/示例         | 默认值   |
-|--------|--------------|--------|-----------------------|----------|
-| ttl    | 生存时间     | int    | 1-604800(秒)        | 600      |
-| line   | 线路        | str    | "默认"、"电信"、"联通"、"移动"等 | "默认"   |
-
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `dnspod`                           | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | DNSPod API Token ID 或邮箱         | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | DNSPod API Token 密钥或密码        | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `默认`    | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | `600`     | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
 > **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
 
-## 故障排除
+### ttl
 
-### 常见问题
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。DNSPod 支持的 TTL 范围为 1 到 604800 秒(即 7 天)。如果不设置,则使用默认值。
 
-#### “认证失败”
+| 套餐类型 | 支持的 TTL 范围(秒) |
+| :------ | :------------------- |
+| 免费版   | 600 ~ 604800          |
+| 专业版   | 60 ~ 604800           |
+| 企业版   | 1 ~ 604800            |
+| 尊享版   | 1 ~ 604800            |
 
-- 检查 API Token 或邮箱/密码是否正确
-- 确认有域名管理权限
+> 参考:[DNSPod TTL 说明](https://docs.dnspod.cn/dns/help-ttl/)
 
-#### “域名未找到”
+### line
 
-- 域名已添加到 DNSPod 账号
-- 配置拼写无误
-- 域名处于活跃状态
+`line` 参数指定 DNS 解析线路,DNSPod 支持的线路:
 
-#### “记录创建失败”
+| 线路标识         | 说明         |
+| :-------------- | :----------- |
+| 默认            | 默认         |
+| 电信            | 中国电信     |
+| 联通            | 中国联通     |
+| 移动            | 中国移动     |
+| 教育网          | 中国教育网   |
+| 搜索引擎        | 搜索引擎     |
+| 境外            | 境外         |
 
-- 检查子域名是否有冲突记录
-- TTL 合理
-- 有修改权限
+> 更多线路参考:[DNSPod 解析线路说明](https://docs.dnspod.cn/dns/dns-record-line)
+
+## 故障排除
 
 ### 调试模式
 
-启用调试日志:
+启用调试日志查看详细信息
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### 常见问题
+
+- **认证失败**:检查 API Token 或邮箱/密码是否正确,确认有域名管理权限
+- **域名未找到**:确保域名已添加到 DNSPod 账号,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名是否有冲突记录,TTL 设置合理,确认有修改权限
+- **请求频率限制**:DNSPod 有 API 调用频率限制,降低请求频率
+
 ## 支持与资源
 
-- [DNSPod 文档](https://docs.dnspod.cn/)
-- [API 参考](https://docs.dnspod.cn/api/)
-- [腾讯云DNSPod(AccessKey)](./tencentcloud.md) (DNSPod 的 AccessKey 方式)
+- [DNSPod 产品文档](https://docs.dnspod.cn/)
+- [DNSPod API 参考](https://docs.dnspod.cn/api/)
+- [DNSPod 控制台](https://console.dnspod.cn/)
+- [腾讯云 DNSPod (AccessKey 方式)](./tencentcloud.md)
 
-> 推荐使用 API Token 方式,提升安全性与管理便捷性。
+> **建议**:推荐使用 API Token 方式,提升安全性与管理便捷性,避免使用邮箱密码方式

+ 113 - 39
doc/providers/dnspod_com.en.md

@@ -2,66 +2,140 @@
 
 ## Overview
 
-DNSPod Global (dnspod.com) provides DNS services outside mainland China and uses the same API interface as DNSPod China.
+DNSPod Global (dnspod.com) is an authoritative DNS resolution service for international users, widely used in overseas regions, supporting dynamic DNS record creation and updates. This DDNS project supports multiple authentication methods to connect to DNSPod Global for dynamic DNS record management.
 
-This DDNS project supports the dnspod_com provider with configuration parameters identical to DNSPod, with the only difference being the names of supported DNS lines.
+Official Links:
 
-## Authentication Methods
+- Official Website: <https://www.dnspod.com/>
 
-### API Token (Recommended)
+## Authentication Information
 
-DNSPod Global uses the same API Token mechanism. Obtain your token as follows:
+### 1. API Token Authentication (Recommended)
+
+API Token method is more secure and is the recommended integration method by DNSPod.
+
+#### Obtaining Authentication Information
 
 1. Login to [DNSPod Global Console](https://www.dnspod.com/)
-2. Go to "User Center" → "API Token" or visit <https://www.dnspod.com/account/token/token>
-3. Click "Create Token", enter a description, select domain management permissions, and create
-4. Copy the **ID** and **Token** shown (token is shown only once; save it securely)
+2. Go to "User Center" > "API Token" or visit <https://www.dnspod.com/console/user/security>
+3. Click "Create Token", fill in description, select domain management permissions, and complete creation
+4. Copy the **ID** (numeric) and **Token** (string). The token is only displayed once, please save it securely
 
 ```json
 {
-  "dns": "dnspod_com",
-  "id": "123456",
-  "token": "abcdef1234567890abcdef1234567890"
+    "dns": "dnspod_com",
+    "id": "123456",            // DNSPod International API Token ID
+    "token": "YOUR_API_TOKEN"  // DNSPod International API Token Secret
 }
 ```
 
-- `id`: API Token ID
-- `token`: API Token secret
-- `dns`: Must be set to `"dnspod_com"`
-
-## Configuration Parameters
-
-Refer to the [DNSPod China Configuration Guide](./dnspod.en.md) for details on parameters `id`, `token`, `dns`, `index4`, `index6`, `ipv4`, `ipv6`, and `ttl`.
+### 2. Email Password Authentication (Not Recommended)
 
-## Supported Line Names
+Uses DNSPod account email and password. Lower security, only recommended for special scenarios.
 
-The `line` parameter values for DNSPod International are English identifiers:
-
-| Line Name | Description          |
-|-----------|----------------------|
-| default   | Default public line  |
-| telecom   | China Telecom route  |
-| unicom    | China Unicom route   |
-| mobile    | China Mobile route   |
-| oversea   | International route  |
+```json
+{
+    "dns": "dnspod_com",
+    "id": "[email protected]",  // DNSPod account email
+    "token": "your-account-password" // DNSPod account password
+}
+```
 
-Example:
+## Complete Configuration Example
 
 ```json
 {
-  "id": "123456",
-  "token": "abcdef1234567890abcdef1234567890abcdef12",
-  "dns": "dnspod_com",
-  "index4": ["public"],
-  "index6": ["public"],
-  "ipv4": ["home.example.com"],
-  "ipv6": ["home.example.com", "nas.example.com"],
-  "line": "oversea",
-  "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "dnspod_com",                // Current provider
+    "id": "123456",                     // DNSPod International API Token ID
+    "token": "YOUR_API_TOKEN",           // DNSPod International API Token Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "line": "default",                       // Resolution line
+    "ttl": 600                              // DNS record TTL (seconds)
 }
 ```
 
+### Parameter Description
+
+| Parameter | Description | Type | Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------ | :------ | :------------- |
+| dns | Provider identifier | String | `dnspod_com` | None | Provider Parameter |
+| id | Authentication ID | String | DNSPod API Token ID or email | None | Provider Parameter |
+| token | Authentication key | String | DNSPod API Token secret or password | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Config |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Config |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Config |
+| line | Resolution line | String | [Reference below](#line) | `default` | Provider Parameter |
+| ttl | TTL time | Integer (seconds) | [Reference below](#ttl) | `600` | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Config |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Parameter**: Supported by current provider, values related to current provider
+>
+> **Note**: `ttl` and `line` supported values may vary by service plan.
+
+### ttl
+
+The `ttl` parameter specifies the Time To Live (TTL) of DNS records in seconds. DNSPod International supports TTL range from 1 to 604800 seconds (7 days). If not set, the default value is used.
+
+| Plan Type | Supported TTL Range (seconds) |
+| :-------- | :---------------------------: |
+| Free | 600 ~ 604800 |
+| Professional | 120 ~ 604800 |
+| Enterprise | 60 ~ 604800 |
+| Premium | 1 ~ 604800 |
+
+> Reference: [DNSPod International TTL Documentation](https://docs.dnspod.com/dns/help-ttl)
+
+### line
+
+The `line` parameter specifies DNS resolution lines. DNSPod International supported lines (using English identifiers):
+
+| Line Identifier | Description |
+| :-------------- | :---------- |
+| Default | Default |
+| China Telecom | China Telecom |
+| China Unicom | China Unicom |
+| China Mobile | China Mobile |
+| CERNET | China Education Network |
+| Chinese mainland | Chinese mainland |
+| Search engine | Search engine |
+
+> More lines reference: [DNSPod International Resolution Line Documentation](https://docs.dnspod.com/dns/help-line)
+
+## Troubleshooting
+
+### Debug Mode
+
+Enable debug logging to view detailed information:
+
+```sh
+ddns -c config.json --debug
+```
+
+### Common Issues
+
+- **Authentication Failed**: Check if API Token or email/password are correct, confirm domain management permissions
+- **Domain Not Found**: Ensure domain has been added to DNSPod International account, configuration spelling is correct, domain is in active state
+- **Record Creation Failed**: Check if subdomain has conflicting records, TTL settings are reasonable, confirm modification permissions
+- **Request Rate Limit**: DNSPod has API call rate limits, reduce request frequency
+- **Regional Access Restrictions**: DNSPod International may have access restrictions in certain regions
+
 ## Support and Resources
 
-- [DNSPod International API Documentation](https://www.dnspod.com/docs/)
+- [DNSPod International Product Documentation](https://www.dnspod.com/docs/)
+- [DNSPod International API Reference](https://www.dnspod.com/docs/index.html)
+- [DNSPod International Console](https://www.dnspod.com/)
 - [DNSPod China Configuration Guide](./dnspod.en.md)
+
+> **Recommendation**: Use API Token method to improve security and management convenience, avoid using email/password method. For mainland China users, it is recommended to use [DNSPod China version](./dnspod.en.md).

+ 119 - 40
doc/providers/dnspod_com.md

@@ -1,67 +1,146 @@
 # DNSPod 国际版 配置指南
 
-> 中国版(dnspod.cn)请参阅 [DNSPod 中国版配置指南](dnspod.md)
+**ℹ️ 版本区别**:
+
+- 本文档适用于 DNSPod 国际版(dnspod.com)
+- 中国版(dnspod.cn)请参阅 [DNSPod 中国版配置指南](dnspod.md)
 
 ## 概述
 
-DNSPod 国际版(dnspod.com)为中国大陆以外地区提供 DNS 服务,使用与 DNSPod 中国版相同的 API 接口。本 DDNS 项目支持 dnspod_com Provider,配置参数与 [DNSPod 中国版](dnspod.md) 完全一致,唯一区别在于可选线路名称。
+DNSPod 国际版(dnspod.com)是面向全球用户的权威 DNS 解析服务,在海外地区广泛使用,支持动态 DNS 记录的创建与更新。本 DDNS 项目支持多种认证方式连接 DNSPod 国际版进行动态 DNS 记录管理。
+
+官网链接:
+
+- 官方网站:<https://www.dnspod.com/>
+
+## 认证信息
 
-## 认证方式
+### 1. API Token 认证(推荐)
 
-### 1. API Token(推荐)
+API Token 方式更安全,是 DNSPod 推荐的集成方法。
 
-国际版使用与中国版相同的 API Token 认证方式,获取步骤:
+#### 获取认证信息
 
 1. 登录 [DNSPod 国际版控制台](https://www.dnspod.com/)
-2. 进入“用户中心”→“API Token”或访问:[https://www.dnspod.com/account/token/token](https://www.dnspod.com/account/token/token)
-3. 点击“创建 Token”,填写描述,选择域名管理权限,完成创建
-4. 复制页面中显示的 **ID**(数字)和 **Token**(字符串),Token 仅展示一次,请妥善保存
+2. 进入"User Center" > "API Token"或访问 <https://www.dnspod.com/console/user/security>
+3. 点击"Create Token",填写描述,选择域名管理权限,完成创建
+4. 复制 **ID**(数字)和 **Token**(字符串),密钥只显示一次,请妥善保存
 
 ```json
 {
-  "dns": "dnspod_com",
-  "id": "123456",
-  "token": "abcdef1234567890abcdef1234567890"
+    "dns": "dnspod_com",
+    "id": "123456",            // DNSPod International API Token ID
+    "token": "YOUR_API_TOKEN"  // DNSPod International API Token Secret
 }
 ```
 
-- `id`:API Token ID
-- `token`:API Token 密钥
-- `dns`:固定为 `"dnspod_com"`
+### 2. 邮箱密码认证(不推荐)
 
-## 配置参数
+使用 DNSPod 账号邮箱和密码,安全性较低,仅建议特殊场景使用。
 
-有关 `id`、`token`、`dns`、`index4`、`index6`、`ipv4`、`ipv6`、`ttl` 等参数,请参阅 DNSPod 中国版配置指南:[dnspod.md](./dnspod.md)
-
-## 支持的线路名称
-
-国际版 `line` 参数使用英文标识:
-
-| 线路名称 | 描述             |
-|----------|------------------|
-| default  | 默认公共线路     |
-| telecom  | 电信线路         |
-| unicom   | 联通线路         |
-| mobile   | 移动线路         |
-| oversea  | 海外线路         |
+```json
+{
+    "dns": "dnspod_com",
+    "id": "[email protected]",  // DNSPod 账号邮箱
+    "token": "your-account-password" // DNSPod 账号密码
+}
+```
 
-示例
+## 完整配置示例
 
 ```json
 {
-  "id": "123456",
-  "token": "abcdef1234567890abcdef1234567890abcdef12",
-  "dns": "dnspod_com",
-  "index4": ["public"],
-  "index6": ["public"],
-  "ipv4": ["home.example.com"],
-  "ipv6": ["home.example.com", "nas.example.com"],
-  "line": "oversea",
-  "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "dnspod_com",                // 当前服务商
+    "id": "123456",                     // DNSPod 国际版 API Token ID
+    "token": "YOUR_API_TOKEN",           // DNSPod 国际版 API Token Secret
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "line": "default",                       // 解析线路
+    "ttl": 600                              // DNS记录TTL(秒)
 }
 ```
 
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `dnspod_com`                       | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | DNSPod API Token ID 或邮箱         | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | DNSPod API Token 密钥或密码        | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `default` | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | `600`     | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
+>
+> **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
+
+### ttl
+
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。DNSPod 国际版支持的 TTL 范围为 1 到 604800 秒(即 7 天)。如果不设置,则使用默认值。
+
+| 套餐类型 | 支持的 TTL 范围(秒) |
+| :------ | :------------------- |
+| 免费版   | 600 ~ 604800         |
+| 专业版   | 120 ~ 604800         |
+| 企业版   | 60 ~ 604800          |
+| 尊享版   | 1 ~ 604800           |
+
+> 参考:[DNSPod International TTL 说明](https://docs.dnspod.com/dns/help-ttl)
+
+### line
+
+`line` 参数指定 DNS 解析线路,DNSPod 国际版支持的线路(使用英文标识):
+
+| 线路标识     | 说明         |
+| :---------- | :----------- |
+| Default     | 默认         |
+| China Telecom     | 中国电信     |
+| China Unicom      | 中国联通     |
+| China Mobile      | 中国移动     |
+| CERNET   | 中国教育网   |
+| Chinese mainland    | 中国大陆 |
+| Search engine    | 搜索引擎     |
+
+> 更多线路参考:[DNSPod International 解析线路说明](https://docs.dnspod.com/dns/help-line)
+
+## 故障排除
+
+### 调试模式
+
+启用调试日志查看详细信息:
+
+```sh
+ddns -c config.json --debug
+```
+
+### 常见问题
+
+- **认证失败**:检查 API Token 或邮箱/密码是否正确,确认有域名管理权限
+- **域名未找到**:确保域名已添加到 DNSPod 国际版账号,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名是否有冲突记录,TTL 设置合理,确认有修改权限
+- **请求频率限制**:DNSPod 有 API 调用频率限制,降低请求频率
+- **地区访问限制**:DNSPod 国际版在某些地区可能有访问限制
+
 ## 支持与资源
 
-- [DNSPod 国际版 API 文档](https://www.dnspod.com/docs/)
-- [DNSPod 中国版 配置指南](./dnspod.md)
+- [DNSPod 国际版产品文档](https://www.dnspod.com/docs/)
+- [DNSPod 国际版 API 参考](https://www.dnspod.com/docs/index.html)
+- [DNSPod 国际版控制台](https://www.dnspod.com/)
+- [DNSPod 中国版配置指南](./dnspod.md)
+
+> **建议**:推荐使用 API Token 方式,提升安全性与管理便捷性,避免使用邮箱密码方式。对于中国大陆用户,建议使用 [DNSPod 中国版](./dnspod.md)。

+ 62 - 85
doc/providers/he.en.md

@@ -1,129 +1,106 @@
-# HE.net (Hurricane Electric) Configuration Guide English Documentation
-
-> ⚠️ **Important Note: This provider is awaiting verification**
->
-> HE.net lacks sufficient real-world testing. Please test carefully before use. If you encounter issues, please report them in [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
+# HE.net (Hurricane Electric) Configuration Guide
 
 ## Overview
 
-Hurricane Electric (HE.net) is a well-known network service provider offering free DNS hosting services with dynamic DNS update support. This DDNS project supports authentication through HE.net's dynamic DNS password.
+Hurricane Electric (HE.net) is a well-known network service provider offering free DNS hosting services with dynamic DNS record update support. This DDNS project authenticates through HE.net's dynamic DNS password.
+
+> ⚠️ **Important Note**: HE.net Provider is currently in **verification pending** status, lacking sufficient real-world testing. Please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
 
 **Important Limitation**: HE.net **does not support automatic record creation** - you must manually create DNS records in the HE.net control panel first.
 
-## Authentication Methods
+Official Links:
+
+- Official Website: <https://he.net/>
+- Provider Console: <https://dns.he.net/>
+
+## Authentication Information
 
 ### Dynamic DNS Password Authentication
 
 HE.net uses a dedicated dynamic DNS password for authentication, not your account login password.
 
-#### Obtaining Dynamic DNS Password
-
-1. Log in to [HE.net DNS Management](https://dns.he.net/)
-2. Select the domain you want to manage
-3. Find the record you need to update dynamically
-4. Click **Generate a DDNS key** or **Enable entry for DDNS** next to the record
-5. Record the generated DDNS password
+DNS records and DNS must be created in advance
 
-#### Configuration Example
+1. Select the domain you want to manage in [HE.net DNS Management Panel](https://dns.he.net)
+2. **Create DNS Record**: Manually create A (IPv4) or AAAA (IPv6) records
+3. **Enable DDNS**: Enable dynamic DNS functionality for the record
+4. **Get Password**: Click `Generate a DDNS key` or `Enable entry for DDNS` next to the record
 
 ```json
 {
     "dns": "he",
-    "token": "your_ddns_password"
+    "token": "your_ddns_key" // HE.net dynamic DNS password, no ID required
 }
 ```
 
-- `token`: HE.net dynamic DNS password
-- `dns`: Fixed as `"he"`
-- `id`: **Not required** (HE.net doesn't use user ID)
-
 ## Complete Configuration Example
 
 ```json
 {
-  "token": "your_ddns_password",
-  "dns": "he",
-  "index4": ["public"],
-  "index6": ["public"],
-  "ipv4": ["home.example.com", "server.example.com"],
-  "ipv6": ["home-v6.example.com"],
-  "ttl": 300
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "he",                        // Current provider
+    "token": "your_ddns_key",      // HE.net dynamic DNS password
+    "index4": ["public", 0],       // IPv4 address source, corresponds to A record value
+    "ipv4": "ddns.newfuture.cc"    // IPv4 domain, corresponds to A record
 }
 ```
 
-## Optional Parameters
-
-| Parameter | Description              | Range        | Default | Notes                                      |
-|-----------|--------------------------|--------------|---------|--------------------------------------------|
-| `ttl`     | DNS record TTL (seconds) | 300 - 86400  | auto    | Actual TTL determined by HE.net record settings |
+### Parameter Description
+
+| Parameter | Description      | Type           | Value Range/Options                     | Default   | Parameter Type |
+| :-------: | :--------------- | :------------- | :------------------------------------- | :-------- | :------------- |
+| dns       | Provider ID      | String         | `he`                                   | None      | Provider Param |
+| token     | Authentication   | String         | HE.net DDNS password                   | None      | Provider Param |
+| index4    | IPv4 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default` | Common Config  |
+| index6    | IPv6 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default` | Common Config  |
+| ipv4      | IPv4 Domain      | Array          | Domain list                            | None      | Common Config  |
+| ipv6      | IPv6 Domain      | Array          | Domain list                            | None      | Common Config  |
+| proxy     | Proxy Settings   | Array          | [Reference](../json.en.md#proxy)      | None      | Common Network |
+| ssl       | SSL Verification | Boolean/String | `"auto"`, `true`, `false`              | `auto`    | Common Network |
+| cache     | Cache Settings   | Boolean/String | `true`, `false`, `filepath`            | `true`    | Common Config  |
+| log       | Log Config       | Object         | [Reference](../json.en.md#log)        | None      | Common Config  |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Param**: Supported by current provider, values related to current provider
+>
+> **Note**: HE.net does not support `id` parameter, only uses `token` (DDNS Key) for authentication; TTL is fixed at 300s.
 
 ## Usage Limitations
 
-### Important Limitations
-
-- ❌ **Does not support automatic record creation**: You must manually create DNS records in the HE.net control panel first
-- ⚠️ **Update only**: Can only update the IP address of existing records, cannot create new records
+- ❌ **Does not support automatic record creation**: Must manually create DNS records in HE.net control panel first
+- ⚠️ **Update only**: Can only update IP addresses of existing records, cannot create new records
 - 🔑 **Dedicated password**: Each record has an independent DDNS password
 
-### Usage Steps
-
-1. **Create DNS record**: Manually create A or AAAA records in the HE.net control panel
-2. **Enable DDNS**: Enable dynamic DNS functionality for the record
-3. **Get password**: Record the DDNS password for each record
-4. **Configure DDNS**: Use the corresponding password to configure the dynamic DNS client
-
 ## Troubleshooting
 
-### Common Issues
-
-#### "Authentication Failed" or No Response
-
-- Check if the DDNS password is correct
-- Confirm that dynamic DNS functionality is enabled for the record
-- Verify that the domain and subdomain spelling is correct
-
-#### "Record Not Found"
-
-- Confirm that the corresponding DNS record has been created in the HE.net control panel
-- Check if the record type matches (A record for IPv4, AAAA record for IPv6)
-- Verify that the domain status in HE.net is normal
-
-#### "Update Failed"
-
-- Check if network connection is normal
-- Confirm that the IP address format is correct
-- Verify that the target record has DDNS functionality enabled
-
-#### "Rate Limiting"
-
-- HE.net has limits on update frequency, recommend at least 5-minute intervals
-- Avoid frequent unnecessary updates
-- Check if other programs are simultaneously updating the same record
-
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### HE.net Response Codes
+### Common Issues
 
-| Response | Meaning | Status |
-|----------|---------|---------|
-| `good <ip>` | Update successful | ✅ |
-| `nochg <ip>` | IP address unchanged | ✅ |
-| `nohost` | Hostname doesn't exist or DDNS not enabled | ❌ |
-| `badauth` | Authentication failed | ❌ |
-| `badagent` | Client disabled | ❌ |
-| `abuse` | Updates too frequent | ❌ |
+- **Authentication Failed**: Check if dynamic DNS password is correct, confirm record has DDNS functionality enabled
+- **Domain Not Found**: Ensure record has been manually created in HE.net control panel, check domain spelling
+- **Record Update Failed**: Check if record has dynamic DNS enabled, confirm password corresponds to correct record
+- **Request Rate Limiting**: HE.net recommends update intervals of no less than 5 minutes, avoid frequent updates
 
-## API Limitations
+### HE.net Response Codes
 
-- **Update frequency**: Recommend intervals of no less than 5 minutes
-- **Record count**: Free accounts support multiple domains and records
-- **Response format**: Plain text response, not JSON format
+| Response Code   | Description           | Solution                    |
+| :-------------- | :-------------------- | :-------------------------- |
+| `good <ip>`     | Update successful     | Operation successful        |
+| `nochg <ip>`    | IP address unchanged  | Operation successful        |
+| `nohost`        | Hostname doesn't exist| Check record and DDNS setup |
+| `badauth`       | Authentication failed | Check dynamic DNS password  |
+| `badagent`      | Client disabled       | Contact HE.net support     |
+| `abuse`         | Updates too frequent  | Increase update interval    |
 
 ## Support and Resources
 
@@ -132,4 +109,4 @@ ddns --debug
 - [HE.net DDNS Documentation](https://dns.he.net/docs.html)
 - [HE.net Technical Support](https://he.net/contact.html)
 
-> HE.net is a professional network service provider offering stable DNS hosting services. Please ensure you have correctly configured DNS records in the control panel and enabled DDNS functionality before use.
+> ⚠️ **Verification Pending Status**: HE.net Provider lacks sufficient real-world testing. It is recommended to conduct thorough testing before using in production environments. If you encounter issues, please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).

+ 68 - 65
doc/providers/he.md

@@ -1,76 +1,78 @@
 # HE.net (Hurricane Electric) 配置指南
 
-> ⚠️ **重要提示:此provider等待验证**
->
-> HE.net缺少充分的真实环境测试,在使用前请仔细测试。如果您使用过程中遇到问题,请及时在 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 中反馈。
-
 ## 概述
 
-Hurricane Electric (HE.net) 是提供免费DNS托管服务的知名网络服务商,支持动态DNS更新。本 DDNS 项目支持通过HE.net的动态DNS密码进行认证。
+Hurricane Electric (HE.net) 是知名的网络服务商,提供免费的 DNS 托管服务,支持动态 DNS 记录更新。本 DDNS 项目通过 HE.net 的动态 DNS 密码进行认证。
+
+> ⚠️ **注意**:HE.net Provider 目前处于**待验证**状态,缺少充分的真实环境测试。请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。
+
+**重要限制**:HE.net **不支持自动创建记录**,必须先在 HE.net 控制面板中手动创建 DNS 记录。
 
-**重要限制**:HE.net **不支持自动创建记录**,必须先在HE.net控制面板中手动创建DNS记录。
+官网链接:
 
-## 认证方式
+- 官方网站:<https://he.net/>
+- 服务商控制台:<https://dns.he.net/>
 
-### 动态DNS密码认证
+## 认证信息
 
-HE.net使用专门的动态DNS密码进行认证,不使用账户登录密码。
+### 动态 DNS 密码认证
 
-#### 获取动态DNS密码
+HE.net 使用专门的动态 DNS 密码进行认证,不使用账户登录密码。
 
-1. 登录 [HE.net DNS管理](https://dns.he.net/)
-2. 选择要管理的域名
-3. 找到需要动态更新的记录
-4. 点击记录旁边的 **Generate a DDNS key** 或 **Enable entry for DDNS**
-5. 记录生成的DDNS密码
+需要提前创建DNS记录和开启DNS
+
+1. 在 [HE.net DNS 管理面板](https://dns.he.net)中选择要管理的域名
+2. **创建DNS记录**:手动创建 A (ipv4)或 AAAA (ipv6)记录
+3. **启用DDNS**:为记录启用动态 DNS 功能
+4. **获取密码**:点击旁边的 `Generate a DDNS key` 或 `Enable entry for DDNS`
 
 ```json
 {
     "dns": "he",
-    "token": "your_ddns_password"
+    "token": "your_ddns_key" // HE.net 动态 DNS 密码,不需要ID
 }
 ```
 
-- `token`:HE.net动态DNS密码
-- `dns`:固定为 `"he"`
-- `id`:**不需要设置**(HE.net不使用用户ID)
-
 ## 完整配置示例
 
 ```json
 {
-    "token": "your_ddns_password",
-    "dns": "he",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com", "server.example.com"],
-    "ipv6": ["home-v6.example.com"],
-    "ttl": 300
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "he",                        // 当前服务商
+    "token": "your_ddns_key",      // HE.net 动态 DNS 密码
+    "index4": ["public", 0],       // IPv4地址来源, 与A记录值对应
+    "ipv4": "ddns.newfuture.cc"    // IPv4 域名, 与A记录对应
 }
 ```
 
-## 可选参数
-
-| 参数   | 说明             | 范围         | 默认值 | 备注                       |
-|--------|------------------|--------------|--------|----------------------------|
-| `ttl`  | DNS记录生存时间  | 300-86400秒  | 自动    | 实际TTL由HE.net记录决定    |
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `he`                               | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | HE.net DDNS 密码               | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
+>
+> **注意**:HE.net 不支持 `id` 参数,仅使用 `token` (DDNS Key)进行认证; ttl固定为300s。
 
 ## 使用限制
 
-### 重要限制
-
-- ❌ **不支持自动创建记录**:必须先在HE.net控制面板中手动创建DNS记录
-- ⚠️ **仅支持更新**:只能更新现有记录的IP地址,不能创建新记录
-- 🔑 **专用密码**:每个记录都有独立的DDNS密码
-
-### 使用步骤
-
-1. **创建DNS记录**:在HE.net控制面板中手动创建A或AAAA记录
-2. **启用DDNS**:为记录启用动态DNS功能
-3. **获取密码**:记录每个记录的DDNS密码
-4. **配置DDNS**:使用对应的密码配置动态DNS客户端
-
-可以在 [HE.net DNS管理](https://dns.he.net/) 中查看和管理域名。
+- ❌ **不支持自动创建记录**:必须先在 HE.net 控制面板中手动创建 DNS 记录
+- ⚠️ **仅支持更新**:只能更新现有记录的 IP 地址,不能创建新记录
+- 🔑 **专用密码**:每个记录都有独立的 DDNS 密码
 
 ## 故障排除
 
@@ -79,31 +81,32 @@ HE.net使用专门的动态DNS密码进行认证,不使用账户登录密码
 启用调试日志查看详细信息:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### HE.net响应代码
+### 常见问题
 
-| 响应 | 含义 | 状态 |
-|------|------|------|
-| `good <ip>` | 更新成功 | ✅ |
-| `nochg <ip>` | IP地址无变化 | ✅ |
-| `nohost` | 主机名不存在或未启用DDNS | ❌ |
-| `badauth` | 认证失败 | ❌ |
-| `badagent` | 客户端被禁用 | ❌ |
-| `abuse` | 更新过于频繁 | ❌ |
+- **认证失败**:检查动态 DNS 密码是否正确,确认记录已启用 DDNS 功能
+- **域名未找到**:确保记录已在 HE.net 控制面板中手动创建,域名拼写无误
+- **记录更新失败**:检查记录是否已启用动态 DNS,确认密码对应正确的记录
+- **请求频率限制**:HE.net 建议更新间隔不少于 5 分钟,避免频繁更新
 
-## API限制
+### HE.net 响应代码
 
-- **更新频率**:建议间隔不少于5分钟
-- **记录数量**:免费账户支持多个域名和记录
-- **响应格式**:纯文本响应,非JSON格式
+| 响应代码        | 说明             | 解决方案           |
+| :------------- | :--------------- | :----------------- |
+| `good <ip>`    | 更新成功         | 操作成功           |
+| `nochg <ip>`   | IP地址无变化     | 操作成功           |
+| `nohost`       | 主机名不存在     | 检查记录和DDNS设置 |
+| `badauth`      | 认证失败         | 检查动态DNS密码    |
+| `badagent`     | 客户端被禁用     | 联系HE.net支持    |
+| `abuse`        | 更新过于频繁     | 增加更新间隔       |
 
 ## 支持与资源
 
-- [HE.net官网](https://he.net/)
-- [HE.net DNS管理](https://dns.he.net/)
-- [HE.net DDNS文档](https://dns.he.net/docs.html)
-- [HE.net技术支持](https://he.net/contact.html)
+- [HE.net 官网](https://he.net/)
+- [HE.net DNS 管理](https://dns.he.net/)
+- [HE.net DDNS 文档](https://dns.he.net/docs.html)
+- [HE.net 技术支持](https://he.net/contact.html)
 
-> HE.net是专业的网络服务商,提供稳定的DNS托管服务。使用前请确保已在控制面板中正确配置DNS记录并启用DDNS功能
+> ⚠️ **待验证状态**:HE.net Provider 缺少充分的真实环境测试,建议在生产环境使用前进行充分测试。如遇问题请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈

+ 94 - 102
doc/providers/huaweidns.en.md

@@ -1,161 +1,153 @@
 # Huawei Cloud DNS Configuration Guide
 
-> ⚠️ **Important Notice: This provider is awaiting verification**
->
-> Huawei Cloud DNS lacks sufficient real-world testing. Please test carefully before use. If you encounter any issues, please report them in [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
-
 ## Overview
 
-Huawei Cloud DNS is an authoritative DNS resolution service provided by Huawei Cloud, featuring high availability, high scalability, and high security. This DDNS project supports authentication through Huawei Cloud Access Key.
+Huawei Cloud DNS is an authoritative DNS resolution service provided by Huawei Cloud, featuring high availability, high scalability, and high security, supporting dynamic DNS record creation and updates. This DDNS project authenticates through Access Key ID and Secret Access Key.
+
+> ⚠️ **Important Note**: Huawei Cloud DNS Provider is currently in **verification pending** status, lacking sufficient real-world testing. Please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
+
+Official Links:
+
+- Official Website: <https://www.huaweicloud.com/product/dns.html>
+- Provider Console: <https://console.huaweicloud.com/dns/>
 
-## Authentication Method
+## Authentication Information
 
 ### Access Key Authentication
 
-Huawei Cloud DNS uses Access Key ID and Secret Access Key for API authentication, which is the standard authentication method for Huawei Cloud.
+Use Huawei Cloud Access Key ID and Secret Access Key for authentication.
 
-#### Getting Access Keys
+#### Obtaining Authentication Information
 
-1. Log in to the [Huawei Cloud Console](https://www.huaweicloud.com/)
+1. Log in to [Huawei Cloud Console](https://www.huaweicloud.com/)
 2. Go to **My Credentials** > **Access Keys**
-3. Click the "Create Access Key" button
-4. Copy the generated **Access Key ID** and **Secret Access Key**, and store them securely
-5. Ensure the account has the necessary DNS resolution permissions
-
-#### Configuration Example
+3. Click "Add Access Key" button
+4. Copy the generated **Access Key ID** and **Secret Access Key**, please keep them safe
+5. Ensure the account has operation permissions for Cloud DNS
 
 ```json
 {
     "dns": "huaweidns",
-    "id": "your_access_key_id",
-    "token": "your_secret_access_key"
+    "id": "your_access_key_id",     // Huawei Cloud Access Key ID
+    "token": "your_secret_access_key" // Huawei Cloud Secret Access Key
 }
 ```
 
-- `id`: Huawei Cloud Access Key ID
-- `token`: Huawei Cloud Secret Access Key
-- `dns`: Fixed as `"huaweidns"`
+## Permission Requirements
+
+Ensure the Huawei Cloud account has the following permissions:
+
+- **DNS Administrator**: Full management permissions for Cloud DNS (recommended)
+- **DNS ReadOnlyAccess + Custom Write Permissions**: Fine-grained permission control
+
+You can view and configure permissions in [Identity and Access Management](https://console.huaweicloud.com/iam/).
 
 ## Complete Configuration Example
 
 ```json
 {
-    "dns": "huaweidns",
-    "id": "your_access_key_id",
-    "token": "your_secret_access_key",
-    "endpoint": "https://dns.myhuaweicloud.com",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["example.com"],
-    "ipv6": ["dynamic.mydomain.com"],
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "huaweidns",                 // Current provider
+    "id": "your_access_key_id",         // Huawei Cloud Access Key ID
+    "token": "your_secret_access_key",  // Huawei Cloud Secret Access Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domain
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domain
+    "endpoint": "https://dns.myhuaweicloud.com", // API endpoint
+    "line": "default",                      // Resolution line
+    "ttl": 600                              // DNS record TTL (seconds)
 }
 ```
 
-## Optional Parameters
-
-| Parameter | Default Value                         | Description                    | Range/Options                                            |
-|-----------|---------------------------------------|--------------------------------|----------------------------------------------------------|
-| `ttl`     | auto                                  | DNS record TTL (seconds)       | 1-86400                                                  |
-| `line`    | `"default"`                          | Resolution line type           | `"default"`, `"unicom"`, `"telecom"`, `"mobile"`, `"overseas"`, `"edu"`, etc. |
-| `endpoint`| `"https://dns.myhuaweicloud.com"`    | API service endpoint           | See endpoint list below                                  |
-
-> **Note**: The value ranges for `ttl` and `line` may vary depending on the service plan.
+### Parameter Description
+
+| Parameter | Description      | Type           | Value Range/Options                     | Default                        | Parameter Type |
+| :-------: | :--------------- | :------------- | :------------------------------------- | :----------------------------- | :------------- |
+| dns       | Provider ID      | String         | `huaweidns`                            | None                           | Provider Param |
+| id        | Authentication ID| String         | Huawei Cloud Access Key ID             | None                           | Provider Param |
+| token     | Authentication Key| String        | Huawei Cloud Secret Access Key         | None                           | Provider Param |
+| index4    | IPv4 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default`                      | Common Config  |
+| index6    | IPv6 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default`                      | Common Config  |
+| ipv4      | IPv4 Domain      | Array          | Domain list                            | None                           | Common Config  |
+| ipv6      | IPv6 Domain      | Array          | Domain list                            | None                           | Common Config  |
+| endpoint  | API Endpoint     | URL            | [Reference below](#endpoint)           | `https://dns.myhuaweicloud.com`| Provider Param |
+| line      | Resolution Line  | String         | [Reference below](#line)               | `default`                      | Provider Param |
+| ttl       | TTL Time         | Integer (seconds)| 1~2147483647                         | `300`                          | Provider Param |
+| proxy     | Proxy Settings   | Array          | [Reference](../json.en.md#proxy)      | None                           | Common Network |
+| ssl       | SSL Verification | Boolean/String | `"auto"`, `true`, `false`              | `auto`                         | Common Network |
+| cache     | Cache Settings   | Boolean/String | `true`, `false`, `filepath`            | `true`                         | Common Config  |
+| log       | Log Config       | Object         | [Reference](../json.en.md#log)        | None                           | Common Config  |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Param**: Supported by current provider, values related to current provider
+>
+> **Note**: The supported values for `ttl` and `line` may vary depending on different service plans.
 
-### Available Endpoints
+### endpoint
 
-- **Global Service**: `https://dns.myhuaweicloud.com` (Default, Recommended)
+Huawei Cloud DNS supports multiple regional endpoints. You can choose the optimal node based on region and network environment:
 
-#### China Mainland
+#### Domestic Nodes
 
-- **North China-Beijing4**: `https://dns.cn-north-4.myhuaweicloud.com`
-- **East China-Shanghai1**: `https://dns.cn-east-3.myhuaweicloud.com`
+- **Global Service (Recommended)**: `https://dns.myhuaweicloud.com`
+- **North China-Beijing 4**: `https://dns.cn-north-4.myhuaweicloud.com`
+- **East China-Shanghai 1**: `https://dns.cn-east-3.myhuaweicloud.com`
 - **South China-Guangzhou**: `https://dns.cn-south-1.myhuaweicloud.com`
-- **North China-Ulanqab1**: `https://dns.cn-north-9.myhuaweicloud.com`
-- **Southwest China-Guiyang1**: `https://dns.cn-southwest-2.myhuaweicloud.com`
+- **North China-Ulanqab 1**: `https://dns.cn-north-9.myhuaweicloud.com`
+- **Southwest-Guiyang 1**: `https://dns.cn-southwest-2.myhuaweicloud.com`
 
-#### International Regions
+#### Overseas Nodes
 
 - **Asia Pacific-Singapore**: `https://dns.ap-southeast-3.myhuaweicloud.com`
 - **Asia Pacific-Hong Kong**: `https://dns.ap-southeast-1.myhuaweicloud.com`
 - **Asia Pacific-Bangkok**: `https://dns.ap-southeast-2.myhuaweicloud.com`
 - **Africa-Johannesburg**: `https://dns.af-south-1.myhuaweicloud.com`
 - **Latin America-Santiago**: `https://dns.la-south-2.myhuaweicloud.com`
-- **Latin America-Mexico City1**: `https://dns.la-north-2.myhuaweicloud.com`
-- **Latin America-Sao Paulo1**: `https://dns.sa-brazil-1.myhuaweicloud.com`
+- **Latin America-Mexico City 1**: `https://dns.la-north-2.myhuaweicloud.com`
+- **Latin America-São Paulo 1**: `https://dns.sa-brazil-1.myhuaweicloud.com`
 
-#### Endpoint Selection Recommendations
+> **Note**: It is recommended to use the default endpoint `https://dns.myhuaweicloud.com`, as Huawei Cloud will automatically route to the optimal node. Specific regional endpoints are only needed in special network environments.
 
-- **Network Optimization**: Choose nearby regional endpoints if experiencing high latency in specific regions
-- **Compliance Requirements**: Select appropriate regional endpoints for data sovereignty requirements
+### line
 
-> **Note**: Huawei Cloud DNS automatically selects the optimal node based on the user's network location. It's recommended to use the default global service endpoint. Only specify regional endpoints in special network environments or when there are specific compliance requirements.
-
-## Permission Requirements
-
-Ensure the Huawei Cloud account has the following permissions:
-
-- **DNS Administrator**: Full DNS management permissions (Recommended)
-- **DNS ReadOnlyAccess + Custom Write Permissions**: Fine-grained permission control
-
-You can view and configure permissions in the [Identity and Access Management](https://console.huaweicloud.com/iam/) console.
+The `line` parameter specifies DNS resolution lines. For supported lines in Huawei Cloud: [Configure Custom Line Resolution](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0018.html).
 
 ## Troubleshooting
 
-### Common Issues
-
-#### "Signature Error" or "Authentication Failed"
-
-- Check if Access Key ID and Secret Access Key are correct
-- Verify the keys haven't been deleted or disabled
-- Confirm account has sufficient permissions
-
-#### "Domain Does Not Exist"
-
-- Verify the domain is added to Huawei Cloud DNS
-- Check domain spelling in configuration
-- Ensure domain status is normal
-
-#### "Record Operation Failed"
-
-- Check if subdomain has conflicting records
-- Verify TTL value is within acceptable range
-- Confirm resolution line setting is correct
-- Check if domain plan supports the feature
-
-#### "API Call Limit Exceeded"
-
-- Huawei Cloud API has rate limiting
-- Increase update intervals appropriately
-- Check if other programs are calling the API simultaneously
-
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### Common Error Codes
+### Common Issues
 
-- **APIGW.0301**: Authentication failed
-- **DNS.0101**: Domain does not exist
-- **DNS.0102**: Record set does not exist
-- **DNS.0103**: Record set already exists
-- **DNS.0203**: Request rate too high
+- **Authentication Failed**: Check if Access Key ID and Secret Access Key are correct, confirm the keys have not been deleted or disabled
+- **Domain Not Found**: Ensure the domain has been added to Huawei Cloud DNS resolution, check spelling accuracy, and confirm the domain is active
+- **Record Creation Failed**: Check for conflicting records on subdomain, ensure reasonable TTL settings, and confirm modification permissions
+- **Request Rate Limiting**: Huawei Cloud API has call frequency limits, reduce request frequency
 
-## API Limitations
+### Common Error Codes
 
-- **Request Rate**: Varies by service plan
-- **Single Query**: Maximum 500 records returned
-- **Domain Count**: Limited based on service plan
+| Error Code     | Description          | Solution                |
+| :------------- | :------------------- | :---------------------- |
+| APIGW.0301     | Authentication failed| Check access keys       |
+| DNS.0101       | Domain not found     | Check domain configuration |
+| DNS.0102       | Record set not found | Check record settings   |
+| DNS.0103       | Record set exists    | Check conflicting records |
+| DNS.0203       | Request rate too high| Reduce request frequency |
 
 ## Support and Resources
 
-- [Huawei Cloud DNS Documentation](https://support.huaweicloud.com/dns/)
-- [Huawei Cloud DNS API Reference](https://support.huaweicloud.com/api-dns/)
+- [Huawei Cloud DNS Product Documentation](https://support.huaweicloud.com/dns/)
+- [Huawei Cloud DNS API Documentation](https://support.huaweicloud.com/api-dns/)
 - [Huawei Cloud Console](https://console.huaweicloud.com/dns/)
 - [Huawei Cloud Technical Support](https://support.huaweicloud.com/)
 
-> It is recommended to use sub-users and grant only the necessary DNS permissions to improve security. Regularly rotate access keys to ensure account security.
+> ⚠️ **Verification Pending Status**: Huawei Cloud DNS Provider lacks sufficient real-world testing. It is recommended to conduct thorough testing before using in production environments. If you encounter issues, please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).

+ 80 - 82
doc/providers/huaweidns.md

@@ -1,44 +1,43 @@
-# 华为云DNS 配置指南
-
-> ⚠️ **重要提示:此provider等待验证**
->
-> 华为云DNS缺少充分的真实环境测试,在使用前请仔细测试。如果您使用过程中遇到问题,请及时在 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 中反馈。
+# 华为云 DNS 配置指南
 
 ## 概述
 
-华为云DNS是华为云提供的权威DNS解析服务,具有高可用性、高扩展性和高安全性。本 DDNS 项目支持通过华为云访问密钥进行认证。
+华为云 DNS 是华为云提供的权威 DNS 解析服务,具有高可用性、高扩展性和高安全性,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 Access Key ID 和 Secret Access Key 进行 API 认证。
+
+> ⚠️ **注意**:华为云 DNS Provider 目前处于**待验证**状态,缺少充分的真实环境测试。请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。
+
+官网链接:
 
-## 认证方式
+- 官方网站:<https://www.huaweicloud.com/product/dns.html>
+- 服务商控制台:<https://console.huaweicloud.com/dns/>
 
-### 访问密钥认证
+## 认证信息
 
-华为云DNS使用Access Key ID和Secret Access Key进行API认证,这是华为云标准的认证方式。
+### Access Key 认证
 
-#### 获取访问密钥
+使用华为云 Access Key ID 和 Secret Access Key 进行认证。
+
+#### 获取认证信息
 
 1. 登录 [华为云控制台](https://www.huaweicloud.com/)
 2. 进入 **我的凭证** > **访问密钥**
 3. 点击"新增访问密钥"按钮
 4. 复制生成的 **Access Key ID** 和 **Secret Access Key**,请妥善保存
-5. 确保账号具有云解析DNS的操作权限
+5. 确保账号具有云解析 DNS 的操作权限
 
 ```json
 {
     "dns": "huaweidns",
-    "id": "your_access_key_id",
-    "token": "your_secret_access_key"
+    "id": "your_access_key_id",     // 华为云 Access Key ID
+    "token": "your_secret_access_key" // 华为云 Secret Access Key
 }
 ```
 
-- `id`:华为云 Access Key ID
-- `token`:华为云 Secret Access Key
-- `dns`:固定为 `"huaweidns"`
-
 ## 权限要求
 
 确保使用的华为云账号具有以下权限:
 
-- **DNS Administrator**:云解析DNS完全管理权限(推荐)
+- **DNS Administrator**:云解析 DNS 完全管理权限(推荐)
 - **DNS ReadOnlyAccess + 自定义写权限**:精细化权限控制
 
 可以在 [统一身份认证服务](https://console.huaweicloud.com/iam/) 中查看和配置权限。
@@ -47,36 +46,54 @@
 
 ```json
 {
-    "dns": "huaweidns",
-    "id": "your_access_key_id",
-    "token": "your_secret_access_key",
-    "endpoint": "https://dns.myhuaweicloud.com",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["example.com"],
-    "ipv6": ["dynamic.mydomain.com"],
-    "ttl": 600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "huaweidns",                 // 当前服务商
+    "id": "your_access_key_id",         // 华为云 Access Key ID
+    "token": "your_secret_access_key",  // 华为云 Secret Access Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "endpoint": "https://dns.myhuaweicloud.com", // API端点
+    "line": "default",                      // 解析线路
+    "ttl": 600                              // DNS记录TTL(秒)
 }
 ```
 
-## 可选参数
-
-## 可选参数一览
-
-| 参数名      | 默认值                                   | 说明                                   | 取值范围/选项                         |
-|-------------|------------------------------------------|----------------------------------------|----------------------------------------|
-| `ttl`       | 自动                                    | DNS记录生存时间(秒)                  | 1-86400                                |
-| `line`      | `"default"`                              | 解析线路类型                           | `"default"`、`"unicom"`、`"telecom"`、`"mobile"`、`"overseas"`、`"edu"` 等 |
-| `endpoint`  | `"https://dns.myhuaweicloud.com"`         | API服务端点(区域节点)                | 见下方端点列表                          |
-
-> **注意**:`ttl` 和 `line` 的取值范围可能因套餐类型而异。
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `huaweidns`                        | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | 华为云 Access Key ID               | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | 华为云 Secret Access Key           | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| endpoint| API 端点      | URL            | [参考下方](#endpoint)              | `https://dns.myhuaweicloud.com` | 服务商参数 |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `default` | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | 1~2147483647                   | `300`     | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
+>
+> **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
 
-### 可用端点
+### endpoint
 
-- **全球服务**:`https://dns.myhuaweicloud.com`(默认,推荐)
+华为云 DNS 支持多个区域端点,可根据区域和网络环境选择最优节点:
 
-#### 中国大陆
+#### 国内节点
 
+- **全球服务(推荐)**:`https://dns.myhuaweicloud.com`
 - **华北-北京四**:`https://dns.cn-north-4.myhuaweicloud.com`
 - **华东-上海一**:`https://dns.cn-east-3.myhuaweicloud.com`
 - **华南-广州**:`https://dns.cn-south-1.myhuaweicloud.com`
@@ -93,63 +110,44 @@
 - **拉美-墨西哥城一**:`https://dns.la-north-2.myhuaweicloud.com`
 - **拉美-圣保罗一**:`https://dns.sa-brazil-1.myhuaweicloud.com`
 
-#### 选择端点的建议
+> **注意**:建议使用默认端点 `https://dns.myhuaweicloud.com`,华为云会自动路由到最优节点。只有在特殊网络环境下才需要指定特定区域端点。
 
-- **网络优化**:如果在特定地区网络延迟较高,可选择就近的区域端点
-- **合规要求**:如果有数据主权要求,选择对应区域的端点
+### line
 
-> **注意**:华为云DNS会根据用户的网络位置自动选择最优节点,推荐使用默认的全球服务端点。只有在特殊网络环境或有特定合规要求时,才需要指定区域端点。
->
-## 故障排除
+`line` 参数指定 DNS 解析线路,华为云支持的线路:[配置自定义线路解析](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0018.html)。
 
-### 常见问题
-
-#### "签名错误"或"认证失败"
-
-- 检查Access Key ID和Secret Access Key是否正确
-- 确认密钥没有被删除或禁用
-- 验证账号权限是否足够
-
-#### "域名不存在"
-
-- 确认域名已添加到华为云DNS解析
-- 检查域名拼写是否正确
-- 验证域名状态是否正常
-
-#### "记录操作失败"
-
-- 检查子域名是否存在冲突记录
-- 确认TTL值在合理范围内
-- 验证解析线路设置是否正确
-- 检查域名套餐是否支持该功能
-
-#### "API调用超出限制"
-
-- 华为云API有调用频率限制
-- 适当增加更新间隔
-- 检查是否有其他程序同时调用API
+## 故障排除
 
 ### 调试模式
 
 启用调试日志查看详细信息:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### 常见问题
+
+- **认证失败**:检查 Access Key ID 和 Secret Access Key 是否正确,确认密钥没有被删除或禁用
+- **域名未找到**:确保域名已添加到华为云 DNS 解析,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名是否有冲突记录,TTL 设置合理,确认有修改权限
+- **请求频率限制**:华为云 API 有调用频率限制,降低请求频率
+
 ### 常见错误代码
 
-- **APIGW.0301**:认证失败
-- **DNS.0101**:域名不存在  
-- **DNS.0102**:记录集不存在
-- **DNS.0103**:记录集已存在
-- **DNS.0203**:请求频率过高
+| 错误代码        | 说明           | 解决方案           |
+| :------------- | :------------- | :----------------- |
+| APIGW.0301     | 认证失败       | 检查访问密钥       |
+| DNS.0101       | 域名不存在     | 检查域名配置       |
+| DNS.0102       | 记录集不存在   | 检查记录设置       |
+| DNS.0103       | 记录集已存在   | 检查冲突记录       |
+| DNS.0203       | 请求频率过高   | 降低请求频率       |
 
 ## 支持与资源
 
-- [华为云DNS产品文档](https://support.huaweicloud.com/dns/)
-- [华为云DNS API文档](https://support.huaweicloud.com/api-dns/)
+- [华为云 DNS 产品文档](https://support.huaweicloud.com/dns/)
+- [华为云 DNS API 文档](https://support.huaweicloud.com/api-dns/)
 - [华为云控制台](https://console.huaweicloud.com/dns/)
 - [华为云技术支持](https://support.huaweicloud.com/)
 
-> 建议使用子用户并仅授予必要的DNS权限,以提高安全性。定期轮换访问密钥以确保账号安全
+> ⚠️ **待验证状态**:华为云 DNS Provider 缺少充分的真实环境测试,建议在生产环境使用前进行充分测试。如遇问题请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈

+ 61 - 85
doc/providers/namesilo.en.md

@@ -1,127 +1,102 @@
 # NameSilo DNS Configuration Guide
 
-> **Important Note**: The NameSilo provider implementation is pending verification. Please test thoroughly before using in production environments.
-
 ## Overview
 
-NameSilo is a US-based domain registrar and DNS service provider that offers reliable domain management and DNS resolution services. This DDNS project supports automatic DNS record management through the NameSilo API.
+NameSilo is a well-known US-based domain registrar and DNS service provider that offers reliable domain management and DNS resolution services, supporting dynamic DNS record creation and updates. This DDNS project authenticates through API Key.
 
-## Authentication Method
+> ⚠️ **Important Note**: NameSilo Provider is currently in **verification pending** status, lacking sufficient real-world testing. Please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
 
-### API Key Authentication
+Official Links:
 
-NameSilo uses API Key for authentication, which is the only available authentication method.
+- Official Website: <https://www.namesilo.com/>
+- Provider Console: <https://www.namesilo.com/account_home.php>
 
-```json
-{
-    "dns": "namesilo",
-    "token": "your_api_key_here"
-}
-```
+## Authentication Information
+
+### API Key Authentication
 
-## Getting Authentication Information
+NameSilo uses API Key for authentication, which is the only authentication method.
 
-### API Key
+#### Obtaining Authentication Information
 
 1. Log in to [NameSilo Console](https://www.namesilo.com/account_home.php)
 2. Go to "Account Options" → "API Manager" or visit <https://www.namesilo.com/account/api-manager>
 3. Generate a new API Key
-4. Record the generated API Key and keep it secure
 
 > **Note**: The API Key has full account permissions. Please keep it secure and do not share it with others.
 
-## Permission Requirements
-
-NameSilo API Key has the following permissions:
-- **Domain Management**: View and manage all domains in your account
-- **DNS Record Management**: Create, read, update, and delete DNS records
-- **Domain Information Query**: Get domain registration information and status
-
-## Configuration Examples
-
-### Basic Configuration
-
 ```json
 {
     "dns": "namesilo",
-    "token": "c40031261ee449dda629d2df14e9cb63",
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "index4": ["default"]
+    "token": "your_api_key_here" // NameSilo API Key, no ID required
 }
 ```
 
-### Complete Configuration Example
+## Complete Configuration Example
 
 ```json
 {
-    "dns": "namesilo",
-    "token": "c40031261ee449dda629d2df14e9cb63",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "ipv6": ["ddns.example.com"],
-    "ttl": 3600
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "namesilo",                  // Current provider
+    "token": "c40031261ee449dda629d2df14e9cb63", // NameSilo API Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domain
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domain
+    "ttl": 3600                             // DNS record TTL (seconds)
 }
 ```
 
-## Optional Parameters
-
-| Parameter | Description | Type | Default |
-|-----------|-------------|------|---------|
-| `ttl` | TTL value for DNS records (seconds) | int | 7207 |
-
-> **Note**: NameSilo TTL minimum value is 300 seconds (5 minutes), maximum value is 2592000 seconds (30 days).
-
-### Custom API Endpoint
-
-In special circumstances, you may need to customize the endpoint:
-
-```json
-{
-    "endpoint": "https://www.namesilo.com"
-}
-```
-
-> **Note**: The official NameSilo API endpoint is `https://www.namesilo.com`. It's not recommended to modify this unless using a proxy service.
+### Parameter Description
+
+| Parameter | Description      | Type           | Value Range/Options                     | Default   | Parameter Type |
+| :-------: | :--------------- | :------------- | :------------------------------------- | :-------- | :------------- |
+| dns       | Provider ID      | String         | `namesilo`                             | None      | Provider Param |
+| token     | Authentication Key| String        | NameSilo API Key                       | None      | Provider Param |
+| index4    | IPv4 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default` | Common Config  |
+| index6    | IPv6 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default` | Common Config  |
+| ipv4      | IPv4 Domain      | Array          | Domain list                            | None      | Common Config  |
+| ipv6      | IPv6 Domain      | Array          | Domain list                            | None      | Common Config  |
+| ttl       | TTL Time         | Integer (seconds)| 300 ~ 2592000                       | `7200`    | Provider Param |
+| proxy     | Proxy Settings   | Array          | [Reference](../json.en.md#proxy)      | None      | Common Network |
+| ssl       | SSL Verification | Boolean/String | `"auto"`, `true`, `false`              | `auto`    | Common Network |
+| cache     | Cache Settings   | Boolean/String | `true`, `false`, `filepath`            | `true`    | Common Config  |
+| log       | Log Config       | Object         | [Reference](../json.en.md#log)        | None      | Common Config  |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Param**: Supported by current provider, values related to current provider
+>
+> **Note**: NameSilo does not support `id` parameter, only uses `token` for authentication.
+> **Note**: NameSilo official API endpoint is `https://www.namesilo.com`, it's not recommended to modify unless using a proxy service.
 
 ## Troubleshooting
 
-### Common Errors
-
-#### "Invalid API key"
-- Check if the API Key is correct
-- Ensure the API Key is not disabled
-- Verify account status is normal
-
-#### "Domain not found"
-- Confirm the domain is added to your NameSilo account
-- Check if the domain spelling is correct
-- Verify the domain status is Active
-
-#### "Record creation failed"
-- Check if the subdomain format is correct
-- Ensure TTL value is within allowed range (300-2592000 seconds)
-- Verify there are no conflicting records
-
-#### "API request limit exceeded"
-- NameSilo has API call rate limits
-- Increase update intervals appropriately
-- Avoid concurrent API calls
-
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
 ddns -c config.json --debug
 ```
 
+### Common Issues
+
+- **Authentication Failed**: Check if API Key is correct, confirm API Key is not disabled, verify account status is normal
+- **Domain Not Found**: Ensure domain has been added to NameSilo account, check spelling accuracy, confirm domain is in active status
+- **Record Creation Failed**: Check subdomain format is correct, TTL value is within allowed range (300-2592000 seconds), verify there are no conflicting records
+- **Request Rate Limiting**: NameSilo has API call frequency limits (recommended maximum 60 per minute), reduce request frequency
+
 ### API Response Codes
 
-- **300**: Success
-- **110**: Domain does not exist
-- **280**: Invalid domain format
-- **200**: Invalid API Key
+| Response Code | Description        | Solution                |
+| :------------ | :----------------- | :---------------------- |
+| 300           | Success            | Operation successful    |
+| 110           | Domain not found   | Check domain configuration |
+| 280           | Invalid domain format | Check domain format   |
+| 200           | Invalid API Key    | Check API key           |
 
 ## API Limitations
 
@@ -129,10 +104,11 @@ ddns -c config.json --debug
 - **Domain Count**: Limited based on account type
 - **Record Count**: Maximum 100 DNS records per domain
 
-## Related Links
+## Support and Resources
 
+- [NameSilo Official Website](https://www.namesilo.com/)
 - [NameSilo API Documentation](https://www.namesilo.com/api-reference)
 - [NameSilo Console](https://www.namesilo.com/account_home.php)
 - [NameSilo API Manager](https://www.namesilo.com/account/api-manager)
 
-> **Security Tip**: It's recommended to regularly rotate API Keys and monitor account activity logs to ensure secure API usage.
+> ⚠️ **Verification Pending Status**: NameSilo Provider lacks sufficient real-world testing. It is recommended to conduct thorough testing before using in production environments. If you encounter issues, please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).

+ 59 - 83
doc/providers/namesilo.md

@@ -1,113 +1,79 @@
 # NameSilo DNS 配置指南
 
-> **重要说明**:NameSilo 提供商实现正在等待验证,请在生产环境使用前进行充分测试。
-
 ## 概述
 
-NameSilo 是一家美国域名注册商和DNS服务提供商,提供可靠的域名管理和DNS解析服务。本 DDNS 项目支持通过 NameSilo API 进行 DNS 记录的自动管理
+NameSilo 是美国知名的域名注册商和 DNS 服务提供商,提供可靠的域名管理和 DNS 解析服务,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 API Key 进行认证
 
-## 认证方式
+> ⚠️ **注意**:NameSilo Provider 目前处于**待验证**状态,缺少充分的真实环境测试。请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈。
 
-### API Key 认证
+官网链接:
 
-NameSilo 使用 API Key 进行身份验证,这是唯一的认证方式。
+- 官方网站:<https://www.namesilo.com/>
+- 服务商控制台:<https://www.namesilo.com/account_home.php>
 
-```json
-{
-    "dns": "namesilo",
-    "token": "your_api_key_here"
-}
-```
+## 认证信息
 
-## 获取认证信息
+### API Key 认证
 
-### API Key
+NameSilo 使用 API Key 进行身份验证,这是唯一的认证方式。
+
+#### 获取认证信息
 
 1. 登录 [NameSilo 控制台](https://www.namesilo.com/account_home.php)
 2. 进入「Account Options」→「API Manager」或访问 <https://www.namesilo.com/account/api-manager>
 3. 生成新的 API Key
-4. 记录下生成的 API Key,请妥善保存
 
 > **注意**:API Key 具有账户的完整权限,请确保妥善保管,不要泄露给他人。
 
-## 权限要求
-
-NameSilo API Key 具有以下权限:
-- **域名管理**:查看和管理您账户下的所有域名
-- **DNS记录管理**:创建、读取、更新和删除DNS记录
-- **域名信息查询**:获取域名注册信息和状态
-
-## 配置示例
-
-### 基本配置
-
 ```json
 {
     "dns": "namesilo",
-    "token": "c40031261ee449dda629d2df14e9cb63",
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "index4": ["default"]
+    "token": "your_api_key_here" // NameSilo API Key, ID 不需要
 }
 ```
 
-### 完整配置示例
+## 完整配置示例
 
 ```json
 {
-    "dns": "namesilo",
-    "token": "c40031261ee449dda629d2df14e9cb63",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["ddns.example.com", "www.example.com"],
-    "ipv6": ["ddns.example.com"],
-    "ttl": 3600
-}
-```
-
-## 可选参数
-
-| 参数 | 说明 | 类型 | 默认值 |
-|------|------|------|-------|
-| `ttl` | DNS记录的TTL值(秒) | int | 7207 |
-
-> **注意**:NameSilo TTL 最小值为 300 秒(5分钟),最大值为 2592000 秒(30天)。
-
-### 自定义API端点
-
-在特殊情况下可能需要自定义端点:
-
-```json
-{
-    "endpoint": "https://www.namesilo.com"
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "namesilo",                  // 当前服务商
+    "token": "c40031261ee449dda629d2df14e9cb63", // NameSilo API Key
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "ttl": 3600                             // DNS记录TTL(秒)
 }
 ```
 
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `namesilo`                         | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | NameSilo API Key                   | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ttl     | TTL 时间      | 整数(秒)     | 300 ~ 2592000                | `7200`    | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
+>
+> **注意**:NameSilo 不支持 `id` 参数,仅使用 `token` 进行认证。
 > **注意**:NameSilo 官方 API 端点为 `https://www.namesilo.com`,除非使用代理服务,否则不建议修改。
 
 ## 故障排除
 
-### 常见错误
-
-#### "Invalid API key"
-- 检查 API Key 是否正确
-- 确认 API Key 没有被禁用
-- 验证账户状态是否正常
-
-#### "Domain not found" 
-- 确认域名已添加到 NameSilo 账户
-- 检查域名拼写是否正确
-- 验证域名状态是否为 Active
-
-#### "Record creation failed"
-- 检查子域名格式是否正确
-- 确认 TTL 值在允许范围内(300-2592000秒)
-- 验证是否存在冲突的记录
-
-#### "API request limit exceeded"
-- NameSilo 有 API 调用频率限制
-- 适当增加更新间隔
-- 避免并发调用 API
-
 ### 调试模式
 
 启用调试日志查看详细信息:
@@ -116,12 +82,21 @@ NameSilo API Key 具有以下权限:
 ddns -c config.json --debug
 ```
 
+### 常见问题
+
+- **认证失败**:检查 API Key 是否正确,确认 API Key 没有被禁用,验证账户状态是否正常
+- **域名未找到**:确保域名已添加到 NameSilo 账户,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名格式是否正确,TTL 值在允许范围内(300-2592000秒),验证是否存在冲突记录
+- **请求频率限制**:NameSilo 有 API 调用频率限制(建议每分钟不超过 60 次),降低请求频率
+
 ### API 响应代码
 
-- **300**:成功
-- **110**:域名不存在
-- **280**:无效的域名格式
-- **200**:无效的 API Key
+| 响应代码 | 说明         | 解决方案           |
+| :------ | :----------- | :----------------- |
+| 300     | 成功         | 操作成功           |
+| 110     | 域名不存在   | 检查域名配置       |
+| 280     | 无效的域名格式 | 检查域名格式       |
+| 200     | 无效的API Key | 检查API密钥        |
 
 ## API 限制
 
@@ -129,10 +104,11 @@ ddns -c config.json --debug
 - **域名数量**:根据账户类型不同而限制
 - **记录数量**:每个域名最多 100 条 DNS 记录
 
-## 相关链接
+## 支持与资源
 
+- [NameSilo 官网](https://www.namesilo.com/)
 - [NameSilo API 文档](https://www.namesilo.com/api-reference)
 - [NameSilo 控制台](https://www.namesilo.com/account_home.php)
 - [NameSilo API Manager](https://www.namesilo.com/account/api-manager)
 
-> **安全提示**:建议定期轮换 API Key,并监控账户活动日志,确保 API 使用安全
+> ⚠️ **待验证状态**:NameSilo Provider 缺少充分的真实环境测试,建议在生产环境使用前进行充分测试。如遇问题请通过 [GitHub Issues](https://github.com/NewFuture/DDNS/issues) 反馈

+ 68 - 82
doc/providers/noip.en.md

@@ -2,33 +2,18 @@
 
 ## Overview
 
-No-IP is a popular dynamic DNS service that supports the standard DDNS dynamic update protocol with Basic Auth authentication. This DDNS project supports authentication through No-IP username and password or DDNS KEY.
+No-IP is a popular dynamic DNS service provider that supports the standard DDNS dynamic update protocol with Basic Auth authentication, supporting dynamic DNS record creation and updates. This DDNS project supports authentication through username and password or DDNS KEY.
 
-## Authentication Methods
+Official Links:
 
-1. Register or log in to [No-IP website](https://www.noip.com/)
-2. Use your registered username and password
-3. Create hostnames in the control panel
+- Official Website: <https://www.noip.com/>
+- Provider Console: <https://www.noip.com/members/>
 
-### Username and Password Authentication
+## Authentication Information
 
-Uses No-IP account username and password for authentication, which is the simplest authentication method.
-
-```json
-{
-    "dns": "noip",
-    "id": "your_username",
-    "token": "your_password"
-}
-```
+### 1. DDNS KEY + ID Authentication (Recommended)
 
-- `id`: No-IP username
-- `token`: No-IP password
-- `dns`: Fixed as `"noip"`
-
-### DDNS KEY + ID Authentication (Recommended)
-
-Uses DDNS ID and DDNS KEY for authentication, which is more secure.
+Use DDNS ID and DDNS KEY for authentication, which is more secure.
 
 #### Getting DDNS KEY
 
@@ -40,94 +25,95 @@ Uses DDNS ID and DDNS KEY for authentication, which is more secure.
 ```json
 {
     "dns": "noip",
-    "id": "your_ddns_id",
-    "token": "your_ddns_key"
+    "id": "your_ddns_id",    // DDNS ID
+    "token": "your_ddns_key" // DDNS KEY
 }
 ```
 
-- `id`: DDNS ID
-- `token`: DDNS KEY
-- `dns`: Fixed as `"noip"`
+### 2. Username and Password Authentication
 
-## Complete Configuration Example
+Use No-IP account username and password for authentication, which is the simplest authentication method.
 
-```json
-{
-    "id": "myusername",
-    "token": "mypassword",
-    "dns": "noip",
-    "ipv4": ["home.example.com", "office.example.com"],
-    "index4": ["public"]
-}
-```
+#### Account Password
 
-### Configuration with Optional Parameters
+1. Register or log in to [No-IP website](https://www.noip.com/)
+2. Use your registered username and password
+3. Create hostnames in the control panel
 
 ```json
 {
-    "id": "your_username",
-    "token": "your_password",
     "dns": "noip",
-    "endpoint": "https://dynupdate.no-ip.com",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com"],
-    "ipv6": ["home-v6.example.com"]
+    "id": "your_username",    // No-IP username
+    "token": "your_password"  // No-IP password
 }
 ```
 
-## Optional Parameters
-
-### Custom API Endpoint
-
-```json
-{
-    "endpoint": "https://dynupdate.no-ip.com"
-}
-```
-
-No-IP supports custom API endpoints, suitable for:
-
-#### Official Endpoints
-
-- **Default Endpoint**: `https://dynupdate.no-ip.com` (Recommended)
-- **Backup Endpoint**: `https://dynupdate2.no-ip.com`
-
-#### Compatible Services
+## Complete Configuration Example
 
 ```json
 {
-    "dns": "noip",
-    "id": "your_username",
-    "token": "your_password",
-    "endpoint": "https://your-ddns-server.com",
-    "ipv4": ["home.example.com"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "noip",                      // Current provider
+    "id": "myusername",                 // No-IP username or DDNS ID
+    "token": "mypassword",              // No-IP password or DDNS KEY
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["all.ddnskey.com"],           // IPv4 domain
+    "ipv6": ["all.ddnskey.com"],           // IPv6 domain
+    "endpoint": "https://dynupdate.no-ip.com" // API endpoint
 }
 ```
 
-For other No-IP compatible DDNS services or custom deployments, you can specify different API endpoints.
+### Parameter Description
+
+| Parameter | Description      | Type           | Value Range/Options                     | Default                       | Parameter Type |
+| :-------: | :--------------- | :------------- | :------------------------------------- | :---------------------------- | :------------- |
+| dns       | Provider ID      | String         | `noip`                                 | None                          | Provider Param |
+| id        | Authentication ID| String         | No-IP username or DDNS ID              | None                          | Provider Param |
+| token     | Authentication Key| String        | No-IP password or DDNS KEY             | None                          | Provider Param |
+| index4    | IPv4 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default`                     | Common Config  |
+| index6    | IPv6 Source      | Array          | [Reference](../json.en.md#ipv4-ipv6)  | `default`                     | Common Config  |
+| ipv4      | IPv4 Domain      | Array          | Domain list                            | `all.ddnskey.com`             | Common Config  |
+| ipv6      | IPv6 Domain      | Array          | Domain list                            | `all.ddnskey.com`             | Common Config  |
+| proxy     | Proxy Settings   | Array          | [Reference](../json.en.md#proxy)      | None                          | Common Network |
+| ssl       | SSL Verification | Boolean/String | `"auto"`, `true`, `false`              | `auto`                        | Common Network |
+| cache     | Cache Settings   | Boolean/String | `true`, `false`, `filepath`            | `true`                        | Common Config  |
+| log       | Log Config       | Object         | [Reference](../json.en.md#log)        | None                          | Common Config  |
+
+> **Parameter Type Description**:
+>
+> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Param**: Supported by current provider, values related to current provider
 
 ## Troubleshooting
 
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### Common Issues
+
+- **Authentication Failed**: Check if username and password are correct, confirm account has not been disabled
+- **Hostname Not Found**: Ensure hostname has been created in No-IP control panel, check spelling accuracy
+- **Update Failed**: Check hostname status is normal, confirm account has sufficient permissions
+- **Request Rate Limiting**: No-IP recommends update intervals of no less than 5 minutes, avoid frequent updates
+
 ### No-IP Response Codes
 
-| Response | Meaning | Status |
-|----------|---------|--------|
-| `good <ip>` | Update successful | ✅ |
-| `nochg <ip>` | IP address unchanged | ✅ |
-| `nohost` | Hostname does not exist | ❌ |
-| `badauth` | Authentication failed | ❌ |
-| `badagent` | Client disabled | ❌ |
-| `!donator` | Paid account feature required | ❌ |
-| `abuse` | Account banned or abused | ❌ |
+| Response Code   | Description              | Solution                |
+| :-------------- | :----------------------- | :---------------------- |
+| `good <ip>`     | Update successful        | Operation successful    |
+| `nochg <ip>`    | IP address unchanged     | Operation successful    |
+| `nohost`        | Hostname does not exist  | Check hostname settings |
+| `badauth`       | Authentication failed    | Check username password |
+| `badagent`      | Client disabled          | Contact No-IP support   |
+| `!donator`      | Paid account feature required | Upgrade account type |
+| `abuse`         | Account banned or abused | Contact No-IP support   |
 
 ## API Limitations
 
@@ -137,9 +123,9 @@ ddns --debug
 
 ## Support and Resources
 
-- [No-IP Website](https://www.noip.com/)
+- [No-IP Official Website](https://www.noip.com/)
 - [No-IP API Documentation](https://www.noip.com/integrate/request)
 - [No-IP Control Panel](https://www.noip.com/members/)
 - [No-IP Technical Support](https://www.noip.com/support)
 
-> It's recommended to use DDNS KEY authentication for improved security. Regularly check hostname status to ensure proper service operation.
+> **Recommendation**: It's recommended to use DDNS KEY authentication for improved security. Regularly check hostname status to ensure proper service operation.

+ 77 - 91
doc/providers/noip.md

@@ -2,110 +2,89 @@
 
 ## 概述
 
-No-IP是流行的动态DNS服务,支持标准的DDNS动态更新协议,采用Basic Auth认证。本 DDNS 项目支持通过No-IP用户名密码或DDNS KEY进行认证。
+No-IP 是流行的动态 DNS 服务提供商,支持标准的 DDNS 动态更新协议,采用 Basic Auth 认证,支持动态 DNS 记录的创建与更新。本 DDNS 项目支持通过用户名密码或 DDNS KEY 进行认证。
 
-## 认证方式
+官网链接:
 
-1. 注册或登录 [No-IP 官网](https://www.noip.com/)
-2. 使用注册的用户名和密码
-3. 在控制面板中创建主机名(hostname)
+- 官方网站:<https://www.noip.com/>
+- 服务商控制台:<https://www.noip.com/members/>
 
-### 用户名密码认证
+## 认证信息
 
-使用No-IP账户用户名和密码进行认证,这是最简单的认证方式。
-
-```json
-{
-    "dns": "noip",
-    "id": "your_username",
-    "token": "your_password"
-}
-```
+### 1. DDNS KEY + ID 认证(推荐)
 
-- `id`:No-IP用户名
-- `token`:No-IP密码
-- `dns`:固定为 `"noip"`
-
-### DDNS KEY + Id 认证(推荐)
-
-使用DDNS ID和DDNS KEY进行认证,更加安全。
+使用 DDNS ID 和 DDNS KEY 进行认证,更加安全。
 
 #### 获取DDNS KEY
 
 1. 登录 [No-IP 官网](https://www.noip.com/)
 2. 进入 **Dynamic DNS** > **No-IP Hostnames**
-3. 创建或编辑动态DNS主机名
-4. 生成DDNS KEY用于API认证
+3. 创建或编辑动态 DNS 主机名
+4. 生成 DDNS KEY 用于 API 认证
 
 ```json
 {
     "dns": "noip",
-    "id": "your_ddns_id",
-    "token": "your_ddns_key"
+    "id": "your_ddns_id",    // DDNS ID
+    "token": "your_ddns_key" // DDNS KEY
 }
 ```
 
-- `id`:DDNS ID
-- `token`:DDNS KEY
-- `dns`:固定为 `"noip"`
+### 2. 用户名密码认证
 
-## 完整配置示例
+使用 No-IP 账户用户名和密码进行认证,这是最简单的认证方式。
 
-```json
-{
-    "id": "myusername",
-    "token": "mypassword",
-    "dns": "noip",
-    "ipv4": ["home.example.com", "office.example.com"],
-    "index4": ["public"]
-}
-```
+#### 账号密码
 
-### 带可选参数的配置
+1. 注册或登录 [No-IP 官网](https://www.noip.com/)
+2. 使用注册的用户名和密码
+3. 在控制面板中创建主机名(hostname)
 
 ```json
 {
-    "id": "your_username",
-    "token": "your_password",
     "dns": "noip",
-    "endpoint": "https://dynupdate.no-ip.com",
-    "index4": ["public"],
-    "index6": ["public"],
-    "ipv4": ["home.example.com"],
-    "ipv6": ["home-v6.example.com"]
+    "id": "your_username",    // No-IP 用户名
+    "token": "your_password"  // No-IP 密码
 }
 ```
 
-## 可选参数
-
-### 自定义API端点
-
-```json
-{
-    "endpoint": "https://dynupdate.no-ip.com"
-}
-```
-
-No-IP支持自定义API端点,适用于:
-
-#### 官方端点
-
-- **默认端点**:`https://dynupdate.no-ip.com`(推荐)
-- **备用端点**:`https://dynupdate2.no-ip.com`
-
-#### 兼容服务
+## 完整配置示例
 
 ```json
 {
-    "dns": "noip",
-    "id": "your_username",
-    "token": "your_password",
-    "endpoint": "https://your-ddns-server.com",
-    "ipv4": ["home.example.com"]
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "noip",                      // 当前服务商
+    "id": "myusername",                 // No-IP 用户名或 DDNS ID
+    "token": "mypassword",              // No-IP 密码或 DDNS KEY
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["all.ddnskey.com"],           // IPv4 域名
+    "ipv6": ["all.ddnskey.com"], // IPv6 域名
+    "endpoint": "https://dynupdate.no-ip.com" // API端点
 }
 ```
 
-对于No-IP兼容的其他DDNS服务或自定义部署,可以指定不同的API端点。
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `noip`                             | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | No-IP 用户名或 DDNS ID             | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | No-IP 密码或 DDNS KEY              | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | `all.ddnskey.com`        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | `all.ddnskey.com`        | 公用配置   |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:前服务商支持,值与当前服务商相关
 
 ## 故障排除
 
@@ -114,32 +93,39 @@ No-IP支持自定义API端点,适用于:
 启用调试日志查看详细信息:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
-### No-IP响应代码
+### 常见问题
+
+- **认证失败**:检查用户名和密码是否正确,确认账户没有被禁用
+- **主机名未找到**:确保主机名已在 No-IP 控制面板中创建,配置拼写无误
+- **更新失败**:检查主机名状态是否正常,确认账户权限足够
+- **请求频率限制**:No-IP 建议更新间隔不少于 5 分钟,避免频繁更新
+
+### No-IP 响应代码
 
-| 响应 | 含义 | 状态 |
-|------|------|------|
-| `good <ip>` | 更新成功 | ✅ |
-| `nochg <ip>` | IP地址无变化 | ✅ |
-| `nohost` | 主机名不存在 | ❌ |
-| `badauth` | 认证失败 | ❌ |
-| `badagent` | 客户端被禁用 | ❌ |
-| `!donator` | 需要付费账户功能 | ❌ |
-| `abuse` | 账户被封禁或滥用 | ❌ |
+| 响应代码        | 说明             | 解决方案           |
+| :------------- | :--------------- | :----------------- |
+| `good <ip>`    | 更新成功         | 操作成功           |
+| `nochg <ip>`   | IP地址无变化     | 操作成功           |
+| `nohost`       | 主机名不存在     | 检查主机名设置     |
+| `badauth`      | 认证失败         | 检查用户名密码     |
+| `badagent`     | 客户端被禁用     | 联系No-IP支持     |
+| `!donator`     | 需要付费账户功能 | 升级账户类型       |
+| `abuse`        | 账户被封禁或滥用 | 联系No-IP支持     |
 
-## API限制
+## API 限制
 
-- **更新频率**:建议间隔不少于5分钟
-- **免费账户**:30天内需至少一次登录确认
-- **主机名数量**:免费账户限制3个主机名
+- **更新频率**:建议间隔不少于 5 分钟
+- **免费账户**:30 天内需至少一次登录确认
+- **主机名数量**:免费账户限制 3 个主机名
 
 ## 支持与资源
 
-- [No-IP官网](https://www.noip.com/)
-- [No-IP API文档](https://www.noip.com/integrate/request)
-- [No-IP控制面板](https://www.noip.com/members/)
-- [No-IP技术支持](https://www.noip.com/support)
+- [No-IP 官网](https://www.noip.com/)
+- [No-IP API 文档](https://www.noip.com/integrate/request)
+- [No-IP 控制面板](https://www.noip.com/members/)
+- [No-IP 技术支持](https://www.noip.com/support)
 
-> 建议使用DDNS KEY认证方式以提高安全性,定期检查主机名状态确保服务正常运行。
+> **建议**:推荐使用 DDNS KEY 认证方式以提高安全性,定期检查主机名状态确保服务正常运行。

+ 115 - 145
doc/providers/tencentcloud.en.md

@@ -1,137 +1,105 @@
-# Tencent Cloud DNS Configuration Guide
+# TencentCloud DNS (TencentCloud DNSPod) Configuration Guide
 
 ## Overview
 
-Tencent Cloud DNS (TencentCloud DNSPod) is a professional DNS resolution service provided by Tencent Cloud, suitable for users who need high availability and high-performance DNS resolution. This DDNS project supports authentication through Tencent Cloud API keys.
+TencentCloud DNS (TencentCloud DNSPod) is a professional DNS resolution service provided by Tencent Cloud, featuring high availability and high performance, supporting dynamic DNS record creation and updates. This DDNS project uses SecretId and SecretKey for API authentication.
 
-## Authentication Method
+Official links:
 
-### API Key Authentication
-
-Tencent Cloud DNS uses SecretId and SecretKey for API authentication, which is the most secure and recommended authentication method.
-
-#### How to Obtain API Keys
-
-##### From DNSPod
-
-1. **Login to DNSPod Console**
-    - Visit [DNSPod Console](https://console.dnspod.cn/)
-    - Sign in with your DNSPod account
-
-2. **Go to API Key Management**
-    - Visit [API Key Management](https://console.dnspod.cn/account/token)
-
-3. **Create a New Secret Key**
-    - Click the "Create Key" button
-    - Enter a descriptive name (e.g., "DDNS Host")
-    - Select appropriate permissions (domain management permission required)
-    - Click "Confirm" to create
-
-##### From Tencent Cloud
-
-1. **Login to Tencent Cloud Console**
-    - Visit [Tencent Cloud Console](https://console.cloud.tencent.com/)
-    - Sign in with your Tencent Cloud account
-
-2. **Go to API Key Management**
-    - Visit [API Key Management](https://console.cloud.tencent.com/cam/capi)
-    - Click "Create Key" button
-
-3. **Create New API Key**
-    - Click the "Create Key" button
-    - Copy the generated **SecretId** and **SecretKey**
-    - **Important**: Save both values securely, as they provide full access to your account
+- Official website: <https://cloud.tencent.com/product/dns>
+- Service console: <https://console.cloud.tencent.com/dnspod>
 
-4. **Verify Permissions**
-    - Ensure your account has DNSPod related permissions
-    - Check [Access Management Console](https://console.cloud.tencent.com/cam/policy) if needed
+## Authentication
 
-#### Configuration Using API Keys
-
-```json
-{
-  "dns": "tencentcloud",
-  "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-}
-```
-
-**Parameters:**
-
-- `id`: Your Tencent Cloud SecretId
-- `token`: Your Tencent Cloud SecretKey
-- `dns`: Must be set to `"tencentcloud"`
-
-## Complete Configuration Examples
-
-### Basic Configuration
+### API Key Authentication
 
-```json
-{
-  "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "dns": "tencentcloud",
-  "ipv6": ["home.example.com", "server.example.com"],
-  "index6": ["default"]
-}
-```
+TencentCloud DNS uses `SecretId` and `SecretKey` for API authentication, which is the most secure and recommended authentication method.
 
-### Configuration with Optional Parameters
+#### Obtaining API Keys
 
 ```json
 {
-  "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-  "dns": "tencentcloud",
-  "endpoint": "https://dnspod.ap-singapore.tencentcloudapi.com",
-  "index4": ["default"],
-  "index6": ["default"],
-  "ipv4": ["example.com"],
-  "ipv6": ["dynamic.mydomain.com"],
-  "ttl": 600
+    "dns": "tencentcloud",
+    "id": "Your_Secret_Id",     // TencentCloud SecretId
+    "token": "Your_Secret_Key"  // TencentCloud SecretKey
 }
 ```
 
-## Optional Configuration Parameters
+There are two ways to obtain API keys:
 
-### TTL (Time To Live)
+##### From DNSPod
 
-```json
-{
-  "ttl": 300
-}
-```
+The simplest and quickest way to obtain keys
 
-### Line Type (ISP Route)
+1. Log in to [DNSPod Console](https://console.dnspod.cn/)
+2. Navigate to "User Center" > "API Keys" or visit <https://console.dnspod.cn/account/token>
+3. Click "Create Key", fill in the description, select domain management permissions, and complete creation
 
-```json
-{
-  "line": "默认"
-}
-```
+##### From TencentCloud
 
-- **Options**: "默认" (Default), "电信" (China Telecom), "联通" (China Unicom), "移动" (China Mobile), "教育网" (Education Network), etc.
-- **Default**: "默认" (Default line)
+1. Log in to [TencentCloud Console](https://console.cloud.tencent.com/)
+2. Visit [API Key Management](https://console.cloud.tencent.com/cam/capi)
+3. Click "Create Key" button
+4. Copy the generated **SecretId** and **SecretKey**, please keep them safe
+5. Ensure the account has DNSPod-related permissions
 
-### Custom API Endpoint
+## Complete Configuration Example
 
 ```json
 {
-  "endpoint": "https://dnspod.tencentcloudapi.com"
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // Format validation
+    "dns": "tencentcloud",              // Current provider
+    "id": "Your_Secret_Id",     // TencentCloud SecretId
+    "token": "Your_Secret_Key", // TencentCloud SecretKey
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4 address source
+    "index6": "public",                     // IPv6 address source
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 domains
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 domains
+    "endpoint": "https://dnspod.tencentcloudapi.com", // API endpoint
+    "line": "默认",                          // Resolution line
+    "ttl": 600                              // DNS record TTL (seconds)
 }
 ```
 
-Tencent Cloud DNSPod API supports multiple regional endpoints for optimal network performance:
-
-#### China Regions
-
+### Parameter Description
+
+| Parameter | Description | Type | Value Range/Options | Default | Parameter Type |
+| :-------: | :---------- | :--- | :------------------ | :------ | :------------- |
+| dns | Provider identifier | String | `tencentcloud` | None | Provider Parameter |
+| id | Authentication ID | String | TencentCloud SecretId | None | Provider Parameter |
+| token | Authentication key | String | TencentCloud SecretKey | None | Provider Parameter |
+| index4 | IPv4 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Configuration |
+| index6 | IPv6 source | Array | [Reference](../json.en.md#ipv4-ipv6) | `default` | Common Configuration |
+| ipv4 | IPv4 domains | Array | Domain list | None | Common Configuration |
+| ipv6 | IPv6 domains | Array | Domain list | None | Common Configuration |
+| endpoint | API endpoint | URL | [See below](#endpoint) | `https://dnspod.tencentcloudapi.com` | Provider Parameter |
+| line | Resolution line | String | [See below](#line) | `默认` | Provider Parameter |
+| ttl | TTL time | Integer (seconds) | [See below](#ttl) | `600` | Provider Parameter |
+| proxy | Proxy settings | Array | [Reference](../json.en.md#proxy) | None | Common Network |
+| ssl | SSL verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
+| cache | Cache settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Configuration |
+| log | Log configuration | Object | [Reference](../json.en.md#log) | None | Common Configuration |
+
+> **Parameter Type Description**:  
+>
+> - **Common Configuration**: Standard DNS configuration parameters applicable to all supported DNS providers
+> - **Common Network**: Network setting parameters applicable to all supported DNS providers
+> - **Provider Parameter**: Supported by current provider, values related to current provider
+>
+> ### endpoint
+
+TencentCloud DNSPod API supports multiple regional endpoints, allowing you to choose the optimal node based on your network environment:
+
+#### Domestic Nodes
+
+- **Default (Recommended)**: `https://dnspod.tencentcloudapi.com`
 - **South China (Guangzhou)**: `https://dnspod.ap-guangzhou.tencentcloudapi.com`
 - **East China (Shanghai)**: `https://dnspod.ap-shanghai.tencentcloudapi.com`
 - **North China (Beijing)**: `https://dnspod.ap-beijing.tencentcloudapi.com`
-- **Southwest China (Chengdu)**: `https://dnspod.ap-chengdu.tencentcloudapi.com`
-- **Hong Kong**: `https://dnspod.ap-hongkong.tencentcloudapi.com`
+- **Southwest (Chengdu)**: `https://dnspod.ap-chengdu.tencentcloudapi.com`
+- **Hong Kong, Macao and Taiwan (Hong Kong)**: `https://dnspod.ap-hongkong.tencentcloudapi.com`
 
-#### International Regions
+#### Overseas Nodes
 
 - **Asia Pacific Southeast (Singapore)**: `https://dnspod.ap-singapore.tencentcloudapi.com`
 - **Asia Pacific Southeast (Bangkok)**: `https://dnspod.ap-bangkok.tencentcloudapi.com`
@@ -142,71 +110,73 @@ Tencent Cloud DNSPod API supports multiple regional endpoints for optimal networ
 - **US West (Silicon Valley)**: `https://dnspod.na-siliconvalley.tencentcloudapi.com`
 - **Europe (Frankfurt)**: `https://dnspod.eu-frankfurt.tencentcloudapi.com`
 
-> **Note**: It's recommended to use the default endpoint `https://dnspod.tencentcloudapi.com`, as Tencent Cloud automatically routes to the optimal node. Specify regional endpoints only in special network environments.
-
-## Permission Requirements
-
-Ensure the Tencent Cloud account has the following permissions:
-
-- **DNSPod**: Domain resolution management permissions
-- **QcloudDNSPodFullAccess**: Full DNSPod access permission (recommended)
-
-You can view and configure permissions in the [Access Management Console](https://console.cloud.tencent.com/cam/policy).
-
-## Troubleshooting
+> **Note**: It is recommended to use the default endpoint `https://dnspod.tencentcloudapi.com`, as TencentCloud will automatically route to the optimal node. Only specify specific regional endpoints under special network conditions.
 
-### Common Issues
+### ttl
 
-#### "Signature Error" or "Authentication Failed"
+The `ttl` parameter specifies the Time To Live (TTL) of DNS records in seconds. TencentCloud DNSPod supports a TTL range from 1 to 604800 seconds (7 days). If not set, the default value is used.
 
-- Check if SecretId and SecretKey are correct
-- Verify the keys haven't expired
-- Confirm account has sufficient permissions
+| Plan Type | Supported TTL Range (seconds) |
+| :-------- | :---------------------------- |
+| Free | 600 ~ 604800 |
+| Professional | 60 ~ 604800 |
+| Enterprise | 1 ~ 604800 |
+| Premium | 1 ~ 604800 |
 
-#### "Domain Not Found" Error
+> Reference: TencentCloud [DNS TTL Documentation](https://cloud.tencent.com/document/product/302/9072)
 
-- Verify the domain is added to Tencent Cloud DNSPod
-- Check domain spelling in configuration
-- Ensure domain status is normal
+### line
 
-#### "Record Operation Failed"
+The `line` parameter specifies DNS resolution lines. TencentCloud DNSPod supported lines:
 
-- Check if subdomain has conflicting records
-- Verify TTL value is within acceptable range
-- Confirm line type setting is correct
+| Line Identifier | Description |
+| :-------------- | :---------- |
+| 默认 | Default |
+| 电信 | China Telecom |
+| 联通 | China Unicom |
+| 移动 | China Mobile |
+| 教育网 | China Education Network |
+| 境外 | Overseas |
 
-#### "API Call Limit Exceeded"
+> More lines reference: TencentCloud [DNS Resolution Lines Documentation](https://cloud.tencent.com/document/product/302/8643)
 
-- Tencent Cloud API has rate limiting
-- Increase update intervals appropriately
-- Check if other programs are calling the API simultaneously
+## Troubleshooting
 
 ### Debug Mode
 
-Enable debug logging to see detailed information:
+Enable debug logging to view detailed information:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### Common Issues
+
+- **Signature Error**: Check if SecretId and SecretKey are correct, confirm the keys haven't expired
+- **Domain Not Found**: Ensure the domain has been added to TencentCloud DNSPod, configuration spelling is correct, domain is active
+- **Record Creation Failed**: Check if subdomain has conflicting records, TTL settings are reasonable, confirm modification permissions
+- **API Call Limit Exceeded**: TencentCloud API has call frequency limits, reduce request frequency
+
 ### Common Error Codes
 
-- **AuthFailure.SignatureExpire**: Signature expired
-- **AuthFailure.SecretIdNotFound**: SecretId does not exist
-- **ResourceNotFound.NoDataOfRecord**: Record does not exist
-- **LimitExceeded.RequestLimitExceeded**: Request frequency exceeded
+| Error Code | Description | Solution |
+| :--------- | :---------- | :------- |
+| AuthFailure.SignatureExpire | Signature expired | Check system time |
+| AuthFailure.SecretIdNotFound | SecretId not found | Check key configuration |
+| ResourceNotFound.NoDataOfRecord | Record does not exist | Check record settings |
+| LimitExceeded.RequestLimitExceeded | Request frequency exceeded | Reduce request frequency |
 
 ## API Limitations
 
-- **Request Rate**: Default 20 requests per second
+- **Request Frequency**: Default 20 requests per second
 - **Single Query**: Maximum 3000 records returned
-- **Domain Count**: Limited based on service plan
+- **Domain Count**: Limited by plan type
 
 ## Support and Resources
 
-- **Tencent Cloud DNSPod Documentation**: <https://cloud.tencent.com/document/product/1427>
-- **Tencent Cloud DNSPod API Reference**: <https://cloud.tencent.com/document/api/1427>
-- **Tencent Cloud Console**: <https://console.cloud.tencent.com/dnspod>
-- **Tencent Cloud Technical Support**: <https://cloud.tencent.com/document/product/282>
+- [TencentCloud DNSPod Product Documentation](https://cloud.tencent.com/document/product/1427)
+- [TencentCloud DNSPod V3 API Documentation](https://cloud.tencent.com/document/api/1427)
+- [TencentCloud DNSPod Console](https://console.cloud.tencent.com/dnspod)
+- [TencentCloud Technical Support](https://cloud.tencent.com/online-service)
 
-> It is recommended to use sub-account API keys and grant only the necessary DNSPod permissions to improve security.
+> **Recommendation**: It is recommended to use sub-account API keys and grant only necessary DNSPod permissions to improve security. Regularly rotate API keys to ensure account security.

+ 110 - 109
doc/providers/tencentcloud.md

@@ -1,10 +1,15 @@
-# 腾讯云DNS 配置指南 中文文档
+# 腾讯云 DNS (TencentCloud DNSPod) 配置指南
 
 ## 概述
 
-腾讯云DNS(TencentCloud DNSPod)是腾讯云提供的专业DNS解析服务,适用于需要高可用性和高性能DNS解析的用户。本 DDNS 项目支持通过腾讯云API密钥进行认证。
+腾讯云 DNS(TencentCloud DNSPod)是腾讯云提供的专业 DNS 解析服务,具有高可用性和高性能,支持动态 DNS 记录的创建与更新。本 DDNS 项目通过 SecretId 和 SecretKey 进行 API 认证。
 
-## 认证方式
+官网链接:
+
+- 官方网站:<https://cloud.tencent.com/product/dns>
+- 服务商控制台:<https://console.cloud.tencent.com/dnspod>
+
+## 认证信息
 
 ### API 密钥认证
 
@@ -12,10 +17,23 @@
 
 #### 获取API密钥
 
+```json
+{
+    "dns": "tencentcloud",
+    "id": "Your_Secret_Id",     // 腾讯云 SecretId
+    "token": "Your_Secret_Key" // 腾讯云 SecretKey
+}
+```
+
+有以下两种方式获取 API 密钥:
+
 ##### 从DNSPod获取
 
+最为简单快捷地获取
+
 1. 登录 [DNSPod控制台](https://console.dnspod.cn/)
 2. 进入“用户中心” > “API密钥”或访问 <https://console.dnspod.cn/account/token>
+3. 点击“创建密钥”,填写描述,选择域名管理权限,完成创建
 
 ##### 从腾讯云获取
 
@@ -25,84 +43,64 @@
 4. 复制生成的 **SecretId** 和 **SecretKey**,请妥善保存
 5. 确保账号具有DNSPod相关权限
 
-#### 配置示例
+确保使用的腾讯云账号具有以下权限:
 
-```json
-{
-    "dns": "tencentcloud",
-    "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-}
-```
+- **QcloudDNSPodFullAccess**:DNSPod 完全访问权限(推荐)
+- **QcloudDNSPodReadOnlyAccess + 自定义写权限**:精细化权限控制
 
-- `id`:腾讯云 SecretId
-- `token`:腾讯云 SecretKey
-- `dns`:固定为 `"tencentcloud"`
+可以在 [访问管理控制台](https://console.cloud.tencent.com/cam/policy) 中查看和配置权限。
 
 ## 完整配置示例
 
-### 基本配置
-
-```json
-{
-    "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "dns": "tencentcloud",
-    "ipv6": ["home.example.com", "server.example.com"],
-    "index6": ["default"]
-}
-```
-
-### 带可选参数的配置
-
-```json
-{
-    "id": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
-    "dns": "tencentcloud",
-    "endpoint": "https://dnspod.ap-singapore.tencentcloudapi.com",
-    "index4": ["default"],
-    "index6": ["default"],
-    "ipv4": ["example.com"],
-    "ipv6": ["dynamic.mydomain.com"],
-    "line": "默认",
-    "ttl": 600
-}
-```
-
-## 可选参数
-
-### TTL(生存时间)
-
-```json
-{
-    "ttl": 300
-}
-```
-
-### 线路类型
-
-```json
-{
-    "line": "默认"
-}
-```
-
-- 选项:"默认"、"电信"、"联通"、"移动"、"教育网"等
-- 默认:"默认"
-
-### 自定义API端点
-
 ```json
 {
-    "endpoint": "https://dnspod.tencentcloudapi.com"
+    "$schema": "https://ddns.newfuture.cc/schema/v4.0.json", // 格式验证
+    "dns": "tencentcloud",              // 当前服务商
+    "id": "Your_Secret_Id",     // 腾讯云 SecretId
+    "token": "Your_Secret_Key", // 腾讯云 SecretKey
+    "index4": ["url:http://api.ipify.cn", "public"], // IPv4地址来源
+    "index6": "public",                     // IPv6地址来源
+    "ipv4": ["ddns.newfuture.cc"],           // IPv4 域名
+    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"], // IPv6 域名
+    "endpoint": "https://dnspod.tencentcloudapi.com", // API端点
+    "line": "默认",                          // 解析线路
+    "ttl": 600                              // DNS记录TTL(秒)
 }
 ```
 
-腾讯云DNSPod API支持多个区域端点,可根据网络环境选择最优节点:
+### 参数说明
+
+| 参数    | 说明         | 类型           | 取值范围/选项                       | 默认值    | 参数类型   |
+| :-----: | :----------- | :------------- | :--------------------------------- | :-------- | :--------- |
+| dns     | 服务商标识   | 字符串         | `tencentcloud`                     | 无        | 服务商参数 |
+| id      | 认证 ID      | 字符串         | 腾讯云 SecretId                    | 无        | 服务商参数 |
+| token   | 认证密钥     | 字符串         | 腾讯云 SecretKey                   | 无        | 服务商参数 |
+| index4  | IPv4 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)  | `default` | 公用配置   |
+| index6  | IPv6 来源     | 数组           | [参考配置](../json.md#ipv4-ipv6)   | `default` | 公用配置   |
+| ipv4    | IPv4 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| ipv6    | IPv6 域名     | 数组           | 域名列表                           | 无        | 公用配置   |
+| endpoint| API 端点      | URL            | [参考下方](#endpoint)              | `https://dnspod.tencentcloudapi.com` | 服务商参数 |
+| line    | 解析线路      | 字符串         | [参考下方](#line)                   | `默认`    | 服务商参数 |
+| ttl     | TTL 时间      | 整数(秒)     | [参考下方](#ttl)                    | `600`     | 服务商参数 |
+| proxy   | 代理设置      | 数组           | [参考配置](../json.md#proxy)        | 无        | 公用网络   |
+| ssl     | SSL 验证方式  | 布尔/字符串    | `"auto"`、`true`、`false`            | `auto`    | 公用网络   |
+| cache   | 缓存设置      | 布尔/字符串    | `true`、`false`、`filepath`        | `true`    | 公用配置   |
+| log     | 日志配置      | 对象           | [参考配置](../json.md#log)             | 无        | 公用配置   |
+
+> **参数类型说明**:  
+>
+> - **公用配置**:所有支持的DNS服务商均适用的标准DNS配置参数  
+> - **公用网络**:所有支持的DNS服务商均适用的网络设置参数  
+> - **服务商参数**:当前服务商支持,值与当前服务商相关
+> **注意**:`ttl` 和 `line` 不同套餐支持的值可能不同。
+
+### endpoint
+
+腾讯云 DNSPod API 支持多个区域端点,可根据网络环境选择最优节点:
 
 #### 国内节点
 
+- **默认(推荐)**:`https://dnspod.tencentcloudapi.com`
 - **华南地区(广州)**:`https://dnspod.ap-guangzhou.tencentcloudapi.com`
 - **华东地区(上海)**:`https://dnspod.ap-shanghai.tencentcloudapi.com`
 - **华北地区(北京)**:`https://dnspod.ap-beijing.tencentcloudapi.com`
@@ -122,68 +120,71 @@
 
 > **注意**:建议使用默认端点 `https://dnspod.tencentcloudapi.com`,腾讯云会自动路由到最优节点。只有在特殊网络环境下才需要指定特定区域端点。
 
-## 权限要求
-
-确保使用的腾讯云账号具有以下权限:
-
-- **DNSPod**:域名解析管理权限
-- **QcloudDNSPodFullAccess**:DNSPod完全访问权限(推荐)
+### ttl
 
-可以在 [访问管理控制台](https://console.cloud.tencent.com/cam/policy) 中查看和配置权限。
-
-## 故障排除
+`ttl` 参数指定 DNS 记录的生存时间(TTL),单位为秒。腾讯云 DNSPod 支持的 TTL 范围为 1 到 604800 秒(即 7 天)。如果不设置,则使用默认值。
 
-### 常见问题
+| 套餐类型 | 支持的 TTL 范围(秒) |
+| :------ | :------------------- |
+| 免费版   | 600 ~ 604800          |
+| 专业版   | 60 ~ 604800           |
+| 企业版   | 1 ~ 604800            |
+| 尊享版   | 1 ~ 604800            |
 
-#### "签名错误"或"认证失败"
+> 参考:腾讯云 [云解析 TTL 说明](https://cloud.tencent.com/document/product/302/9072)
 
-- 检查SecretId和SecretKey是否正确
-- 确认密钥没有过期
-- 验证账号权限是否足够
+### line
 
-#### "域名未找到"
+`line` 参数指定 DNS 解析线路,腾讯云 DNSPod 支持的线路:
 
-- 确认域名已添加到腾讯云DNSPod
-- 检查域名拼写是否正确
-- 验证域名状态是否正常
+| 线路标识         | 说明         |
+| :-------------- | :----------- |
+| 默认            | 默认         |
+| 电信            | 中国电信     |
+| 联通            | 中国联通     |
+| 移动            | 中国移动     |
+| 教育网          | 中国教育网   |
+| 境外            | 境外         |
 
-#### "记录操作失败"
-
-- 检查子域名是否存在冲突记录
-- 确认TTL值在合理范围内
-- 验证线路类型设置是否正确
-
-#### "API调用超出限制"
-
-- 腾讯云API有调用频率限制
-- 适当增加更新间隔
-- 检查是否有其他程序同时调用API
+> 更多线路参考:腾讯云 [云解析 DNS 解析线路说明](https://cloud.tencent.com/document/product/302/8643)
+>
+## 故障排除
 
 ### 调试模式
 
 启用调试日志查看详细信息:
 
 ```sh
-ddns --debug
+ddns -c config.json --debug
 ```
 
+### 常见问题
+
+- **签名错误**:检查 SecretId 和 SecretKey 是否正确,确认密钥没有过期
+- **域名未找到**:确保域名已添加到腾讯云 DNSPod,配置拼写无误,域名处于活跃状态
+- **记录创建失败**:检查子域名是否有冲突记录,TTL 设置合理,确认有修改权限
+- **API 调用超出限制**:腾讯云 API 有调用频率限制,降低请求频率
+
 ### 常见错误代码
 
-- **AuthFailure.SignatureExpire**:签名过期
-- **AuthFailure.SecretIdNotFound**:SecretId不存在
-- **ResourceNotFound.NoDataOfRecord**:记录不存在
-- **LimitExceeded.RequestLimitExceeded**:请求频率超限
+| 错误代码        | 说明             | 解决方案           |
+| :------------- | :--------------- | :----------------- |
+| AuthFailure.SignatureExpire | 签名过期 | 检查系统时间       |
+| AuthFailure.SecretIdNotFound | SecretId不存在 | 检查密钥配置     |
+| ResourceNotFound.NoDataOfRecord | 记录不存在 | 检查记录设置     |
+| LimitExceeded.RequestLimitExceeded | 请求频率超限 | 降低请求频率   |
 
-## API限制
+## API 限制
 
-- **请求频率**:默认每秒20次
-- **单次查询**:最多返回3000条记录
+- **请求频率**:默认每秒 20 
+- **单次查询**:最多返回 3000 条记录
 - **域名数量**:根据套餐不同而限制
 
 ## 支持与资源
 
-- [腾讯云DNSPod产品文档](https://cloud.tencent.com/document/product/1427)
-- [腾讯云DNSPod v3 API文档](https://cloud.tencent.com/document/api/1427)
-- [腾讯云控制台](https://console.cloud.tencent.com/dnspod)
+- [腾讯云 DNSPod 产品文档](https://cloud.tencent.com/document/product/1427)
+- [腾讯云 DNSPod V3 API 文档](https://cloud.tencent.com/document/api/1427)
+- [腾讯云 DNSPod 控制台](https://console.cloud.tencent.com/dnspod)
+- [腾讯云技术支持](https://cloud.tencent.com/online-service)
 
-> 建议使用子账号API密钥并仅授予必要的DNSPod权限,以提高安全性。
+> **建议**:推荐使用子账号 API 密钥并仅授予必要的 DNSPod 权限,以提高安全性。定期轮换 API 密钥确保账号安全。