Update DDNS documentation (#64)

* Update DDNS documentation

* fix
This commit is contained in:
UUBulb
2024-04-27 15:38:41 +08:00
committed by GitHub
parent 819fc3d5b6
commit 8b6d128ab7
4 changed files with 251 additions and 32 deletions
+6
View File
@@ -49,3 +49,9 @@ location ~ .*\.(js|css)?$
}
````
3. 保存配置,并清空浏览器、NginX、CDN 中的缓存,此时刷新页面应恢复正常
## 面板无法启动:panic: 无法找到配置的DDNS提供者...
填入的DDNS provider的值有误,目前仅支持 `webhook`、`cloudflare``tencentcloud` 和 `dummy`。
## 面板更新DDNS崩溃:panic: interface conversion: interface {} is nil, not []interface {}
填入的DDNS `AccessID` 或 `AccessSecret` 有误。
+110 -30
View File
@@ -36,42 +36,122 @@ Linux 和 Windows 均可用,可使用 Ctrl+Shift+V 粘贴。
注意在线终端功能中,Agent 也是通过 WebSocket 连接到**公开访问域名**,而非通过 gRPC 交互。
## DDNS 功能
DDNS 功能适用于使用动态IP的服务器,当检测到当前的服务器 IP 发生变更,Dashboard 会根据配置自动更新 DNS 记录。
DDNS 功能适用于使用动态 IP 的服务器,当 Agent 上报了一个新的 IP,Dashboard 会根据配置自动更新 DNS 记录。
### 为什么我要使用哪吒监控的 DDNS 功能?
- 方便集中管理 DDNS 设置,而不是在每台机器上都部署一个 DDNS 服务;
- 仅在面板机上保存您的机密信息,防止外泄。
### 配置说明
DDNS 功能依赖于 DNS 供应商的 API,目前支持 `cloudflare`。你需要提前在 Cloudflare 上添加一个域名,并创建一个拥有 `编辑区域 DNS` 权限的令牌。
如果您还不知道如何创建令牌,请参考 [Cloudflare API Token](https://developers.cloudflare.com/api/tokens/create)。
1. **基本配置**
在配置文件 `/opt/nezha/dashboard/data/config.yaml` 中,可以修改 DNS 供应商的 API 信息,如果配置文件中没有 `DDNS` 配置项,可以手动添加。
```yaml
DDNS:
目前 DDNS 功能支持两种形式的配置:单配置和多配置。如使用单配置,则所有 Agent 服务器都使用相同的配置更新 DDNS;如使用多配置,则可为每台服务器指定一个配置更新 DDNS,灵活性更强。
#### 单配置
```yaml
DDNS:
Enable: true
Provider: "webhook"
AccessID: ""
AccessSecret: ""
WebhookMethod: ""
WebhookURL: ""
WebhookRequestBody: ""
WebhookHeaders: ""
MaxRetries: 3
Profiles: null
```
##### Enable
布尔值,选择是否开启 DDNS 功能。
##### Provider
DDNS 供应商的名称。目前支持 `webhook``cloudflare` 以及 `tencentcloud`
##### AccessID
DDNS 供应商的令牌 ID。
仅适用于供应商 `tencentcloud`
##### AccessSecret
DDNS 供应商的令牌 Secret。
仅适用于供应商 `cloudflare``tencentcloud`
##### WebhookMethod
Webhook 的请求方法。
例如 `GET``POST`等。
仅适用于供应商 `webhook`
##### WebhookURL
Webhook 的请求地址。
仅适用于供应商 `webhook`
##### WebhookRequestBody
Webhook 的请求体。
仅适用于供应商 `webhook`
##### WebhookHeaders
Webhook 的请求头。
仅适用于供应商 `webhook`
##### MaxRetries
当请求失败时,重试请求的次数。
##### Profiles
多配置设定。在单配置设定中,此项不进行处理。
#### 多配置
当使用多配置时,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,多配置设定将被无视。
```yaml
DDNS:
Enable: true
MaxRetries: 3
Profiles:
example:
Provider: ""
AccessID: ""
AccessSecret: ""
Enable: true
MaxRetries: 3
Provider: cloudflare
WebhookHeaders: ""
WebhookMethod: POST
WebhookRequestBody: ""
WebhookMethod: ""
WebhookURL: ""
```
* `AccessID` 是 DNS 供应商的登录账号
* `AccessSecret` 是 DNS 供应商中创建好的令牌
* `Enable` 布尔值,选择是否开启 DDNS 功能
* `MaxRetries` 整数,失败时的重试次数
* `Provider` DNS 供应商的名称
* `WebhookHeaders` 字符串,Webhook 的请求头
* `WebhookMethod` 字符串,Webhook 的请求方法
* `WebhookRequestBody` 字符串,Webhook 的请求体
* `WebhookURL` 字符串,Webhook 的请求地址
配置完成后,重启 Dashboard 即可生效。
::: tip
Webhook 相关配置是可选的,如果不需要可以不填写。
:::
WebhookRequestBody: ""
WebhookHeaders: ""
```
##### Enable
布尔值,选择是否开启 DDNS 功能。
##### MaxRetries
当请求失败时,重试请求的次数。
##### Profiles
多配置设定。
##### Provider
DDNS 供应商的名称。目前支持 `webhook``cloudflare` 以及 `tencentcloud`
##### example
你的 DDNS 配置名,可填任意字符串。
##### AccessID
DDNS 供应商的令牌 ID。
仅适用于供应商 `tencentcloud`
##### AccessSecret
DDNS 供应商的令牌 Secret。
仅适用于供应商 `cloudflare``tencentcloud`
##### WebhookMethod
Webhook 的请求方法。
例如 `GET``POST`等。
仅适用于供应商 `webhook`
##### WebhookURL
Webhook 的请求地址。
仅适用于供应商 `webhook`
##### WebhookRequestBody
Webhook 的请求体。
仅适用于供应商 `webhook`
##### WebhookHeaders
Webhook 的请求头。
仅适用于供应商 `webhook`
2. **Dashboard 配置**
在 Dashboard 中,可以在服务器列表中看到 `启用DDNS` 和 `DDNS域名` 两个字段,分别表示是否开启 DDNS 功能和当前的 DDNS 域名。
如果需要开启 DDNS 功能,可以在服务器列表中点击 `修改` 按钮,然后在弹出的对话框中填写 `DDNS域名`,并勾选`启用DDNS`,然后点击 `保存` 按钮即可。
### Dashboard 配置
修改好配置文件后,还需要在 Dashboard 中修改服务器设置才能使 DDNS 生效。
DDNS 相关选项说明:
- 启用DDNS
为此服务器启用 DDNS 功能。
- 启用DDNS IPv4
更新 DDNS 记录时,启用 IPv4 解析。
- 启用DDNS IPv6
更新 DDNS 记录时,启用 IPv6 解析。
- DDNS域名
记录指向的域名。
- DDNS配置
在多配置情况下,要使用的 DDNS 配置。
::: tip
在 Dashboard 设置中修改配置并保存时,会在 `config.yaml` 中填入默认配置选项,此时 DDNS 段中会同时存在单配置和多配置的选项。
如需使用单配置,请无视 `Profiles` 选项相关内容。
如需使用多配置,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,多配置设定将被无视。
:::
### 查看日志
在 Dashboard 的日志中,可以看到 DDNS 功能的相关日志,配置正确时,更新 DNS 记录时会有相应的日志记录。