代理策略
代理策略表示将请求转发到另一个代理服务器。Chute 支持 HTTP/HTTPS/SOCKS5/SOCKS5-TLS/SS/SSR/Trojan/VMess/VLESS/AnyTLS/TUIC/Hysteria2/WireGuard/ShadowTLS/MASQUE/SSH 代理协议。
[Proxy] 部分用于声明代理策略。你可以为不同的规则创建多个代理。
示例:
[Proxy]
ProxyHTTP = http, 1.2.3.4, 443, username, password
ProxyHTTPS = https, 1.2.3.4, 443, username, password, sni=example.com
ProxySOCKS5 = socks5, 1.2.3.4, 443, username, password
ProxySOCKS5TLS = socks5-tls, 1.2.3.4, 443, username, password, sni=example.com
SS = ss, 1.2.3.4, 443, method, password, obfs=http
SSR = ssr, 1.2.3.4, 443, method, password, protocol=auth_chain_f, protocol_param=user:pass, obfs=http_post, obfs_param=example.com
Trojan = trojan, 1.2.3.4, 443, password=password, tls=true, sni=example.com, skip-cert-verify=false, ws=true
VMess = vmess, 1.2.3.4, 443, uuid=uuid, sni=example.com, tls=true, ws=true
VLESS = vless, 1.2.3.4, 443, uuid=uuid, sni=example.com, xtls=true
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com
TUIC = tuic, 1.2.3.4, 443, uuid=uuid, password=password, sni=example.com
Hysteria2 = hysteria2, 1.2.3.4, 443, auth=password, sni=example.com, up=10, down=100
WireGuard = wireguard, private-key=base64key, peer-public-key=base64key, section-name=wg0, self-ip=10.0.0.2
ShadowTLS = shadowtls, 1.2.3.4, 443, password=password, sni=example.com, skip-cert-verify=false, fingerprint=chrome
ProxyMASQUE = masque, 1.2.3.4, 443, token=auth-token, mode=connect-udp, sni=example.com, alpn=h3, skip-cert-verify=false
SSH = ssh, 1.2.3.4, 22, root, password=pw
SCHEME = scheme, ssr://....
注意:HTTPS 和 SOCKS5-TLS 策略在凭据之后最多只接受一个额外的
key=value选项。Trojan 策略需要显式的tls=true——TLS 不会被隐式启用。
参数
| 类型 | 用户名 | 密码 | 加密方法 | TLS | XTLS | WebSocket | QUIC |
|---|---|---|---|---|---|---|---|
| HTTP | √ | √ | |||||
| HTTPS | √ | √ | TLS | ||||
| Socks | √ | √ | |||||
| Socks5-TLS | √ | √ | TLS | ||||
| Shadowsocks | √ | 加密方法, OBFS | |||||
| ShadowsocksR | √ | 加密方法, 协议, OBFS | |||||
| Trojan | √ | √ | TLS | WS, gRPC | |||
| VMess | uuid | TLS | WS, gRPC | ||||
| VLESS | uuid | TLS | XTLS | WS, gRPC | |||
| AnyTLS | √ | TLS | |||||
| TUIC | uuid | √ | TLS | √ | |||
| Hysteria2 | auth | TLS | √ | ||||
| WireGuard | private-key | 原生 WireGuard | |||||
| ShadowTLS | √ | TLS, 指纹 | |||||
| MASQUE | token | TLS, 模式, 多路复用 | √ | ||||
| SSH | √ | 认证 | |
带 TLS 的代理参数
tls:可选。
tls=true
启用 TLS 传输。
skip-cert-verify:可选
skip-cert-verify=true
如果启用此选项,Chute 将不会验证服务器证书。
sni(默认值:hostname)
sni=exmaple.com
你可以自定义 TLS 握手期间的服务器名称指示(SNI)。默认情况下,Chute 会像大多数浏览器一样发送带有主机名的 SNI。
带 Shadowsocks 的代理参数
method:必填。
当前支持:
rc4-md5
aes-128-cfb
aes-192-cfb
aes-256-cfb
aes-128-ctr
aes-192-ctr
aes-256-ctr
bf-cfb
camellia-128-cfb
camellia-192-cfb
camellia-256-cfb
salsa20
chacha20
chacha20-ietf
aes-128-gcm
aes-192-gcm
aes-256-gcm
chacha20-ietf-poly1305
xchacha20-ietf-poly1305
Shadowsocks 2022 加密方法
Chute 支持 Shadowsocks 2022 协议,该协议使用基于 BLAKE3 的密钥派生和 AEAD 密码。加密方法名称决定了密码套件:
2022-blake3-aes-128-gcm
2022-blake3-aes-256-gcm
2022-blake3-chacha20-poly1305
密码格式:
SS2022 的密码字段由一个或两个 base64 编码的密钥组成,以 :(冒号)分隔。
单用户模式(一个密钥):
SS2022 = ss, 1.2.3.4, 443, 2022-blake3-aes-256-gcm, "base64-key"
带身份标头的多用户模式(两个密钥):
对于 2022-blake3-aes-128-gcm 和 2022-blake3-aes-256-gcm,你可以提供一个身份标头密钥和一个用户密钥,以 : 分隔:
SS2022 = ss, 1.2.3.4, 443, 2022-blake3-aes-256-gcm, "header-base64-key:user-base64-key"
每个密钥都是一个 base64 编码的字符串(支持标准 base64 和 URL 安全的 base64)。所需的密钥长度:
| 加密方法 | 用户密钥长度 | 标头密钥长度 |
|---|---|---|
2022-blake3-aes-128-gcm |
16 字节 | 16 字节 |
2022-blake3-aes-256-gcm |
32 字节 | 32 字节 |
2022-blake3-chacha20-poly1305 |
32 字节 | 不适用(不支持身份标头) |
生成密钥:
openssl rand -base64 32
注意:SS2022 加密方法不支持
obfs参数。2022-blake3-chacha20-poly1305加密方法不支持多用户模式。
obfs:可选。
当前支持:
tls
http
带 ShadowsocksR/ShadowsocksRR/ShadowsocksR-Akarin 的代理参数
method:必填。
当前支持:
rc4
rc4-md5-6
rc4-md5
aes-128-cfb
aes-192-cfb
aes-256-cfb
aes-128-ctr
aes-192-ctr
aes-256-ctr
bf-cfb
camellia-128-cfb
camellia-192-cfb
camellia-256-cfb
cast5-cfb
des-cfb
idea-cfb
rc2-cfb
seed-cfb
salsa20
chacha20
chacha20-ietf
protocol:可选。
当前支持:
origin
auth_sha1
auth_sha1_v2
auth_sha1_v4
auth_aes128_md5
auth_aes128_sha1
auth_chain_a
auth_chain_b
auth_chain_c
auth_chain_d
auth_chain_e
auth_chain_f
auth_akarin_rand
auth_akarin_spec_a
protocol_param:可选。
obfs:可选。
当前支持:
plain
http_simple
http_post
tls1.2_ticket_auth
obfs_param:可选。
带 WebSocket 的代理参数
ws:可选。
ws=true
启用 WebSocket 传输。
ws-path:可选。
ws-path=/exmaple
更改 WebSocket HTTP 请求的路径。
ws-headers:可选。
ws-headers=Header1:Value1|Header2:Value2
修改 WebSocket HTTP 请求的 HTTP 标头。
带 gRPC 的代理参数
gRPC 传输适用于 Trojan、VMess 和 VLESS 协议。它使用基于 HTTP/2 的 gRPC 帧封装通过 TLS 传输,有助于绕过某些网络限制。
grpc:可选。
grpc=true
启用 gRPC 传输。需要启用 TLS。
grpc-service-name:grpc=true 时必填。
grpc-service-name=MyService
指定用于多路复用的 gRPC 服务名称/路径。它必须与服务器上配置的服务名称一致;没有默认值。
grpc-multi-mode:可选。
grpc-multi-mode=true
启用 gRPC 多路模式,允许多个流共享单个 gRPC 连接以获得更好的性能。
VMess 与 gRPC 示例:
VMess = vmess, 1.2.3.4, 443, uuid=uuid, tls=true, grpc=true, grpc-service-name=GunService, sni=example.com
带 XTLS 的代理参数
xtls:可选。
xtls=true
启用 XTLS 传输。仅支持 xtls-rprx-direct 流。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
sni(默认值:hostname)
sni=exmaple.com
与 TLS 相同。
带 REALITY 的代理参数
REALITY 是一种基于 TLS 的混淆技术,使代理流量与访问真实网站的常规 TLS 流量无法区分。可用于 VLESS 协议。
reality:可选。
reality=true
启用 REALITY 混淆。需要一个作为伪装目标的目标服务器。
public-key:必填。
public-key=BASE64KEY
服务器的 X25519 公钥(base64)。没有它就无法构造 REALITY 握手。
short-id:可选。
short-id=abcd1234
用于 REALITY 认证的短标识符。通常是一个十六进制字符串。
server-name:可选。
server-name=www.microsoft.com
TLS 握手期间要展示的 SNI(服务器名称指示)。为获得最佳伪装效果,应使用一个真实且常被访问的网站。目标服务器的证书必须与此名称匹配。
fingerprint:可选。
fingerprint=chrome
要模拟的 TLS 客户端指纹。支持的值包括 chrome、firefox、safari、ios、edge、360、qq。使用常见的浏览器指纹有助于避免检测。
spiderx:可选。
spiderx=/path
REALITY spider 伪装的自定义路径。
VLESS 示例:
VLESS = vless, 1.2.3.4, 443, uuid=uuid, reality=true, public-key=BASE64KEY, server-name=www.microsoft.com, short-id=abcd, fingerprint=chrome
注意:REALITY 不使用传统证书。连接使用伪装服务器的真实证书。
TCP 快速打开(实验性)
tfo:可选
tfo=true
有关 TCP 快速打开的更多信息,可参阅 Wikipedia。启用 TCP 快速打开可能会导致意外的连接失败。
通用参数
udp-relay:可选(默认值:true)
udp-relay=false
将策略标记为仅 TCP。在协议支持的情况下,UDP 中继默认开启;设置 udp-relay=false 可将该策略排除出 UDP 流量中继。
mux:可选
mux=true
启用连接复用/多路复用。也接受别名 multiplex 和 reuse。支持 Trojan、VMess、VLESS、Hysteria2、Shadowsocks(R) 和 MASQUE。
cert-fingerprint-sha256:可选
cert-fingerprint-sha256=<hex>
通过 SHA-256 指纹固定服务器证书。也接受别名 cert-fp。目前对基于 QUIC 的协议(例如 MASQUE)生效。
encrypt-method(VMess):可选(默认值:auto)
encrypt-method=aes-128-gcm
VMess 负载加密。支持的值:aes-128-gcm、chacha20-poly1305、aes-128-cfb(别名 legacy)、none。
alpn:可选
alpn=h2|http/1.1
多个 ALPN 值以 | 分隔。
带 AnyTLS 的代理参数
AnyTLS 是一种基于 TLS 的代理协议,带有填充混淆功能。
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, skip-cert-verify=false
password:必填。
用于认证的密码/口令。
sni(默认值:hostname)
sni=exmaple.com
与 TLS 相同。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
填充方案:可选
填充通过 stop=N 加上数字形式的逐包键来配置:
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, stop=2, 0=30-30, 1=100-400+c
| 参数 | 描述 |
|---|---|
stop |
填充数据包的数量 |
0、1、2、... |
每个数据包的填充方案(数字键) |
每个方案是由 +(或 ,)连接的段列表,其中每段要么是 c(检查),要么是 min-max 字节范围(最大 16384),例如 stop=2, 0=30-30, 1=100-400+c。
带 TUIC 的代理参数
TUIC 是一种基于 QUIC 的代理协议,提供多路复用的 TCP 和 UDP 中继。
TUIC = tuic, 1.2.3.4, 443, uuid=uuid, password=password, sni=example.com, skip-cert-verify=false, alpn=h3
uuid:必填。
用于认证的 UUID。
password:必填。
用于认证的密码。
sni(默认值:hostname)
sni=exmaple.com
与 TLS 相同。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
alpn:可选
alpn=h3
指定 QUIC 连接的 ALPN 字符串。
带 Hysteria2 的代理参数
Hysteria2 是一种基于 QUIC 的代理协议,采用 Brutal 拥塞控制,适用于高吞吐量场景。
Hysteria2 = hysteria2, 1.2.3.4, 443, auth=password, sni=example.com, skip-cert-verify=false, up=10, down=100, alpn=h3
auth:必填。
认证密码/令牌。
sni(默认值:hostname)
sni=exmaple.com
与 TLS 相同。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
up:可选(Mbps)
up=10
上传带宽,单位为 Mbps。
down:可选(Mbps)
down=100
下载带宽,单位为 Mbps。
alpn:可选
alpn=h3
指定 QUIC 连接的 ALPN 字符串。
obfs:可选
obfs=salamander
为 QUIC 流量启用 Salamander 混淆。Salamander 使用 BLAKE2b-256 XOR 对 QUIC 数据包进行混淆,使其能够抵抗 DPI(深度数据包检测)。
obfs-password:可选
obfs-password=your-obfuscation-key
用于 Salamander 混淆的密码/密钥。当设置了 obfs=salamander 时为必填项。
带 WireGuard 的代理参数
WireGuard 是一种现代 VPN 协议。Chute 支持将 WireGuard 作为出站代理策略,可以通过内联配置或引用命名的 [WireGuard] 部分来使用。
内联配置:
WireGuard = wireguard, private-key=base64key, peer-public-key=base64key, self-ip=10.0.0.2, server=1.2.3.4, port=51820
引用配置段(推荐):
WireGuard = wireguard, section-name=wg0
有关 [WireGuard] 部分的语法,请参阅 WireGuard 配置。
private-key:必填(仅内联模式)。
Base64 编码的 WireGuard 私钥。
peer-public-key:必填(仅内联模式)。
Base64 编码的 WireGuard 对等公钥。
self-ip:可选(内联模式)。
分配给 WireGuard 接口的本地 IP 地址(例如 10.0.0.2)。
self-ip-v6:可选(内联模式)。
分配给 WireGuard 接口的本地 IPv6 地址。
server:必填。
远程 WireGuard 服务器地址(也可以来自引用的 [WireGuard] 部分,而非策略行)。
port:必填。
远程 WireGuard 服务器端口(也可以来自引用的 [WireGuard] 部分,而非策略行)。
preshared-key:可选。
Base64 编码的预共享密钥,用于抗量子计算攻击。
keepalive:可选(秒)。
keepalive=25
用于 NAT 穿透的持久保活间隔。
mtu:可选。
mtu=1420
WireGuard 接口的 MTU。
reserved:可选。
reserved=0,1,2
WireGuard 握手头部的保留字节。
带 ShadowTLS 的代理参数
ShadowTLS 是一种基于 TLS 的代理协议,将流量封装在标准的 TLS 1.3 会话中。它在 TLS 握手之后使用基于密码的握手来进行认证并建立代理连接。
ShadowTLS = shadowtls, 1.2.3.4, 443, password=password, sni=example.com, skip-cert-verify=false, fingerprint=chrome
password:必填。
用于 ShadowTLS 握手认证的密码。
sni(默认值:hostname)
sni=example.com
与 TLS 相同。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
fingerprint:可选
fingerprint=chrome
要模拟的 TLS 客户端指纹。支持的值包括 chrome、firefox、safari、ios、edge、360、qq。使用常见的浏览器指纹有助于避免检测。
带 MASQUE 的代理参数
MASQUE 是一种基于 HTTP/3 的代理协议,通过 QUIC 隧道传输流量。一条 MASQUE 策略需要 type、host 和 port;认证 token 可选。
ProxyMASQUE = masque, 1.2.3.4, 443, token=auth-token, mode=connect-udp, sni=example.com, alpn=h3, skip-cert-verify=false, mux=true
token:可选
token=auth-token
MASQUE 服务器的可选 Bearer 认证令牌。也接受别名 masque-token=。
mode:可选
mode=connect-udp
为兼容性而接受,但不会改变隧道行为:TCP 流始终使用普通 CONNECT 隧道,UDP 流始终使用 connect-udp。
mux:可选
mux=true
在共享的 QUIC 连接上启用多路复用(受连接池设置控制)。
sni / alpn / skip-cert-verify:可选
与 TLS 相同。由于 MASQUE 基于 QUIC,通常使用 alpn=h3。
带 SSH 的代理参数
完整文档请参阅 SSH 代理。