นโยบายพร็อกซี

นโยบายพร็อกซีบ่งบอกถึงการส่งต่อคำขอไปยังเซิร์ฟเวอร์พร็อกซีอื่น 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://....

ข้อสังเกต: นโยบาย Trojan ต้องระบุ tls=true อย่างชัดเจน — TLS จะไม่ถูกกำหนดโดยนัย

พารามิเตอร์

ประเภท ชื่อผู้ใช้ รหัสผ่าน เมธอด TLS XTLS WebSocket QUIC
HTTP
HTTPS TLS
Socks
Socks5-TLS TLS
Shadowsocks เมธอด, OBFS
ShadowsocksR เมธอด, โปรโตคอล, OBFS
Trojan TLS, ลายนิ้วมือ, ECH WS, gRPC, XHTTP
VMess uuid TLS, ลายนิ้วมือ, ECH WS, gRPC, XHTTP
VLESS uuid TLS, ลายนิ้วมือ, ECH XTLS WS, gRPC, XHTTP
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

คุณสามารถปรับแต่ง Server Name Indication (SNI) ในระหว่างการจับมือ TLS โดยค่าเริ่มต้น Chute จะส่ง SNI ด้วยชื่อโฮสต์เหมือนเบราว์เซอร์ส่วนใหญ่

fingerprint: ไม่บังคับ

fingerprint=chrome

ส่ง TLS ClientHello ของเบราว์เซอร์แทนของระบบ เพื่อไม่ให้การจับมือดูโดดเด่นว่าเป็น ไคลเอนต์พร็อกซี ค่าที่รองรับคือ chrome, firefox, safari และ ios รวมถึง edge, 360, qq, android และ random ซึ่งทั้งหมดถูกจัดการเป็น Chrome

ใช้ได้กับ Trojan, VMess และ VLESS ที่ทำงานบน TLS รวมถึงการขนส่งแบบ WebSocket และ gRPC ส่วน REALITY และ ShadowTLS มีตัวเลือกชื่อเดียวกันในหัวข้อของตนเอง หากต้องการ กำหนดลายนิ้วมือเดียวให้ทุกนโยบายที่ไม่ได้ระบุเอง ให้ใช้ global-client-fingerprint

การกำหนดลายนิ้วมือยังเปิดใช้การแลกเปลี่ยนคีย์แบบต้านควอนตัมด้วย: Chute จะเสนอกลุ่ม ไฮบริด X25519MLKEM768 ควบคู่ไปกับ X25519 ทำให้เซสชันที่ถูกบันทึกไว้วันนี้ไม่อาจถูก ถอดรหัสในภายหลังโดยผู้โจมตีที่มีคอมพิวเตอร์ควอนตัม เซิร์ฟเวอร์ที่ไม่รู้จักกลุ่มนี้จะเลือก X25519 ตามปกติ จึงไม่มีอะไรเสียหาย หากไม่ได้กำหนดลายนิ้วมือ การเชื่อมต่อจะใช้ TLS ของระบบซึ่งไม่เสนอกลุ่มนี้ ด้วยเหตุผลเดียวกับที่ ECH ต้องมีลายนิ้วมือ


พารามิเตอร์สำหรับพร็อกซีด้วย 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 ไม่รองรับโหมดหลายผู้ใช้

เมธอด Shadowsocks AEGIS

Chute รองรับตระกูลรหัส AEAD แบบ AEGIS ด้วย รหัสเหล่านี้สร้างขึ้นบนฟังก์ชันรอบของ AES และเร็วกว่า AES-GCM หรือ ChaCha20-Poly1305 อย่างชัดเจนบนหน่วยประมวลผลที่มี AES ในฮาร์ดแวร์ ซึ่งรวมถึง iPhone, iPad, Apple TV และ Mac รุ่นใหม่ทั้งหมด:

aegis-128l
aegis-256

ตั้งค่าเหมือนเมธอด AEAD แบบดั้งเดิมด้านบน โดยรหัสผ่านเป็นวลีรหัสผ่านธรรมดา ไม่ใช่คีย์แบบ base64:

AEGIS = ss, 1.2.3.4, 443, aegis-128l, your-password
เมธอด คีย์ Nonce แท็ก
aegis-128l 16 ไบต์ 16 ไบต์ 16 ไบต์
aegis-256 32 ไบต์ 32 ไบต์ 16 ไบต์

ส่วนที่เหลือเป็นไปตาม SIP004 ทุกประการ: salt ยาวเท่ากับคีย์ คีย์ย่อยของเซสชันคือ HKDF-SHA1(key, salt, "ss-subkey") เพย์โหลด TCP ส่งเป็นชิ้น AEAD ที่มีคำนำหน้าความยาวและเพิ่มค่า nonce หลังแต่ละการดำเนินการ ส่วน UDP ใช้ nonce ที่เป็นศูนย์ทั้งหมด

คุณต้องรันเซิร์ฟเวอร์เอง AEGIS ไม่ได้เป็นส่วนหนึ่งของข้อกำหนด Shadowsocks ไม่มี SIP ใดนิยามไว้ และไม่มีเซิร์ฟเวอร์ Shadowsocks กระแสหลักตัวใดรองรับ ทั้ง shadowsocks-rust, shadowsocks-libev, shadowsocks-go, sing-box และ Xray การเลือกเมธอดเหล่านี้จะใช้งานได้เฉพาะกับเซิร์ฟเวอร์ที่คุณดูแลเองและสร้างมาให้รองรับเท่านั้น หากคุณเชื่อมต่อกับโหนดเชิงพาณิชย์หรือโหนดที่ใช้ร่วมกัน ให้ใช้เมธอดที่ใช้งานร่วมกันได้ด้านบนแทน

obfs: ไม่บังคับ

ปัจจุบันรองรับ:

tls
http

obfs_param: ไม่บังคับ

obfs_param=example.com

กำหนด Host ที่ชั้น obfs ใช้ หากไม่ได้ตั้งค่าจะใช้ค่าเริ่มต้น cloudfront.net


พารามิเตอร์สำหรับพร็อกซีด้วย 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=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

พารามิเตอร์สำหรับพร็อกซีด้วย XHTTP

การขนส่ง XHTTP ใช้ได้กับโปรโตคอล Trojan, VMess และ VLESS แทนที่จะเปิดการเชื่อมต่อ ค้างไว้หนึ่งเส้น มันจะบรรจุอุโมงค์ไว้ในคำขอ HTTP ธรรมดา ขาดาวน์โหลดมาเป็นการตอบกลับ เส้นเดียวที่ไม่จบ ส่วนขาอัปโหลดออกไปเป็นชุดคำขอ POST หรือเป็น POST เส้นเดียวที่ไม่จบ สิ่งนี้ทำให้ใช้งานผ่าน CDN ได้ ซึ่งเป็นเหตุผลหลักที่เลือกใช้แทน WebSocket หรือ gRPC

เวอร์ชัน HTTP ไม่ได้ตั้งค่าโดยตรง ถ้าไม่มี TLS จะเป็น HTTP/1.1 ถ้ามี TLS จะเป็น HTTP/2 เว้นแต่ alpn เป็น http/1.1 พอดี (ได้ HTTP/1.1) หรือเป็น h3 พอดี (ได้ HTTP/3) ส่วน REALITY จะใช้ HTTP/2 เสมอ

xhttp: ไม่บังคับ

xhttp=true

เปิดใช้งานการขนส่ง XHTTP

xhttp-mode: ไม่บังคับ

xhttp-mode=packet-up

วิธีนำพาข้อมูลขาอัปโหลด ค่า auto (ค่าเริ่มต้น) เท่ากับ packet-up และเท่ากับ stream-one เมื่อใช้ REALITY

  • packet-up — ขาอัปโหลดเป็นชุดคำขอ POST ที่มีหมายเลขกำกับ เข้ากันได้ดีที่สุดและ เหมาะกับ CDN มากที่สุด
  • stream-up — ขาอัปโหลดเป็น POST เส้นเดียวที่ไม่จบ ส่วนขาดาวน์โหลดใช้คำขอแยก
  • stream-one — คำขอเดียวรับส่งทั้งสองทิศทาง ต้องให้เซิร์ฟเวอร์และอุปกรณ์ระหว่างทาง รองรับ HTTP แบบสองทางพร้อมกัน

โดยทั่วไปเซิร์ฟเวอร์จะกำหนดโหมดตายตัว หากไม่ตรงกันจะตอบกลับด้วย 400

xhttp-path: ไม่บังคับ

xhttp-path=/yourpath

เส้นทางของคำขอ ค่าเริ่มต้นคือ / ต้องตรงกับเส้นทางที่เซิร์ฟเวอร์ให้บริการ XHTTP

