โมดูล
Chute รองรับไฟล์โมดูลภายนอก (.sgmodule) เพื่อขยายการกำหนดค่าด้วยกฎ สคริปต์ โฮสต์ MitM และการกำหนด DNS ที่ใช้ซ้ำและแชร์ได้ โมดูลทำตามรูปแบบโมดูล Surge
โมดูลถูกกำหนดในส่วน [Module]:
[Module]
https://example.com/my-module.sgmodule
/path/to/local-module.sgmodule
~/.chute/custom-module.sgmodule
URL ถูกดึงจากระยะไกล; เส้นทางที่เริ่มต้นด้วย / หรือ ~ ถูกโหลดจากระบบไฟล์ในเครื่อง
โครงสร้างไฟล์โมดูล
ไฟล์ .sgmodule ทำตามไวยากรณ์เดียวกับไฟล์การกำหนดค่าหลัก ส่วนที่รองรับ:
| ส่วน | วัตถุประสงค์ |
|---|---|
[MITM] |
เพิ่มชื่อโฮสต์ไปยังรายการถอดรหัส MITM |
[Script] |
ลงทะเบียนสคริปต์ JavaScript |
[URL Rewrite] |
เพิ่มกฎ URL Rewrite |
[Header Rewrite] |
เพิ่มกฎ Header Rewrite |
[Rule] |
เพิ่มกฎการจัดเส้นทาง |
[Host] |
เพิ่มการจับคู่ DNS host-to-IP |
เพื่อความเข้ากันได้ ส่วน
[DNS]ในโมดูลจะถูกยอมรับให้เป็นชื่อพ้องของ[Host]
ข้อมูลเมตาของโมดูล
โมดูลสามารถรวมคำสั่งข้อมูลเมตา (บรรทัดที่เริ่มต้นด้วย #!):
#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
| คำสั่ง | คำอธิบาย |
|---|---|
#!name |
ชื่อโมดูล (แสดงใน UI) |
#!desc |
คำอธิบายโมดูล |
#!system |
ตัวกรองแพลตฟอร์ม: ios, macos (คั่นด้วยคอมมา) |
#!arguments |
ประกาศตัวแปรของโมดูลพร้อมค่าเริ่มต้น (เช่น #!arguments = var1:default1, var2:default2) |
#!system เป็นข้อมูลเมตาเชิงข้อมูลที่แสดงในตัวแก้ไขโมดูล; ปัจจุบันมันไม่ได้ควบคุมการโหลด — โมดูลจะถูกนำไปใช้บนทุกแพลตฟอร์ม
#!arguments สามารถปรากฏได้หลายครั้ง โดยการประกาศครั้งหลังจะแทนที่ครั้งก่อนหน้า ตัวยึดตำแหน่ง {{{variable}}} ในเนื้อหาโมดูลจะถูกแทนที่ด้วยค่าที่แปลงได้: ค่าที่แอปกำหนดทับจะถูกใช้ก่อน จากนั้นเป็นค่าเริ่มต้นจาก #!arguments และสุดท้ายคือสตริงว่าง
ตัวอย่างโมดูล
#!name = Ad Block Module
#!desc = Block common ad domains
#!system = ios,macos
[Rule]
DOMAIN-SUFFIX,doubleclick.net,REJECT
DOMAIN-SUFFIX,googlesyndication.com,REJECT
DOMAIN-SUFFIX,googleadservices.com,REJECT
[Host]
localhost = 127.0.0.1
[MITM]
hostname = *.google-analytics.com
[URL Rewrite]
^https://example\.com/old-api https://example.com/new-api 302
คำสั่ง
%APPEND%/%INSERT%ที่อยู่ในค่าhostnameของโมดูลจะถูกตัดออก และชื่อโฮสต์จะถูกรวมเข้ากับรายการ MitM ส่วนคำนำหน้า-สำหรับการยกเว้นชื่อโฮสต์จะยังคงอยู่
วงจรชีวิตโมดูล
- โมดูลถูกโหลดหลังจากแยกวิเคราะห์การกำหนดค่าหลัก
- กฎ สคริปต์ โฮสต์ MitM และโฮสต์ DNS จากโมดูลถูกเพิ่มไปยังตัวจัดการรันไทม์
- เมื่อโมดูลถูกลบหรือปิดใช้งาน กฎ สคริปต์ และโฮสต์ทั้งหมดของมันจะถูกยกเลิกการลงทะเบียน
- เนื้อหาโมดูลระยะไกลถูกดึงเมื่ออุโมงค์เริ่มต้น และถูกดึงใหม่เฉพาะเมื่อรายการ URL ใน
[Module]เปลี่ยนแปลงในการโหลดการกำหนดค่าใหม่เท่านั้น
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก