กลุ่มนโยบาย

กลุ่มนโยบายอาจประกอบด้วยนโยบายหลายตัว มันสามารถเป็นเซิร์ฟเวอร์พร็อกซี กลุ่มนโยบายอื่น หรือนโยบายในตัว (DIRECT, REJECT และรูปแบบย่อยของมัน หรือ PROXY)

มีประเภทกลุ่มเจ็ดประเภท: select, url-test, fallback, load-balance, random, relay และ ssid (เขียนเป็น subnet ได้ด้วย) ส่วน [Proxy Group] ประกาศกลุ่มนโยบาย นอกจากนี้ยังรับประเภท smart ด้วย โดยจะถือว่าเป็น url-test กลุ่มประเภทอื่นใด — external ของ Surge หรือประเภทที่ Chute ไม่รู้จัก — จะเก็บสมาชิกไว้และทำงานเป็นกลุ่ม select พร้อมหมายเหตุในบันทึก แทนที่จะถูกปฏิเสธ

กลุ่มเลือกด้วยตนเอง

เลือกนโยบายที่จะใช้บนส่วนต่อประสานผู้ใช้

SelectGroup = select, ProxyHTTP, ProxyHTTPS, DIRECT, REJECT

พารามิเตอร์ที่ไม่บังคับ: default= (สมาชิกที่ถูกเลือกในตอนแรก — ระบุด้วยชื่อ หรือด้วยดัชนีที่นับจาก 0 ก็ได้ ส่วน select= และ policy-select-name= ของ Shadowrocket มีความหมายเดียวกัน), policy-provider:Name (นำเข้าสมาชิกจากผู้ให้บริการพร็อกซี), filter= / exclude-filter= (regex ที่ใช้กับสมาชิกที่มาจากผู้ให้บริการ) และ HIDDEN=true ทุกประเภทกลุ่มยกเว้น ssid ยังรับพารามิเตอร์การสมัครสมาชิกและสมาชิกด้วย

ในเวอร์ชัน iOS วิดเจ็ต Today ใช้สลับนโยบายของกลุ่ม select สามกลุ่มแรกที่ไม่ได้ซ่อนไว้ ส่วนจำนวนกลุ่มที่วิดเจ็ตแสดงกำหนดได้ด้วย ใช้วิดเจ็ต Today เพื่อเลือกกลุ่ม ในแอป ในเวอร์ชัน macOS คุณอาจสลับนโยบายในเมนูแถบเมนู


กลุ่มทดสอบ URL อัตโนมัติ

เลือกนโยบายที่จะใช้โดยอัตโนมัติโดยการเปรียบเทียบความหน่วงไปยัง URL

AutoTestGroup = url-test, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204

พารามิเตอร์

url: ไม่บังคับ

Chute ส่งคำขอ HTTP GET แบบธรรมดาสำหรับ URL นั้นผ่านแต่ละนโยบาย ไปยังพอร์ต 80 ของโฮสต์ใน URL: scheme https:// หรือพอร์ตที่ระบุใน URL จะถูกละเว้น ดังนั้นให้ใช้ URL http:// ที่ให้บริการบนพอร์ต 80 การทดสอบสนใจเพียงว่าได้รับการตอบกลับข้อมูลหรือไม่ แม้ว่าการตอบกลับจะเป็นข้อผิดพลาด HTTP สมาชิกที่มี test-url= ของตัวเองจะถูกทดสอบที่ URL นั้นแทน เมื่อไม่ระบุ จะใช้ URL สำหรับตรวจสอบเริ่มต้น http://www.gstatic.com/generate_204 proxy-test-url ใน [General] จะแทนที่ค่าเริ่มต้นนี้สำหรับทุกกลุ่มที่ไม่ได้ระบุ url

interval: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 600 วินาที)

ความถี่ในการทดสอบนโยบายซ้ำ ตัวจับเวลาส่วนกลางที่ทำงานทุก 1 วินาทีจะขับเคลื่อนการทดสอบซ้ำอัตโนมัติทุก ๆ interval วินาที ไม่ว่ากลุ่มนโยบายนั้นจะถูกใช้งานอยู่หรือไม่ก็ตาม โดยมีข้อยกเว้นสองกรณี: กลุ่มที่ตั้ง lazy=true จะยังไม่เริ่มทดสอบจนกว่าจะถูกใช้ครั้งแรก และการทดสอบจะหยุดชั่วคราวขณะที่กลุ่มไม่ถูกใช้งานนานเกิน idle-timeout ค่า 0 มีผลเหมือนกับการไม่ได้ระบุ

tolerance: ไม่บังคับ, มิลลิวินาที (ค่าเริ่มต้น: 100ms)

แต่ละรอบจะทดสอบสมาชิกทุกตัวพร้อมกัน เมื่อสมาชิกตัวแรกที่ตอบกลับไม่ใช่ตัวที่กำลังใช้อยู่ Chute จะรอสมาชิกที่กำลังใช้อยู่ต่อไปอีกไม่เกิน tolerance มิลลิวินาที — แต่ไม่ว่าอย่างไรก็ไม่เกิน timeout ของรอบนั้น — หากสมาชิกนั้นตอบกลับภายในช่วงเวลาดังกล่าวก็จะคงตำแหน่งไว้ มิฉะนั้นกลุ่มจะสลับไปใช้สมาชิกที่ตอบกลับเป็นตัวแรก จนกว่าจะมีรอบที่เลือกสมาชิกได้ สมาชิกตัวแรกที่ตอบกลับจะถูกเลือกโดยตรง ส่วนรอบที่ไม่มีสมาชิกใดตอบกลับจะไม่เปลี่ยนแปลงอะไร ค่า 0 มีผลเหมือนกับการไม่ได้ระบุ

timeout: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 5 วินาที)

ยกเลิกนโยบายหากไม่เสร็จภายในเวลา timeout เมื่อไม่ได้ระบุ timeout หรือเป็น 0 จะใช้ test-timeout ใน [General] หากตั้งค่าไว้

lazy: ไม่บังคับ (true/false, ค่าเริ่มต้น: false)

เมื่อเปิดใช้งาน นโยบายจะถูกทดสอบเฉพาะเมื่อใช้ครั้งแรกแทนที่จะทดสอบเมื่อเริ่มต้น

max-failed-times: ไม่บังคับ (ค่าเริ่มต้น: 0, ปิดใช้งาน)

จำนวนครั้งของการทดสอบที่ล้มเหลวติดต่อกันก่อนที่นโยบายจะถูกถือว่าไม่พร้อมใช้งาน ตัวเลือกนี้มีผลเฉพาะกับกลุ่ม Load Balance เท่านั้น ซึ่งนโยบายที่ไม่พร้อมใช้งานจะถูกยกเว้นจากการเลือก ส่วนกลุ่ม url-test และ fallback จะยังนับจำนวนความล้มเหลวไว้แต่ไม่ส่งผลต่อการเลือก เมื่อไม่ได้ตั้งค่า (0) การทดสอบที่ล้มเหลวจะไม่ทำให้นโยบายถูกยกเว้น

expected-status: ไม่บังคับ (ค่าเริ่มต้น: ว่าง)

expected-status=204

เฉพาะการตอบกลับที่มีสถานะตามที่คาดไว้เท่านั้นที่นับว่าสำเร็จ: รหัสเดียว (204) ช่วง (200-299) หรือรายการที่คั่นด้วย / (200/204/300-399) นโยบายที่ตอบกลับด้วยสถานะอื่นจะหลุดออกจากรอบนั้นและนับเป็นความล้มเหลว ค่าที่ไม่ใช่รูปแบบเหล่านี้จะถูกละเว้นพร้อมคำเตือน และจะยอมรับการตอบกลับทุกแบบ มีผลในกลุ่ม url-test

idle-timeout: ไม่บังคับ, วินาที

idle-timeout = 120