xhttp-host: ไม่บังคับ

xhttp-host=example.com

ชื่อโฮสต์ที่ใช้ในส่วนหัว Host และ URL ของคำขอ ค่าเริ่มต้นคือ sni และใช้ที่อยู่ เซิร์ฟเวอร์เมื่อไม่ได้ตั้งค่า

xhttp-headers: ไม่บังคับ

xhttp-headers=Header1:Value1|Header2:Value2

ส่วนหัว HTTP เพิ่มเติม รูปแบบเดียวกับ ws-headers

xhttp-padding: ไม่บังคับ

xhttp-padding=100-1000

ช่วงความยาวของแพดดิงที่ทุกคำขอพกไป เขียนเป็น MIN-MAX หรือตัวเลขเดียว ค่าเริ่มต้นคือ 100-1000 เซิร์ฟเวอร์บังคับให้มีแพดดิงและตรวจสอบความยาว ช่วงนี้จึง ต้องอยู่ในกรอบที่เซิร์ฟเวอร์ยอมรับ คำขอที่ไม่มีแพดดิงหรือความยาวไม่ถูกต้องจะได้รับ 400

xhttp-max-post-bytes: ไม่บังคับ

xhttp-max-post-bytes=1000000

ขนาดสูงสุดของ POST ขาอัปโหลดหนึ่งครั้ง หน่วยเป็นไบต์ ค่าเริ่มต้นคือ 1000000 การเขียนที่ใหญ่กว่านั้นจะถูกแบ่งเป็นหลาย POST

xhttp-min-post-interval: ไม่บังคับ

xhttp-min-post-interval=30

ระยะห่างขั้นต่ำระหว่าง POST ขาอัปโหลดที่ต่อเนื่องกัน หน่วยเป็นมิลลิวินาที ค่าเริ่มต้นคือ 30

xhttp-xmux-max-concurrency, xhttp-xmux-max-connections, xhttp-xmux-max-reuse-times, xhttp-xmux-max-lifetime: ไม่บังคับ

xhttp-xmux-max-concurrency=4

XMUX จะรวมการเชื่อมต่อ HTTP/2 ที่อยู่เบื้องล่างไว้ในพูล เพื่อให้หลายอุโมงค์ใช้การเชื่อมต่อ เดียวร่วมกัน ซึ่งดูเหมือนเซสชันเบราว์เซอร์ธรรมดามากกว่าการเปิดหนึ่งการเชื่อมต่อต่อหนึ่ง อุโมงค์ ทั้งสี่ค่ามีค่าเริ่มต้นเป็น 0 ซึ่งปิดการรวมพูล

  • xhttp-xmux-max-concurrency — จำนวนอุโมงค์ที่ใช้การเชื่อมต่อเดียวร่วมกันได้
  • xhttp-xmux-max-connections — จำนวนการเชื่อมต่อที่อนุญาตต่อเซิร์ฟเวอร์
  • xhttp-xmux-max-reuse-times — การเชื่อมต่อหนึ่งรับกี่อุโมงค์ก่อนจะหยุดรับใหม่
  • xhttp-xmux-max-lifetime — ผ่านไปกี่วินาทีแล้วจะหยุดรับอุโมงค์ใหม่

โปรดทราบว่านโยบาย XHTTP จะปฏิเสธ mux=true เพราะ XHTTP มีการมัลติเพล็กซ์ของตัวเองอยู่แล้ว การซ้อนแบบทั่วไปทับลงไปจะกลายเป็นสองชั้น

xhttp-download-server, xhttp-download-port: ไม่บังคับ

xhttp-download-server=cdn.example.com

ส่งเฉพาะขาดาวน์โหลดผ่านที่อยู่อื่น ซึ่งโดยทั่วไปคือ CDN ที่อยู่หน้าเซิร์ฟเวอร์เดียวกัน ขณะที่ขาอัปโหลดยังใช้ที่อยู่หลัก ทั้งสองต้องไปถึงเซิร์ฟเวอร์เดียวกัน เพราะเซสชันเป็น สถานะฝั่งเซิร์ฟเวอร์ การเปลี่ยนเส้นทางทำได้ แต่เปลี่ยนเซิร์ฟเวอร์ไม่ได้

ตัวอย่างกับ VLESS และ XHTTP:

VLESS = vless, 1.2.3.4, 443, uuid=uuid, tls=true, xhttp=true, xhttp-mode=packet-up, xhttp-path=/yourpath, sni=example.com

