นโยบายพร็อกซี
นโยบายพร็อกซีบ่งบอกถึงการส่งต่อคำขอไปยังเซิร์ฟเวอร์พร็อกซีอื่น 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
คุณสามารถปรับแต่ง Server Name Indication (SNI) ในระหว่างการจับมือ TLS ใช้ 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-safe) ความยาวคีย์ที่ต้องการ:
| เมธอด | ความยาวคีย์ผู้ใช้ | ความยาวคีย์ส่วนหัว |
|---|---|---|
2022-blake3-aes-128-gcm |
16 ไบต์ | 16 ไบต์ |
2022-blake3-aes-256-gcm |
32 ไบต์ | 32 ไบต์ |
2022-blake3-chacha20-poly1305 |
32 ไบต์ | N/A (ไม่รองรับส่วนหัวระบุตัวตน) |
สร้างคีย์:
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
เปลี่ยนเส้นทางของคำขอ HTTP WebSocket
ws-headers: ไม่บังคับ
ws-headers=Header1:Value1|Header2:Value2
แก้ไขส่วนหัว HTTP ของคำขอ HTTP WebSocket
พารามิเตอร์สำหรับพร็อกซีด้วย gRPC
การขนส่ง gRPC มีให้สำหรับโปรโตคอล Trojan, VMess และ VLESS มันใช้การจัดเฟรม gRPC แบบ HTTP/2 ผ่าน 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
SNI (Server Name Indication) ที่จะนำเสนอระหว่างการจับมือ TLS นี้ควรเป็นเว็บไซต์จริงที่เข้าถึงบ่อยเพื่อผลการพรางที่ดีที่สุด ใบรับรองของเซิร์ฟเวอร์เป้าหมายต้องตรงกับชื่อนี้
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 Fast Open (ทดลอง)
tfo: ไม่บังคับ
tfo=true
ข้อมูลเพิ่มเติมของ TCP fast open สามารถอ่านได้ใน Wikipedia การเปิดใช้งาน TCP fast open อาจทำให้การเชื่อมต่อล้มเหลวอย่างไม่คาดคิด
พารามิเตอร์สำหรับพร็อกซีด้วย AnyTLS
AnyTLS เป็นโปรโตคอลพร็อกซีแบบ TLS พร้อมการอำพรางด้วย padding
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
ระบุรูปแบบการเพิ่ม padding ของระเบียน TLS ค่าที่รองรับ: ux
สามารถกำหนดค่าเลเยอร์ padding หลายชั้นโดยระบุจำนวนเลเยอร์และรูปแบบต่อเลเยอร์:
AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, stop=2, 0=ux, 1=ux
| พารามิเตอร์ | คำอธิบาย |
|---|---|
stop |
จำนวนเลเยอร์รูปแบบ padding |
0, 1, 2, ... |
รูปแบบ padding สำหรับแต่ละเลเยอร์ (คีย์ตัวเลข) |
พารามิเตอร์สำหรับพร็อกซีด้วย 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
ระบุสตริง ALPN สำหรับการเชื่อมต่อ QUIC
พารามิเตอร์สำหรับพร็อกซีด้วย 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
ระบุสตริง ALPN สำหรับการเชื่อมต่อ QUIC
obfs: ไม่บังคับ
obfs=salamander
เปิดใช้งานการอำพราง Salamander สำหรับทราฟฟิก QUIC Salamander ใช้ BLAKE2b-256 XOR เพื่ออำพรางแพ็กเก็ต QUIC ทำให้ทนต่อ DPI (Deep Packet Inspection)
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: จำเป็นต้องระบุ (เฉพาะในบรรทัด)
คีย์ส่วนตัว WireGuard ที่เข้ารหัส base64
peer-public-key: จำเป็นต้องระบุ (เฉพาะในบรรทัด)
คีย์สาธารณะของเพียร์ WireGuard ที่เข้ารหัส base64
self-ip: ไม่บังคับ (ในบรรทัด)
ที่อยู่ IP ในเครื่องที่กำหนดให้กับอินเทอร์เฟซ WireGuard (เช่น 10.0.0.2)
self-ipv6: ไม่บังคับ (ในบรรทัด)
ที่อยู่ IPv6 ในเครื่องที่กำหนดให้กับอินเทอร์เฟซ WireGuard
server: ไม่บังคับ (ในบรรทัด)
ที่อยู่เซิร์ฟเวอร์ WireGuard ระยะไกล
port: ไม่บังคับ (ในบรรทัด)
พอร์ตเซิร์ฟเวอร์ WireGuard ระยะไกล
preshared-key: ไม่บังคับ
คีย์ที่แชร์ล่วงหน้าที่เข้ารหัส base64 สำหรับการต้านทาน post-quantum
keepalive: ไม่บังคับ (วินาที)
keepalive=25
ช่วง keepalive ถาวรสำหรับการข้าม NAT
mtu: ไม่บังคับ
mtu=1420
MTU สำหรับอินเทอร์เฟซ WireGuard
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 Proxy สำหรับเอกสารฉบับเต็ม