เมื่อกลุ่มนโยบายไม่ถูกใช้งาน (ไม่มีการเชื่อมต่อใหม่ที่ดึงนโยบายจากกลุ่มนี้) นานเกินระยะเวลานี้ การทดสอบ URL ตามรอบจะถูกหยุดชั่วคราว และจะกลับมาทดสอบอีกครั้งเมื่อกลุ่มถูกใช้งาน ตัวเลือกนี้ไม่ได้ปิดการเชื่อมต่อใด ๆ ทั้งสิ้น

นอกจากนี้ยังรองรับ: HIDDEN=true, filter=, exclude-filter=, policy-provider:Name


กลุ่ม Fallback

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

FallbackGroup = fallback, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204

พารามิเตอร์

url: ไม่บังคับ

ระบุ URL ที่จะถูกทดสอบ เช่นเดียวกับกลุ่ม url-test การทดสอบคือคำขอ HTTP GET แบบธรรมดาไปยังพอร์ต 80 ของโฮสต์ใน URL และสมาชิกที่มี test-url= ของตัวเองจะถูกทดสอบที่ URL นั้นแทน เมื่อไม่ระบุ จะใช้ URL สำหรับตรวจสอบเริ่มต้น http://www.gstatic.com/generate_204 proxy-test-url ใน [General] จะแทนที่ค่าเริ่มต้นนี้สำหรับทุกกลุ่มที่ไม่ได้ระบุ url

interval: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 600 วินาที)

ความถี่ในการทดสอบนโยบายซ้ำ มีความหมายเดียวกับกลุ่มทดสอบ URL อัตโนมัติ ยกเว้น idle-timeout ซึ่งเช่นเดียวกับ expected-status มีเฉพาะใน url-test เท่านั้น: กลุ่ม fallback ไม่มีการหยุดพักเมื่อว่าง และจะทดสอบต่อไปตามช่วงเวลาที่กำหนด

timeout: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 5 วินาที)

ยกเลิกนโยบายหากไม่เสร็จภายในเวลา timeout เมื่อไม่ได้ระบุ timeout หรือเป็น 0 จะใช้ test-timeout ใน [General] หากตั้งค่าไว้

lazy / max-failed-times: ไม่บังคับ

เช่นเดียวกับกลุ่มทดสอบ URL อัตโนมัติ นอกจากนี้ยังรองรับ: HIDDEN=true, filter=, exclude-filter=, policy-provider:Name


กลุ่ม SSID

เลือกนโยบายตามเครือข่ายปัจจุบัน ได้แก่ ชื่อ Wi-Fi จุดเชื่อมต่อ ประเภทอินเทอร์เฟซ หรือเราเตอร์ ประเภทนี้เขียนเป็น subnet ได้ด้วย ซึ่งเป็นชื่อปัจจุบันใน Surge

SSIDGroup = subnet, default = ProxyHTTP, cellular = ProxyHTTP, "Home WiFi" = DIRECT, SSID:Office* = ProxySOCKS5, TYPE:WIRED = DIRECT, ROUTER:192.168.1.1 = DIRECT

พารามิเตอร์

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

นโยบายเมื่อไม่พบตัวเลือก SSID ที่ตรงกัน

cellular: ไม่บังคับ

นโยบายภายใต้เครือข่ายเซลลูลาร์ หากไม่ระบุ จะใช้นโยบายเริ่มต้น กล่าวให้ชัดคือ จะใช้เมื่ออุปกรณ์ไม่ได้อยู่บน Wi-Fi และไม่มีสมาชิกใดตรงกัน

ต้องระบุ default สมาชิกเป็นคู่ <selector> = <policy> ที่จะถูกตรวจตามลำดับ และรายการแรกที่ตรงกันจะถูกใช้ ตัวเลือกคือชื่อเครือข่าย (ใส่เครื่องหมายคำพูดเมื่อมีช่องว่างหรือเครื่องหมายโคลอน), SSID:<name>, BSSID:<address>, TYPE:WIFI / TYPE:CELLULAR / TYPE:WIRED หรือ ROUTER:<gateway address> โดยชื่อใช้ไวลด์การ์ด * และ ? ได้ ส่วน MCCMNC: เขียนได้แต่จะไม่ตรงกันเลย บน Apple TV กลุ่มนี้จะใช้ default เสมอ