พารามิเตอร์สำหรับพร็อกซีด้วย XTLS

xtls: ไม่บังคับ

xtls=true

เปิดใช้งานการขนส่ง XTLS ด้วยโฟลว์ xtls-rprx-direct หากต้องการใช้ XTLS Vision ให้ใช้พารามิเตอร์ flow แทน

flow: ไม่บังคับ

flow = xtls-rprx-vision

เลือกการควบคุมโฟลว์ของ XTLS ค่าเดียวที่รองรับคือ xtls-rprx-vision ซึ่งเปิดใช้การจัดเฟรมแบบ Vision โดยค่าโฟลว์นี้จะถูกส่งไปยังเซิร์ฟเวอร์ใน addons ของ VLESS

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

SNI (Server Name Indication) ที่จะนำเสนอระหว่างการจับมือ TLS นี้ควรเป็นเว็บไซต์จริงที่เข้าถึงบ่อยเพื่อผลการพรางที่ดีที่สุด ใบรับรองของเซิร์ฟเวอร์เป้าหมายต้องตรงกับชื่อนี้

fingerprint: ไม่บังคับ

fingerprint=chrome

ลายนิ้วมือไคลเอนต์ TLS ที่จะเลียนแบบ ค่าที่รองรับรวมถึง chrome, firefox, safari, ios, edge, 360, qq, android, random การใช้ลายนิ้วมือเบราว์เซอร์ทั่วไปช่วยหลีกเลี่ยงการตรวจจับ โปรดทราบว่า android และ random ไม่ได้แตกต่างกันในที่นี้ — ทั้งสองค่าจะถูกถือว่าเป็น chrome (พร้อมบันทึกคำเตือนในล็อก)

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 ไม่ใช้ใบรับรองแบบดั้งเดิม การเชื่อมต่อใช้ใบรับรองจริงของเซิร์ฟเวอร์พราง


พารามิเตอร์สำหรับพร็อกซีที่ใช้ ECH

Encrypted Client Hello ซ่อนชื่อเซิร์ฟเวอร์จากผู้ที่เฝ้าดูการเชื่อมต่อ ชื่อจริงจะถูก เข้ารหัสอยู่ภายในการจับมือ ส่วนชื่อที่ปรากฏบนเส้นทางคือ public_name ที่ ECHConfig ของเซิร์ฟเวอร์ประกาศไว้

ECH สร้างอยู่บนชุดเดียวกับลายนิ้วมือไคลเอนต์ ดังนั้นนโยบายต้องตั้ง fingerprint ด้วย หากไม่มี ech=true จะไม่ทำอะไรเลยและชื่อจริง จะถูกส่งออกไปแบบไม่เข้ารหัส ใช้ได้กับ Trojan, VMess และ VLESS ที่ทำงานบน TLS ธรรมดา รวมถึงการขนส่งแบบ WebSocket ของโปรโตคอลเหล่านั้น

Notice: การขนส่งแบบ gRPC ไม่รองรับ ECH เมื่อใช้ grpc=true ค่า ech=true จะถูกเพิกเฉยอย่างเงียบ ๆ และชื่อเซิร์ฟเวอร์จริงจะถูกส่งออกไปแบบไม่เข้ารหัส (ส่วนลายนิ้วมือไคลเอนต์และการแลกเปลี่ยนคีย์แบบต้านควอนตัมยังใช้ได้กับ gRPC)

ech: ไม่บังคับ

ech=true

เปิดใช้ ECH หากไม่ได้ตั้ง ech-config Chute จะค้นหา ECHConfig จากเรกคอร์ด DNS HTTPS ของชื่อเซิร์ฟเวอร์ เช่นเดียวกับที่เบราว์เซอร์ทำ

ech-config: ไม่บังคับ

ech-config=AEX+DQBBAAAgACD...

ECHConfigList แบบ base64 ใช้แทนการค้นหาผ่าน DNS ตั้งค่านี้เมื่อเซิร์ฟเวอร์ไม่ได้ ประกาศเรกคอร์ด HTTPS หรือเมื่อต้องการตรึงการตั้งค่าใดค่าหนึ่ง

ech-public-name: ไม่บังคับ

ech-public-name=cover.example.com

