add translated docs

This commit is contained in:
InkerBot
2026-03-05 14:09:24 +08:00
parent 28f3bc87f2
commit 42689fe6e2
4 changed files with 214 additions and 0 deletions
@@ -0,0 +1,59 @@
--- /dev/null
+++ b/docs/configuration/inbound/mysql.zh.md
@@ -0,0 +1,56 @@
+// OMV
+
+### 结构
+
+```json
+{
+ "type": "mysql",
+ "tag": "mysql-in",
+
+ ... // 监听字段
+
+ "users": [
+ {
+ "user": "root",
+ "password": "my_password"
+ }
+ ],
+ "tls": {},
+ "multiplex": {}
+}
+```
+
+### 监听字段
+
+详见 [监听字段](/configuration/shared/listen/)。
+
+### 字段
+
+#### users
+
+MySQL 用户列表,用于握手阶段的身份验证。
+
+#### tls
+
+==必填==
+
+TLS 配置,详见 [TLS](/configuration/shared/tls/#inbound)。
+
+由于 MySQL 协议在握手阶段进行 TLS 协商,TLS 必须启用。
+
+#### multiplex
+
+详见 [多路复用](/configuration/shared/multiplex#inbound)。
+
+### 说明
+
+MySQL 入站通过 MySQL 协议握手完成 TLS 协商,随后在加密连接上运行 smux 多路复用。
+
+连接流程:
+
+1. 客户端连接并执行标准 MySQL 握手(使用 [go-mysql](https://github.com/go-mysql-org/go-mysql)
+2. TLS 在 MySQL 握手过程中完成协商
+3. 握手结束后,smux 会话在 TLS 连接之上进行多路复用
+4. 每个 smux 流携带 1 字节命令(`0x01` 表示 TCP`0x03` 表示 UDP)加 SOCKS 地址头
+
+在网络观察者眼中,该流量表现为正常的 MySQL TLS 会话。
@@ -0,0 +1,60 @@
--- /dev/null
+++ b/docs/configuration/omv.zh.md
@@ -0,0 +1,57 @@
+// OMV
+
+# OMV 改动说明
+
+本页面记录了 OMVomv-dijiang)在上游 sing-box 基础上所做的全部改动。
+
+## MySQL 协议
+
+一种将流量伪装为 MySQL TLS 连接的自定义代理协议。
+
+- [MySQL 入站](/configuration/inbound/mysql/)
+- [MySQL 出站](/configuration/outbound/mysql/)
+
+### 工作原理
+
+1. 客户端与服务端执行标准 MySQL 握手(使用 [go-mysql](https://github.com/go-mysql-org/go-mysql)
+2. TLS 在 MySQL 协议握手过程中完成协商(与真实 MySQL 客户端升级 TLS 的方式相同)
+3. 握手结束后,[smux](https://github.com/sagernet/smux) 多路复用运行在加密连接之上
+4. 每个 smux 流携带命令字节和目标地址,随后代理对应连接
+
+在网络观察者眼中,该流量表现为正常的 MySQL TLS 会话(端口 3306)。
+
+## 订阅支持
+
+`sing-box run` 命令支持通过环境变量从远程 URL 获取配置。
+
+### 使用方式
+
+```bash
+SING_SUBSCRIPTION_LINK="https://example.com/config.json" \
+SING_SUBSCRIPTION_CACHE="/path/to/cache.json" \
+sing-box run -c env
+```
+
+### 环境变量
+
+#### `SING_SUBSCRIPTION_LINK`
+
+远程配置的获取地址。仅在配置路径指定为 `env`(即 `-c env`)时生效。
+
+#### `SING_SUBSCRIPTION_CACHE`
+
+可选。本地缓存文件路径。
+
+- 成功获取配置后,内容会保存到该文件
+- 获取失败(网络错误或状态码非 200)时,使用缓存文件作为兜底
+- 若未设置且获取失败,命令将返回错误
+
+## URLTest 延迟惩罚(costs
+
+`urltest` 出站组支持 `costs` 字段,可为指定出站添加人工延迟惩罚。
+
+详见 [URLTest 出站](/configuration/outbound/urltest/#costs)。
+
+## 日志级别调整
+
+进程路径查询日志(如 "found process path: ..."、"found user: ...")从 `info` 级别降低为 `debug` 级别,以减少日志噪音。
@@ -0,0 +1,68 @@
--- /dev/null
+++ b/docs/configuration/outbound/mysql.zh.md
@@ -0,0 +1,65 @@
+// OMV
+
+### 结构
+
+```json
+{
+ "type": "mysql",
+ "tag": "mysql-out",
+
+ "server": "127.0.0.1",
+ "server_port": 3306,
+ "username": "root",
+ "password": "my_password",
+ "tls": {},
+ "multiplex": {},
+
+ ... // 拨号字段
+}
+```
+
+### 字段
+
+#### server
+
+==必填==
+
+服务器地址。
+
+#### server_port
+
+服务器端口。
+
+默认 `3306`。
+
+#### username
+
+MySQL 身份验证用户名。
+
+默认 `root`。
+
+#### password
+
+MySQL 身份验证密码。
+
+#### tls
+
+TLS 配置,详见 [TLS](/configuration/shared/tls/#outbound)。
+
+若未设置或未启用,将使用不验证证书的 TLS 配置(因为 MySQL 握手隧道必须使用 TLS)。
+
+#### multiplex
+
+详见 [多路复用](/configuration/shared/multiplex#outbound)。
+
+`max_connections` 选项控制同时维护的 smux 会话数量(每个会话对应一条独立的 MySQL+TLS 连接),新建流以轮询方式分配到各会话。
+
+### 拨号字段
+
+详见 [拨号字段](/configuration/shared/dial/)。
+
+### 说明
+
+MySQL 出站连接到 MySQL 入站服务器,通过 MySQL 客户端握手(使用 [go-mysql](https://github.com/go-mysql-org/go-mysql))完成 TLS 协商,随后在加密连接上建立 smux 会话。
+
+每个被代理的连接会开启一条新的 smux 流,流头携带 1 字节命令(`0x01` 表示 TCP`0x03` 表示 UDP)及目标地址。UDP 连接使用 UDP-over-TCPUoT)方式传输。
@@ -0,0 +1,27 @@
--- a/docs/configuration/outbound/urltest.zh.md
+++ b/docs/configuration/outbound/urltest.zh.md
@@ -10,6 +10,9 @@
"proxy-b",
"proxy-c"
],
+ "costs": {
+ "proxy-c": 100
+ },
"url": "",
"interval": "",
"tolerance": 50,
@@ -26,6 +29,14 @@
用于测试的出站标签列表。
+#### costs
+
+出站标签到额外延迟惩罚(毫秒)的映射。
+
+惩罚值会叠加到测量延迟上,用于在不移除出站的情况下降低其优先级。
+
+例如,`{"proxy-c": 100}` 会给 `proxy-c` 的测量延迟增加 100ms,使其仅在明显快于其他出站时才会被选中。
+
#### url
用于测试的链接。默认使用 `https://www.gstatic.com/generate_204`。