กลุ่ม Load Balance

กระจายคำขอข้ามพร็อกซีหลายตัวโดยใช้การกระจายโหลด (load balancing)

LBGroup = load-balance, ProxySOCKS5, ProxyHTTPS, url = http://www.google.com/generate_204, strategy = round-robin

พารามิเตอร์

strategy: ไม่บังคับ (ค่าเริ่มต้น: round-robin)

ระบุกลยุทธ์การถ่วงดุลภาระ:

กลยุทธ์ คำอธิบาย
round-robin กระจายคำขออย่างเท่าเทียมกันข้ามพร็อกซีทั้งหมดตามลำดับ
consistent-hashing จัดเส้นทางชื่อโฮสต์เดียวกันไปยังพร็อกซีเดียวกันอย่างสม่ำเสมอ
sticky-sessions ใช้พร็อกซีที่เลือกไว้ล่าสุดซ้ำต่อไปสำหรับทุกการเชื่อมต่อ ตัวเลือกที่ตรึงไว้นี้เป็นแบบส่วนกลาง (ไม่ได้แยกตามไคลเอนต์) และจะหมดอายุ 600 วินาทีหลังจากที่ถูกเลือก

url: ไม่บังคับ

url = http://www.google.com/generate_204

Chute ส่งคำขอ HTTP GET แบบธรรมดาไปยังพอร์ต 80 ของโฮสต์ใน URL เพื่อทดสอบความพร้อมใช้งานของพร็อกซี เมื่อไม่ระบุ จะใช้ URL สำหรับตรวจสอบเริ่มต้น http://www.gstatic.com/generate_204 ผลการทดสอบจะส่งผลต่อการเลือกก็ต่อเมื่อ max-failed-times มีค่ามากกว่า 0 เท่านั้น หากใช้ค่าเริ่มต้น 0 พร็อกซีที่ไม่พร้อมใช้งานจะไม่ถูกยกเว้น proxy-test-url ใน [General] จะแทนที่ค่าเริ่มต้นนี้สำหรับทุกกลุ่มที่ไม่ได้ระบุ url

interval: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 600 วินาที)

interval = 300

ความถี่ในการทดสอบความพร้อมใช้งานของพร็อกซีใหม่ ค่า 0 มีผลเหมือนกับการไม่ได้ระบุ

timeout: ไม่บังคับ, วินาที (ค่าเริ่มต้น: 5 วินาที)

timeout = 3

เวลาหมดสำหรับคำขอทดสอบความพร้อมใช้งาน เมื่อไม่ได้ระบุ timeout หรือเป็น 0 จะใช้ test-timeout ใน [General] หากตั้งค่าไว้

lazy: ไม่บังคับ (true/false, ค่าเริ่มต้น: false)

เช่นเดียวกับกลุ่มทดสอบ URL อัตโนมัติ: การทดสอบจะยังไม่เริ่มจนกว่ากลุ่มจะถูกใช้ครั้งแรก

max-failed-times: ไม่บังคับ (ค่าเริ่มต้น: 0, ปิดใช้งาน)

max-failed-times = 3

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

HIDDEN: ไม่บังคับ (true/false, ค่าเริ่มต้น: false)

HIDDEN = true

เมื่อเปิดใช้งาน แอปต่าง ๆ จะไม่แสดงกลุ่มนโยบายนี้ในรายการ: เมนูในแถบเมนูของ Chute Mac และแท็บ พร็อกซี ในหน้าต่างหลัก, Chute iOS และวิดเจ็ต Today ของมัน, Chute tvOS, Chute Android, Chute Dashboard และคอนโซลเว็บ ต่างไม่แสดงกลุ่มนี้ กฎและกลุ่มอื่นยังใช้กลุ่มนี้ได้ตามปกติ กลุ่มที่ซ่อนไว้แต่ถูกเลือกอยู่ในขณะนั้น — เช่นนโยบายที่โหมดสากลกำลังใช้ — จะยังแสดงอยู่และมีเครื่องหมายถูก เพื่อให้คุณเห็นว่ากำลังใช้อะไรอยู่ เมื่อ HTTP Control API ชี้โหมดสากลไปที่กลุ่ม select รายการโหมดสากลของแอปซึ่งปกติไม่มีกลุ่ม select ก็จะแสดงกลุ่มนั้นพร้อมเครื่องหมายถูกด้วย HTTP Control API ยังคงส่งคืนทุกกลุ่ม โดยแต่ละกลุ่มมี "hidden": true หรือ false

ตามธรรมเนียมคีย์นี้เขียนด้วยตัวพิมพ์ใหญ่ แต่การจับคู่ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก ดังนั้น hidden=true ก็ใช้ได้เช่นกัน นอกจากนี้ยังใช้ได้กับกลุ่ม select, url-test, fallback และ ssid

หมายเหตุ: พารามิเตอร์ interrupt-exist-connections ตอนนี้เป็นการตั้งค่าส่วนกลาง [General] ดู ตัวเลือกเบ็ดเตล็ด


กลุ่ม Random

กลุ่ม random ของ Shadowrocket: การเชื่อมต่อใหม่แต่ละครั้งจะสุ่มเลือกสมาชิกหนึ่งตัว

RandomGroup = random, ProxyA, ProxyB, ProxyC

การเชื่อมต่อแต่ละครั้งเลือกจากสมาชิกด้วยโอกาสเท่ากัน โดยไม่ขึ้นกับการเชื่อมต่อก่อนหน้า UDP จะเลือกเฉพาะจากสมาชิกที่ส่งต่อ UDP ได้ หากไม่มีเลย กลุ่มจะไม่ส่งต่อ UDP และเป็นไปตาม udp-policy-not-supported-behaviour สมาชิกเขียนแบบเดียวกับกลุ่ม select รวมถึงการอ้างอิง policy-provider: และสมาชิกแต่ละตัวยังคงใช้ underlying-proxy ของตัวเอง ไม่มีการเลือกให้เปลี่ยน: คอนโซลเว็บ และ HTTP Control API จะแสดงรายชื่อสมาชิกแต่ปฏิเสธการเปลี่ยนการเลือก และ default= ไม่มีผล HIDDEN=true จะซ่อนกลุ่มนี้เหมือนกลุ่มอื่น


กลุ่ม Relay

ต่อสมาชิกเป็นเส้นทางเดียวตามลำดับที่เขียน สมาชิกตัวแรกเชื่อมต่อโดยตรง (หรือผ่าน underlying-proxy ของตัวเอง) สมาชิกแต่ละตัวที่ตามมาจะเข้าถึงผ่านสมาชิกที่อยู่ก่อนหน้า และสมาชิกตัวสุดท้ายเชื่อมต่อไปยังปลายทาง — ลำดับเดียวกับที่ Clash และ mihomo ใช้

RelayGroup = relay, Entry, Exit

การเชื่อมต่อผ่าน RelayGroup จะไปจากอุปกรณ์ถึง Entry จาก Entry ถึง Exit และจาก Exit ถึงปลายทาง ปลายทางจะเห็นการเชื่อมต่อมาจาก Exit