แทนที่ชื่อกำบังที่ถูกส่งแบบไม่เข้ารหัส ค่าเริ่มต้นคือ public_name ภายใน ECHConfig ซึ่งเป็นค่าที่เซิร์ฟเวอร์คาดหวัง ให้ตั้งค่านี้เฉพาะกรณีที่การติดตั้งใช้โฮสต์อื่นเป็น ตัวประกาศการตั้งค่าแทน

ตัวอย่างกับ Trojan:

Trojan = trojan, 1.2.3.4, 443, password=pw, tls=true, sni=secret.example.com, fingerprint=chrome, ech=true

หากเซิร์ฟเวอร์ปฏิเสธ ECH ซึ่งมักเกิดจากการตั้งค่าที่เก่าไปแล้ว มันจะตอบด้วยชื่อกำบัง และแสดงใบรับรองของชื่อนั้น การเชื่อมต่อจึงล้มเหลวที่ขั้นตรวจสอบตัวตนแทนที่จะดำเนิน ต่อไปอย่างเงียบ ๆ ให้อัปเดต ech-config หรือลบออกเพื่อกลับไปใช้การค้นหาผ่าน DNS


TCP Fast Open (ทดลอง)

tfo: ไม่บังคับ

tfo=true

ข้อมูลเพิ่มเติมของ TCP fast open สามารถอ่านได้ใน Wikipedia การเปิดใช้งาน TCP fast open อาจทำให้การเชื่อมต่อล้มเหลวอย่างไม่คาดคิด


พารามิเตอร์ทั่วไป

udp-relay: ไม่บังคับ (ค่าเริ่มต้น: true)

udp-relay=false

ทำเครื่องหมายนโยบายเป็น TCP เท่านั้น การรีเลย์ UDP เปิดโดยค่าเริ่มต้นเมื่อโปรโตคอลรองรับ ตั้งค่า udp-relay=false เพื่อยกเว้นนโยบายจากการรีเลย์ทราฟฟิก UDP

mux: ไม่บังคับ

mux=true

เปิดใช้งานการใช้การเชื่อมต่อซ้ำ / มัลติเพล็กซ์ ชื่อแฝง multiplex และ reuse ก็ยอมรับด้วย รองรับโดย Trojan, VMess, VLESS, Hysteria2, Shadowsocks(R), ShadowTLS และ MASQUE

cert-fingerprint-sha256: ไม่บังคับ

cert-fingerprint-sha256=<hex>

ตรึงใบรับรองเซิร์ฟเวอร์ด้วยลายนิ้วมือ SHA-256 ชื่อแฝง cert-fp ก็ยอมรับด้วย ปัจจุบันมีผลเฉพาะกับ 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 หลายค่าคั่นด้วย |

underlying-proxy: ไม่บังคับ

underlying-proxy=OtherProxy

การต่อพ่วงพร็อกซี: ค่าที่ระบุคือชื่อของอีกนโยบายหนึ่งที่ควรรับส่งทราฟฟิกของนโยบายนี้ ตัวเลือกนี้ถูกแยกวิเคราะห์และเก็บรักษาไว้เมื่อบันทึกการกำหนดค่า แต่ยังไม่มีผลในเคอร์เนลปัจจุบัน — จะมีการบันทึกคำเตือนลงในล็อก และนโยบายนั้นก็ยังคงเชื่อมต่อไปยังเซิร์ฟเวอร์ของตัวเองโดยตรง

หมายเหตุ: การนำเข้าโปรไฟล์ Clash/mihomo จะสร้างตัวเลือกนี้ขึ้นมาจาก dialer-proxy ดังนั้นหลังการนำเข้า นโยบายอาจดูเหมือนถูกต่อพ่วงไว้ทั้งที่ทราฟฟิกจริงไม่ได้ถูกต่อพ่วง

test-url: ไม่บังคับ

test-url=http://www.gstatic.com/generate_204

URL สำหรับทดสอบความหน่วงเฉพาะของแต่ละนโยบาย ค่านี้ถูกยอมรับและเก็บรักษาไว้เมื่อบันทึกการกำหนดค่า แต่ไม่เคยถูกอ่าน: การวัดประสิทธิภาพจะใช้ url ของกลุ่มนโยบายที่มีนโยบายนั้นอยู่เสมอ ต่างจากตัวเลือกที่ไม่รู้จัก ค่านี้จะไม่ทำให้เกิดคำเตือน เพราะอยู่ในรายชื่อตัวเลือกที่รู้จัก


พารามิเตอร์สำหรับพร็อกซีด้วย AnyTLS

