---
outline: deep
---
# 服务器
## 介绍
服务器区域负责管理 Agent,是哪吒探针中最基础的区域,也是其他功能的基础。
## 新增服务器
第一步是新增服务器,可以自定义名称、分组、排序和备注。
拥有相同分组的服务器会在受支持的主题中划分到一起进行显示,备注仅会在后台显示,无需担心泄露信息。
## 安装 Agent
请参考前文[安装 Agent](/guide/agent.html)
推荐使用一键安装,即**配置好参数后**,点击服务器**一键安装**列上的对应的系统图标即可复制安装命令,在相应服务器上进行安装。
## 强制更新
Agent 更新相关的参数是 [自定义 Agent 监控项目](/guide/agent.html#自定义agent监控项目) 中的 `--disable-auto-update` 和 `--disable-force-update`。
默认情况下,Agent 会自动更新,无需干预。但当用户关闭自动更新后,也可以选中指定服务器进行强制更新。
`disable-force-update` 开启时此功能不生效。
## 数据列
* 版本号: 记录 Agent 当前版本
* 对游客隐藏: 为 True 时,游客在面板中无法查看到此服务器
* 启用DDNS: 为 True 时,当该服务器IP发生变化,Dashboard 会自动更新 DNS 记录
* DDNS域名:为该服务器配置的 DDNS 域名
* 密钥: 即 secret\key,配置 Agent 时会用到,用于验证 Agent 与 Dashboard 的通信
* 一键安装: 点击相应的系统按钮,复制命令到服务器执行即可一键安装
* 管理: 分别为连接 WebShell,修改服务器配置,删除服务器
## 在线终端
即 WebShell,`disable-command-execute`开启时此功能不生效。
Linux 和 Windows 均可用,可使用 Ctrl+Shift+V 粘贴。
连接失败请参考[实时通道断开/在线终端连接失败](/guide/q4.html)。
注意在线终端功能中,Agent 也是通过 WebSocket 连接到**公开访问域名**,而非通过 gRPC 交互。
## DDNS 功能
DDNS 功能适用于使用动态 IP 的服务器,当 Agent 上报了一个新的 IP,Dashboard 会根据配置自动更新 DNS 记录
### 为什么我要使用哪吒监控的 DDNS 功能?
- 方便集中管理 DDNS 设置,而不是在每台机器上都部署一个 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` 多配置设定;在单配置设定中,此项忽略
`WebhookURL`、`WebhookRequestBody` 以及`WebhookHeaders`可以包含以下参数:
- `{ip}` - 主机当前IP
- `{domain}` - ddns域名
- `{type}` - IP类型,可能为"ipv4"和"ipv6"
- `{access_id}` - 凭据1
- `{access_secret}` - 凭据2
配置示例:
```
WebhookHeaders: |
a:{access_id}
b:{access_secret}
WebhookRequestBody: '{"domain": "{domain}", "ip": "{ip}", "type": "{type}"}'
```
#### 多配置
当使用多配置时,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,多配置设定将被忽略
```yaml
DDNS:
Enable: true
MaxRetries: 3
Profiles:
example:
Provider: ""
AccessID: ""
AccessSecret: ""
WebhookMethod: ""
WebhookURL: ""
WebhookRequestBody: ""
WebhookHeaders: ""
```
- `Profiles` 多配置设定
- `example` 可替换为 DDNS 配置名,可填任意字符串
其它选项请参考[单配置](#单配置)段。
#### Dashboard 配置
修改配置文件后,还需要在 Dashboard 中修改服务器设置才能使 DDNS 生效
DDNS 相关选项说明:
- `启用DDNS` 为此服务器启用 DDNS 功能
- `启用DDNS IPv4` 更新 DDNS 记录时,启用 IPv4 解析
- `启用DDNS IPv6` 更新 DDNS 记录时,启用 IPv6 解析
- `DDNS域名` 记录指向的域名
- `DDNS配置` 在多配置情况下,要使用的 DDNS 配置名
::: warning
在 Dashboard 设置中修改配置并保存时,会在 `config.yaml` 中填入默认配置选项,此时 DDNS 段中会同时存在单配置和多配置
- 如需使用单配置,请配置`DDNS.Provider`,并忽略 `Profiles` 选项相关内容。
- 如需使用多配置,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,多配置设定将被忽略。
:::
#### 查看日志
在 Dashboard 的日志中,可以看到 DDNS 功能的相关日志,配置正确时,更新 DNS 记录时会有相应的日志记录。
```shell
dashboard_1 | 2024/03/16 23:16:25 NEZHA>> 正在尝试更新域名(ddns.example.com)DDNS(1/3)
dashboard_1 | 2024/03/16 23:16:28 NEZHA>> 尝试更新域名(ddns.example.com)DDNS成功
```