모듈

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 매핑 추가

호환성을 위해 모듈의 [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

모듈의 hostname 값에 포함된 %APPEND% / %INSERT% 지시문은 제거되고 호스트명은 MitM 목록에 병합됩니다. 호스트명 앞에 붙은 - 제외 접두사는 유지됩니다.

모듈 생명주기

  • 모듈은 기본 구성이 파싱된 후 로드됩니다.
  • 모듈의 규칙, 스크립트, MitM 호스트 및 DNS 호스트가 런타임 관리자에 추가됩니다.
  • 모듈이 제거되거나 비활성화되면 해당 모듈의 모든 규칙, 스크립트 및 호스트가 등록 해제됩니다.
  • 원격 모듈 콘텐츠는 터널이 시작될 때 가져오며, 구성 다시 로드 시 [Module] URL 목록이 변경된 경우에만 다시 가져옵니다.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 12:06:42

이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.

results matching ""

    No results matching ""