--- /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-TCP(UoT)方式传输。