กลุ่ม Relay ต้องมีสมาชิกอย่างน้อยสองตัว เขียนแบบเดียวกับกลุ่ม select สมาชิกเป็นนโยบายหรือกลุ่มอื่นก็ได้ สมาชิกตัวแรกใช้โปรโตคอลใดก็ได้ ส่วนสมาชิกที่ตามมาแต่ละตัวจะเชื่อมต่อเซิร์ฟเวอร์ของตัวเองผ่านสมาชิกก่อนหน้า จึงต้องเป็นประเภทที่ต่อพ่วงได้ — ดู underlying-proxy หากสมาชิก (หรือนโยบายที่กลุ่มสมาชิกเลือกอยู่ในขณะนั้น) ต่อพ่วงไม่ได้ การเชื่อมต่อจะถูกปฏิเสธและมีข้อความในบันทึก ไม่มีการส่งโดยตรง ภายในกลุ่ม Relay ค่า underlying-proxy ของสมาชิกที่ตามมาจะถูกละเว้น เพราะสมาชิกก่อนหน้าคือเส้นทางของมัน กลุ่ม Relay ที่อยู่ในหมู่สมาชิกจะถูกแทนที่ด้วยสมาชิกของตัวเองในตำแหน่งนั้น โดยทั้งเส้นทางมีได้สูงสุด 8 ฮอป หากสิ่งที่กลุ่มสมาชิกเลือกอยู่ในขณะนั้นเป็นกลุ่ม Relay อื่น ฮอปของกลุ่มนั้นจะต่อเข้ามาตอนเชื่อมต่อไม่ได้ การเชื่อมต่อจึงถูกปฏิเสธและมีข้อความในบันทึก สมาชิกที่อยู่หลังตัวแรกเข้าถึงได้ผ่านสมาชิกก่อนหน้าเท่านั้น และ Chute จะไม่ ping ไปหาโดยตรง WireGuard, AmneziaWG และ SSH ใช้การเชื่อมต่อเดียวผ่านอัปสตรีมของตัวเอง จึงเป็นสมาชิกตัวแรกได้ แต่เป็นสมาชิกลำดับถัดไปไม่ได้ กลุ่ม Relay รับส่ง UDP ได้เมื่อ UDP ของสมาชิกตัวสุดท้ายผ่านสมาชิกก่อนหน้าได้ ตามกฎเดียวกับ underlying-proxy: ทางออก VMess, VLESS, Trojan หรือ AnyTLS ผ่านสมาชิกใดก็ได้ ส่วนทางออก Shadowsocks, SOCKS5, Hysteria2, TUIC หรือ MASQUE ได้เฉพาะเมื่อสมาชิกก่อนหน้ารับส่ง UDP มิฉะนั้น UDP ที่ส่งมาจะเป็นไปตาม udp-policy-not-supported-behaviour กลุ่มนี้ไม่มีการตรวจสอบสถานะและไม่มีสิ่งให้เลือก


พารามิเตอร์การสมัครสมาชิกและสมาชิก

พารามิเตอร์เหล่านี้ใช้ได้กับกลุ่ม select, url-test, fallback และ load-balance (ส่วน underlying-proxy ใช้ได้กับทุกกลุ่ม ยกเว้นกลุ่ม SSID):

