This commit is contained in:
InkerBot
2026-03-05 13:58:29 +08:00
parent 8d9f52a180
commit 07f086b55d
4 changed files with 212 additions and 0 deletions
@@ -0,0 +1,68 @@
--- /dev/null
+++ b/docs/configuration/outbound/mysql.md
@@ -0,0 +1,65 @@
+// OMV
+
+### Structure
+
+```json
+{
+ "type": "mysql",
+ "tag": "mysql-out",
+
+ "server": "127.0.0.1",
+ "server_port": 3306,
+ "username": "root",
+ "password": "my_password",
+ "tls": {},
+ "multiplex": {},
+
+ ... // Dial Fields
+}
+```
+
+### Fields
+
+#### server
+
+==Required==
+
+The server address.
+
+#### server_port
+
+The server port.
+
+Default `3306`.
+
+#### username
+
+The MySQL username for authentication.
+
+Default `root`.
+
+#### password
+
+The MySQL password for authentication.
+
+#### tls
+
+TLS configuration, see [TLS](/configuration/shared/tls/#outbound).
+
+If not set or disabled, an insecure TLS config will be used (since TLS is required for the MySQL handshake tunnel).
+
+#### multiplex
+
+See [Multiplex](/configuration/shared/multiplex#outbound) for details.
+
+The `max_connections` option controls how many parallel smux sessions (each over a separate MySQL+TLS connection) are maintained. Streams are round-robin distributed across sessions.
+
+### Dial Fields
+
+See [Dial Fields](/configuration/shared/dial/) for details.
+
+### Description
+
+The MySQL outbound connects to a MySQL inbound server. It performs a MySQL client handshake (using [go-mysql](https://github.com/go-mysql-org/go-mysql)) to negotiate TLS, then establishes smux sessions over the encrypted connection.
+
+Each proxied connection opens a new smux stream with a 1-byte command header (`0x01` for TCP, `0x03` for UDP) followed by the destination address. UDP connections use UDP-over-TCP (UoT).
@@ -0,0 +1,27 @@
--- a/docs/configuration/outbound/urltest.md
+++ b/docs/configuration/outbound/urltest.md
@@ -10,6 +10,9 @@
"proxy-b",
"proxy-c"
],
+ "costs": {
+ "proxy-c": 100
+ },
"url": "",
"interval": "",
"tolerance": 0,
@@ -26,6 +29,14 @@
List of outbound tags to test.
+#### costs
+
+A map of outbound tag to additional latency penalty in milliseconds.
+
+The penalty is added to the measured latency when selecting the best outbound. This allows deprioritizing certain outbounds without removing them from the test group.
+
+For example, `{"proxy-c": 100}` adds 100ms to `proxy-c`'s measured latency, making it less likely to be selected unless it is significantly faster than other outbounds.
+
#### url
The URL to test. `https://www.gstatic.com/generate_204` will be used if empty.