모듈
Chute는 재사용 및 공유 가능한 규칙, 스크립트, MITM 호스트, DNS 매핑으로 구성을 확장하기 위해 외부 모듈 파일(.sgmodule)을 지원합니다. 모듈은 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 재작성 규칙 추가 |
[Header Rewrite] |
헤더 재작성 규칙 추가 |
[Rule] |
라우팅 규칙 추가 |
[Host] |
DNS 호스트-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 호스트가 런타임 관리자에 추가됩니다.
- 모듈이 제거되거나 비활성화되면 해당 모듈의 모든 규칙, 스크립트 및 호스트가 등록 해제됩니다.
- 원격 모듈은 기본 구성의 관리형 설정 업데이트 간격에 따라 다시 가져와집니다.