代理策略
代理策略表示将请求转发到另一个代理服务器。Chute 支持 HTTP/HTTPS/SOCKS5/SOCKS5-TLS/SS/SSR/Trojan/VMess/VLESS/AnyTLS/TUIC/Hysteria2/WireGuard/ShadowTLS/SSH 代理协议。
[Proxy] 部分用于声明代理策略。你可以为不同的规则创建多个代理。
示例:
[Proxy]
ProxyHTTP = http, 1.2.3.4, 443, username, password
ProxyHTTPS = https, 1.2.3.4, 443, username, password, sni=example.com, skip-cert-verify=false
ProxySOCKS5 = socks5, 1.2.3.4, 443, username, password
ProxySOCKS5TLS = socks5-tls, 1.2.3.4, 443, username, password, sni=example.com, skip-cert-verify=false
SS = ss, 1.2.3.4, 443, method, password, obfs=post
SSR = ssr, 1.2.3.4, 443, method, password, protocol=auth_chain_f, protocol_param=user:pass, obfs=http_pose, obfs_param=example.com
Trojan = trojan, 1.2.3.4, 443, password=password, 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
SSH = ssh, 1.2.3.4, 22, root, password=pw
SCHEME = scheme, ssr://....
参数
| 类型 | 用户名 | 密码 | 加密方法 | 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, 指纹 | |||||
| SSH | √ | 认证 |
带 TLS 的代理参数
tls:可选。
tls=true
启用 TLS 传输。
skip-cert-verify:可选
skip-cert-verify=true
如果启用此选项,Chute 将不会验证服务器证书。
sni(默认值:hostname)
sni=exmaple.com
你可以自定义 TLS 握手期间的服务器名称指示(SNI)。使用 sni=off 可完全关闭 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-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 和 Trojan 协议。
reality:可选。
reality=true
启用 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, server-name=www.microsoft.com, short-id=abcd, fingerprint=chrome
注意:REALITY 不使用传统证书。连接使用伪装服务器的真实证书。
TCP 快速打开(实验性)
tfo:可选
tfo=true
有关 TCP 快速打开的更多信息,可参阅 Wikipedia。启用 TCP 快速打开可能会导致意外的连接失败。
带 AnyTLS 的代理参数
AnyTLS 是一种基于 TLS 的代理协议,带有填充混淆功能。
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, skip-cert-verify=false, padding-scheme=ux
password:必填。
用于认证的密码/口令。
sni(默认值:hostname)
sni=exmaple.com
与 TLS 相同。
skip-cert-verify:可选
skip-cert-verify=true
与 TLS 相同。
padding-scheme:可选
padding-scheme=ux
指定 TLS 记录填充方案。支持的值:ux。
可以通过指定层数和每层方案来配置多个填充层:
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, stop=2, 0=ux, 1=ux
| 参数 | 描述 |
|---|---|
stop |
填充方案层数 |
0、1、2、... |
每层的填充方案(数字键) |
带 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-ipv6:可选(内联模式)。
分配给 WireGuard 接口的本地 IPv6 地址。
server:可选(内联模式)。
远程 WireGuard 服务器地址。
port:可选(内联模式)。
远程 WireGuard 服务器端口。
preshared-key:可选。
Base64 编码的预共享密钥,用于抗量子计算攻击。
keepalive:可选(秒)。
keepalive=25
用于 NAT 穿透的持久保活间隔。
mtu:可选。
mtu=1420
WireGuard 接口的 MTU。
reserved-bits:可选。
reserved-bits=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。使用常见的浏览器指纹有助于避免检测。
带 SSH 的代理参数
完整文档请参阅 SSH 代理。