AnyTLS เป็นโปรโตคอลพร็อกซีแบบ TLS พร้อมการอำพรางด้วย padding

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

รูปแบบ padding: ไม่บังคับ

Padding ถูกกำหนดค่าด้วย stop=N บวกกับคีย์ตัวเลขต่อแพ็กเก็ต:

AnyTLS = anytls, 1.2.3.4, 443, password, sni=example.com, stop=2, 0=30-30, 1=100-400+c
พารามิเตอร์ คำอธิบาย
stop จำนวนแพ็กเก็ตที่มีการ padding
0, 1, 2, ... รูปแบบ padding สำหรับแต่ละแพ็กเก็ต (คีย์ตัวเลข)

แต่ละรูปแบบเป็นรายการของส่วน (segment) ที่เชื่อมด้วย + (หรือ ,) โดยส่วนหนึ่งเป็นได้ทั้ง c (check) หรือช่วงไบต์ 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

ระบุสตริง 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-ip-v6: ไม่บังคับ (ในบรรทัด)

ที่อยู่ IPv6 ในเครื่องที่กำหนดให้กับอินเทอร์เฟซ WireGuard

server: จำเป็นต้องระบุ

ที่อยู่เซิร์ฟเวอร์ WireGuard ระยะไกล (อาจมาจากส่วน [WireGuard] ที่อ้างอิงแทนบรรทัดนโยบายก็ได้)

port: จำเป็นต้องระบุ

พอร์ตเซิร์ฟเวอร์ WireGuard ระยะไกล (อาจมาจากส่วน [WireGuard] ที่อ้างอิงแทนบรรทัดนโยบายก็ได้)

preshared-key: ไม่บังคับ

คีย์ที่แชร์ล่วงหน้าที่เข้ารหัส base64 สำหรับการต้านทานควอนตัม (post-quantum)

keepalive: ไม่บังคับ (วินาที)

keepalive=25

ช่วง keepalive ถาวรสำหรับการข้าม NAT

mtu: ไม่บังคับ

mtu=1420

MTU สำหรับอินเทอร์เฟซ WireGuard

reserved: ไม่บังคับ

reserved=0,1,2

ไบต์สงวนสำหรับส่วนหัวแพ็กเก็ต WireGuard ถูกแยกวิเคราะห์แต่ยังไม่มีผลในเคอร์เนลปัจจุบัน — ค่านี้ไม่รองรับโดย BoringTun FFI และจะถูกเพิกเฉยพร้อมบันทึกคำเตือนในล็อก


พารามิเตอร์สำหรับพร็อกซีด้วย 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, android, random การใช้ลายนิ้วมือเบราว์เซอร์ทั่วไปช่วยหลีกเลี่ยงการตรวจจับ โปรดทราบว่า android และ random ไม่ได้แตกต่างกันในที่นี้ — ทั้งสองค่าจะถูกถือว่าเป็น chrome (พร้อมบันทึกคำเตือนในล็อก)


พารามิเตอร์สำหรับพร็อกซีด้วย 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

โทเคน Bearer แบบไม่บังคับสำหรับการยืนยันตัวตนกับเซิร์ฟเวอร์ MASQUE และยอมรับชื่อแฝง masque-token= ด้วยเช่นกัน

mode: ไม่บังคับ

mode=connect-udp

ยอมรับเพื่อความเข้ากันได้ แต่ไม่เปลี่ยนพฤติกรรมการทำอุโมงค์: โฟลว์ TCP จะใช้อุโมงค์ CONNECT ธรรมดาเสมอ และโฟลว์ UDP จะใช้ connect-udp เสมอ และยอมรับชื่อแฝง masque-mode= ด้วยเช่นกัน

mux: ไม่บังคับ

mux=true

เปิดใช้งานมัลติเพล็กซ์บนการเชื่อมต่อ QUIC ที่ใช้ร่วมกัน (ขึ้นอยู่กับการตั้งค่าพูลการเชื่อมต่อ)

sni / alpn / skip-cert-verify: ไม่บังคับ

เช่นเดียวกับ TLS เนื่องจาก MASQUE ทำงานบน QUIC จึงมักใช้ alpn=h3


พารามิเตอร์สำหรับพร็อกซีด้วย SSH

ดู SSH Proxy สำหรับเอกสารฉบับเต็ม

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 11:57:36

หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก

results matching ""

    No results matching ""