โมดูล
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 |
ข้อมูลเมตาของโมดูล
โมดูลสามารถรวมคำสั่งข้อมูลเมตา (บรรทัดที่เริ่มต้นด้วย #!):
#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
| คำสั่ง | คำอธิบาย |
|---|---|
#!name |
ชื่อโมดูล (แสดงใน UI) |
#!desc |
คำอธิบายโมดูล |
#!system |
ตัวกรองแพลตฟอร์ม: ios, macos (คั่นด้วยคอมมา) |
หากระบุ #!system และแพลตฟอร์มปัจจุบันไม่ตรงกัน โมดูลจะถูกข้ามอย่างเงียบๆ
ตัวอย่างโมดูล
#!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
วงจรชีวิตโมดูล
- โมดูลถูกโหลดหลังจากแยกวิเคราะห์การกำหนดค่าหลัก
- กฎ สคริปต์ โฮสต์ MITM และโฮสต์ DNS จากโมดูลถูกเพิ่มไปยังตัวจัดการรันไทม์
- เมื่อโมดูลถูกลบหรือปิดใช้งาน กฎ สคริปต์ และโฮสต์ทั้งหมดของมันจะถูกยกเลิกการลงทะเบียน
- โมดูลระยะไกลถูกดึงใหม่ตามช่วงการอัปเดตการกำหนดค่าแบบจัดการของการกำหนดค่าหลัก