กลุ่มนโยบาย
กลุ่มนโยบายอาจประกอบด้วยนโยบายหลายตัว มันสามารถเป็นเซิร์ฟเวอร์พร็อกซี กลุ่มนโยบายอื่น หรือนโยบายในตัว (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 จะรับทุกโหนดจากการสมัครสมาชิกของ Airportexclude-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
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก