From 49ea2fbcabc1b48a685b4759848457f9b64ddc3f Mon Sep 17 00:00:00 2001 From: imspace Date: Tue, 19 Nov 2024 15:55:03 +0800 Subject: [PATCH] feat(docs): add config docs --- docs/docs/config/README.md | 35 ------------ docs/docs/config/basic.md | 41 ++++++++++++++ docs/docs/config/format.md | 109 +++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 35 deletions(-) delete mode 100644 docs/docs/config/README.md create mode 100644 docs/docs/config/basic.md create mode 100644 docs/docs/config/format.md diff --git a/docs/docs/config/README.md b/docs/docs/config/README.md deleted file mode 100644 index 2a90fb6..0000000 --- a/docs/docs/config/README.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 2 ---- - -# 配置 - -Rabbit Digger Pro 支持任意个数的 `server` 和 `net`. - -`net` 代表着一种虚拟的网络. 它可以是本地网络, 也可以通过代理提供的网络. 甚至连规则也是一种 `net`. - -每个 `net` 都有它的名字和类型. `name` 就是键名, 而 `type` 代表了它的类型. -除了 `local` 类型的 `net` 和一些特殊类型的 `net`, 其他的 `net` 一般都需要基于另一个 `net` 才能生效. - -实际上在 `Rabbit Digger Pro` 中大部分代理协议的配置都可以通过添加 `net` 字段来实现链式代理. - -`server` 代表着代理服务器. 它可以是一个 `http` 服务器, 也可以是一个 `socks5` 服务器, 大多数情况下你可以使用 `http+socks5` 服务器. - -你可以在不同的端口上同时部署多种服务器. - -下图是一种典型配置的示意图: - -```mermaid -graph LR; -A1(["server"]) -->|net| N1("net(rule)"); -A2(["server"]) -->|net| N1; -N1 --> N2("net"); -N1 --> N3("net"); -N1 --> N4("net"); -N1 --> N5("..."); -N2 --> L("net(local)"); -N3 --> L; -N4 --> L; -N5 --> L; -N1 --> L; -``` diff --git a/docs/docs/config/basic.md b/docs/docs/config/basic.md new file mode 100644 index 0000000..ee27202 --- /dev/null +++ b/docs/docs/config/basic.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 1 +--- + +# 基本概念 + +Rabbit Digger Pro 的配置主要由两部分组成: + +- `net`: 虚拟网络层,可以是: + + - 本地网络 + - 代理网络 + - 规则路由 + - 其他特殊类型 + +- `server`: 代理服务器,支持: + - HTTP 服务器 + - SOCKS5 服务器 + - 混合模式服务器 + +## 工作原理 + +```mermaid +graph LR; + Server(代理服务器) -->|使用| Rule(规则路由) + Rule -->|分流| Proxy1(代理1) + Rule -->|分流| Proxy2(代理2) + Rule -->|分流| Direct(直连) + Proxy1 --> Internet(互联网) + Proxy2 --> Internet + Direct --> Internet +``` + +要点: + +1. 每个 net 都有唯一的名字和类型 +2. 大多数 net 可以链式组合 +3. server 可以同时部署多个 +4. 支持灵活的规则分流 + +详细配置示例请参考[配置指南](format)。 diff --git a/docs/docs/config/format.md b/docs/docs/config/format.md new file mode 100644 index 0000000..ea0749b --- /dev/null +++ b/docs/docs/config/format.md @@ -0,0 +1,109 @@ +--- +sidebar_position: 2 +--- + +# 配置文件格式 + +`rabbit-digger-pro` 使用 YAML 格式的配置文件。配置文件由三个主要的根级字段组成: + +## net + +`net` 字段用于配置代理节点和链路。每个代理节点都是一个键值对,其中键是节点名称,值是节点配置。 + +```yaml +net: + # Shadowsocks 代理节点 + my_ss: + type: shadowsocks + server: example.com:1234 + cipher: aes-256-cfb + password: password + + # HTTP 代理节点 + http_proxy: + type: http + server: 127.0.0.1 + port: 8080 +``` + +## server + +`server` 字段用于配置本地服务器,比如 HTTP/SOCKS5 代理服务器。 + +```yaml +server: + # 混合模式代理服务器 + mixed: + type: http+socks5 + bind: 127.0.0.1:1080 + net: my_ss # 使用上面定义的 my_ss 节点 + + # HTTP 代理服务器 + http: + type: http + bind: 127.0.0.1:8080 + net: local # 使用直连节点 +``` + +## import + +`import` 字段用于导入其他配置文件或 Clash 配置。rabbit-digger-pro 会根据 `import` 的顺序依次导入配置文件。 + +```yaml +import: + # 导入本地配置文件,合并到当前配置 + - type: merge + source: + path: ./local-config.yaml + + # 导入 Clash 配置 + - type: clash + source: + poll: + url: "https://example.com/clash-config.yaml" + interval: 86400 +``` + +### 完整示例 + +```yaml +net: + # Shadowsocks 代理节点 + my_ss: + type: shadowsocks + server: example.com:1234 + cipher: aes-256-cfb + password: password + + # HTTP 代理节点 + http_proxy: + type: http + server: 127.0.0.1 + port: 8080 + +server: + # 混合模式代理服务器 + mixed: + type: http+socks5 + bind: 127.0.0.1:1080 + net: my_ss # 使用上面定义的 my_ss 节点 + + # HTTP 代理服务器 + http: + type: http + bind: 127.0.0.1:8080 + net: local # 使用直连节点 + +import: + # 导入本地配置文件,合并到当前配置 + - type: merge + source: + path: ./local-config.yaml + + # 导入 Clash 配置 + - type: clash + source: + poll: + url: "https://example.com/clash-config.yaml" + interval: 86400 +```