[Proxy Group]
Airport = select, policy-path=https://example.com/nodes.list, update-interval=86400, policy-regex-filter="^(HK|JP) \d{1,2}$"
Everything = url-test, include-all-proxies=true
Streaming = fallback, HK-Node, include-other-group=Airport, policy-regex-filter="^HK"
  • policy-path=<URL> (Surge) เติมสมาชิกของกลุ่มจากการสมัครสมาชิก โดย Chute จะแปลงเป็นผู้ให้บริการพร็อกซีที่ซ่อนอยู่แบบ format=auto ซึ่งมี interval เท่ากับ update-interval ของกลุ่ม (ค่าเริ่มต้น 86400) ส่วน policy-regex-filter= จะเก็บเฉพาะโหนดที่ชื่อตรงกัน ผู้ให้บริการที่ซ่อนอยู่นี้จะไม่ปรากฏในรายการผู้ให้บริการใดและไม่ถูกเขียนลงไฟล์ บรรทัดของกลุ่มจะถูกบันทึกตามที่คุณเขียน
  • include-all-proxies=true เพิ่มนโยบายทั้งหมดในส่วน [Proxy] และ include-other-group=<group> (เขียนซ้ำได้) เพิ่มสมาชิกของกลุ่มอื่นแบบเรียกซ้ำ ทั้งสองแบบจะถูกขยายหลังอ่านการกำหนดค่าทั้งหมดแล้ว วงวนจะถูกตัดออก และชื่อกลุ่มที่ไม่รู้จักจะมีเพียงข้อความแจ้ง สิ่งที่ถูกบันทึกคือสมาชิกที่คุณระบุไว้เอง include-other-group นำสมาชิกและผู้ให้บริการของกลุ่มอื่นมาด้วย แต่ไม่นำตัวกรองของกลุ่มนั้นมา: โหนดที่ผู้ให้บริการนำเข้ามาจะถูกกรองด้วย filter=, policy-regex-filter= และ exclude-type= ของกลุ่มที่เป็นฝ่ายรวมเอง ซึ่งเป็นเหตุผลที่ Streaming ข้างบนตั้งตัวกรองไว้หนึ่งตัว — หากไม่มี Streaming จะรับทุกโหนดจากการสมัครสมาชิกของ Airport
  • exclude-type=Shadowsocks|Vmess กันโปรโตคอลทั้งประเภทออกจากสมาชิกที่ผู้ให้บริการนำเข้ามา — เหตุผลที่พบบ่อยคือไคลเอนต์ไม่สามารถส่ง UDP ผ่านโปรโตคอลนั้นได้ ชื่อคั่นด้วย | ไม่สนตัวพิมพ์เล็กใหญ่ และจับคู่ตามชื่อแฝงด้วย ดังนั้น ss กับ Shadowsocks จึงหมายถึงประเภทเดียวกัน พารามิเตอร์นี้ไม่กระทบสมาชิกที่คุณระบุเอง และจะถูกเขียนกลับเมื่อบันทึกการกำหนดค่า
  • underlying-proxy=<policy> (Surge Mac 6.9 / iOS 5.22) ส่งสมาชิกที่เป็นพร็อกซีของกลุ่มผ่านอัปสตรีมเดียวกัน: นโยบายพร็อกซีทุกตัวที่ระบุไว้โดยตรง หรือนำเข้ามาด้วย policy-path, include-all-proxies หรือ include-other-group จะปรากฏในกลุ่มเป็นนโยบายที่สร้างขึ้นจากสมาชิก โดยชื่อคือชื่อสมาชิกต่อท้ายด้วย "(via Upstream)" ซึ่งเชื่อมต่อผ่านอัปสตรีมนั้นแทน underlying-proxy ของสมาชิกเอง ส่วนนโยบายเดิมยังใช้งานตามเดิมในที่อื่นทั้งหมด สมาชิกที่เป็นกลุ่มนโยบายจะไม่ได้รับผลกระทบ (ตั้ง underlying-proxy ของตัวเองได้) และ DIRECT กับ REJECT คงไว้ตามเดิม หากกลุ่มถูกต่อพ่วงผ่านตัวเอง การเชื่อมต่อที่ผ่านกลุ่มนั้นจะถูกปฏิเสธและมีข้อความในบันทึก
  • external-policy-modifier="key=value,…" (Surge) เขียนทับพารามิเตอร์เหล่านี้ในทุกนโยบายที่นำเข้าผ่าน policy-path เช่น external-policy-modifier="test-url=http://apple.com/,tfo=true" โดยมีผลเฉพาะนโยบายที่มาจากการสมัครสมาชิกเท่านั้น หากต้องการส่งทั้งกลุ่มผ่านอัปสตรีม ให้ใช้ underlying-proxy ข้างบน
  • พารามิเตอร์จะถูกแยกที่เครื่องหมายจุลภาคที่อยู่นอกเครื่องหมายคำพูด ดังนั้น regex ที่มีจุลภาค เช่นตัวอย่างข้างบน ต้องใส่เครื่องหมายคำพูด
  • พารามิเตอร์ที่ Chute ไม่รู้จัก เช่น evaluate-before-use, no-alert, icon-url หรือ persistent จะถูกเก็บไว้และเขียนกลับ แต่ไม่มีผลใด ๆ

