GOST relay — mihomo
mihomo 可以使用 GOST 的 relay 协议,将 GOST relay 服务器作为出站拨号。连接可以是明文或封装在 TLS 中,可选地带流多路复用, 并通过用户名/密码对进行认证。
出站
位于 proxies: 下、type: gost-relay 的条目。内嵌 BasicOption (通用出站字段)。
| 字段 | 类型 | 默认值 | 允许值 | 描述 |
|---|---|---|---|---|
name | string | (required) | <string> | 唯一的代理名称。 |
server | string | (required) | <host> | GOST relay 服务器主机/IP。 |
port | int | (required) | <port> | GOST relay 服务器端口。 |
forward | bool | false | true | false | 转发模式:以空目标地址发送 relay 请求,让服务器路由到其自身预先配置的上游,而非 mihomo 请求的地址。 |
udp | bool | false | true | false | 启用 UDP 中继。 |
tls | bool | false | true | false | 将 relay 连接封装在 TLS 中。 |
mux | bool | false | true | false | 在单条连接上多路复用多个流(smux)。 |
sni | string | (server name) | <SNI> | 启用 `tls` 时的 TLS SNI。默认为 `server`。 |
username | string | (unset) | <string> | relay 认证用户名。 |
password | string | (unset) | <string> | relay 认证密码。 |
skip-cert-verify | bool | false | true | false | 禁用 TLS 校验(仅测试)。 |
fingerprint | string | (unset) | <SHA256 hex> | 将服务器的 TLS 证书固定为此指纹。 |
certificate | string | (unset) | <PEM file path> | 客户端证书(mTLS)。 |
private-key | string | (unset) | <key file path> | 与 `certificate` 匹配的私钥。 |
client-fingerprint | string | (global) | chrome | firefox | safari | ios | edge | random | randomized | 要模拟的 uTLS client-hello 指纹。 |
源码: adapter/outbound/gost_relay.go:19-36 · 锚定版本 v1.19.27 (5184081)
示例
出站——带认证的明文 relay:
yaml
proxies:
- name: gost-srv
type: gost-relay
server: relay.example.com
port: 8443
username: <username>
password: <password>
udp: true出站——带多路复用的 TLS relay:
yaml
proxies:
- name: gost-tls
type: gost-relay
server: relay.example.com
port: 443
tls: true
sni: relay.example.com
mux: true
username: <username>
password: <password>
udp: true说明
- 默认情况下,mihomo 将请求的目标发送给 relay 服务器,由服务器代为连接。 设置
forward: true后,relay 请求携带一个空目标地址,于是服务器将连接 路由到其自身预先配置的上游,而非 mihomo 请求的地址——在链接到已有固定下一跳 的 relay 时很有用。 mux将(可选 TLS 的)连接封装在一个 smux 会话中,并为每次拨号开启一个流, 在单条底层套接字上多路复用多个逻辑连接。tls为 relay 连接启用 TLS。sni覆盖握手服务器名(默认为server);skip-cert-verify、fingerprint、certificate/private-key(mTLS)以及client-fingerprint(uTLS)用于调整 TLS 层。除非启用tls,否则它们不生效。udp: true通过服务器启用 UDP 中继。
跨内核说明
- GOST 是一个独立的 relay 项目,拥有自己的协议。Xray-core 与 sing-box 均无内置的 GOST relay 客户端,因此此出站是 mihomo 特有的——若要从这些内核到达 GOST 端点, 你需要用它们都支持的协议(例如 Shadowsocks 或 SOCKS 跳板)在其前端封装。
源码: adapter/outbound/gost_relay.go:19-36 · v1.19.27 (5184081)