ผู้ให้บริการพร็อกซี

ผู้ให้บริการพร็อกซีอนุญาตให้คุณนำเข้ารายการพร็อกซีจากแหล่งภายนอก (ไฟล์หรือ URL) กำหนดในส่วน [Proxy Provider]:

[Proxy Provider]
MyProvider = url=https://example.com/proxies.yaml, interval=3600

พารามิเตอร์

พารามิเตอร์ จำเป็น คำอธิบาย
type ไม่ http (ค่าเริ่มต้น) หรือ file ส่วนชุดกฎยังมีรูปแบบ inline ในส่วน [Ruleset <name>] ด้วย แต่ผู้ให้บริการพร็อกซีไม่มีรูปแบบฝัง และการเขียน type=inline ที่นี่จะไม่เพิ่มสมาชิกใดเลย
url ใช่ สำหรับ type=http URL เพื่อดึงรายการพร็อกซี
path ใช่ สำหรับ type=file เส้นทางไฟล์ในเครื่องสำหรับรายการพร็อกซี
interval ไม่ อายุสำหรับการรีเฟรชเป็นวินาที (ค่าเริ่มต้น: 86400) ทุกครั้งที่นโยบายถูกโหลด — ตอนเอนจินเริ่มทำงานและเมื่อโหลดการกำหนดค่าใหม่ — สำเนาในแคชที่เก่ากว่านี้จะถูกดึงใหม่ในพื้นหลัง ไม่มีการรีเฟรชใด ๆ ขณะที่เอนจินทำงานอยู่ ค่า 0 จะไม่รีเฟรชสำเนาในแคชเลย แต่ยังมีการดึงครั้งแรกอยู่เมื่อไม่มีแคช ส่วนค่าติดลบจะไม่ถูกดึงเลย ทำให้ผู้ให้บริการไม่ทำงานเว้นแต่จะมีแคชที่ใช้ได้ล่าสุดอยู่
format ไม่ รูปแบบเพย์โหลด: native หรือ surge อ่านรายการบรรทัดแบบ [Proxy] ส่วน auto หรือไม่ระบุค่าจะเลือกตามเนื้อหา และ mihomo-yaml อ่านเอกสาร YAML แต่จะเปลี่ยนไปอ่านเป็นรายการบรรทัดเมื่อเพย์โหลดเป็นแบบนั้นอย่างชัดเจน
filter ไม่ regex ตัวกรองเพื่อรวมเฉพาะชื่อพร็อกซีที่ตรงกัน
exclude-filter ไม่ regex ตัวกรองเพื่อยกเว้นชื่อพร็อกซีที่ตรงกัน
underlying-proxy ไม่ ทุกโหนดของผู้ให้บริการจะเชื่อมต่อผ่านนโยบายหรือกลุ่มนี้ (override: dialer-proxy ของ mihomo) แทนอัปสตรีมของโหนดเอง ดู underlying-proxy
policy ไม่ นโยบายหรือกลุ่มที่ใช้ดาวน์โหลดรายการ (proxy: ของ mihomo) ถ้าเป็นกลุ่มจะใช้ตัวที่เลือกอยู่ตอนเริ่มดาวน์โหลด หากไม่ระบุหรือเป็น DIRECT จะดึงโดยตรง ส่วนชื่อที่ไม่ได้กำหนดไว้จะปฏิเสธการดาวน์โหลดแทนการดึงโดยตรง

เพย์โหลด YAML คือเอกสารแบบ mihomo ที่มีรายการ proxies: (หรือ payload:) ส่วนเพย์โหลดแบบรายการบรรทัดจะมีหนึ่งบรรทัดแบบ [Proxy] ต่อหนึ่งนโยบาย เช่น Name = trojan, example.com, 443, password=…

ผู้ให้บริการพร็อกซีถูกอ้างอิงจากกลุ่มนโยบายด้วยคำนำหน้า policy-provider::

[Proxy Group]
MyGroup = select, policy-provider:MyProvider
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

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

results matching ""

    No results matching ""