구성
Chute의 대부분 기능은 구성 파일로 제어됩니다. 평소 사용하는 텍스트 편집기로 편집해도 되고, Chute iOS, Chute tvOS, Chute Mac(메인 창의 구성 탭, 이전 인터페이스에서는 환경설정...), Chute Android의 내장 편집기로 편집해도 됩니다. Chute Dashboard에는 구성 편집기가 없습니다 — 그것이 편집하는 것은 실행 중인 엔진의 규칙이지 파일이 아닙니다.
Chute iOS는 iCloud Drive로 구성 파일을 동기화할 수 있으며, 이는 라이선스가 필요한 기능입니다. Chute Mac에는 자체 iCloud 동기화가 없습니다. 여기서 파일을 공유한다는 것은 가져오기 패널에서 마침 iCloud Drive에 들어 있는 파일을 고른다는 뜻이고, 그 파일은 있던 자리 그대로 참조됩니다.
구성 섹션
구성 파일은 명명된 섹션으로 이루어집니다:
| 섹션 | 용도 |
|---|---|
[General] |
전역 설정 (로깅, IPv6, DNS, 프록시 포트 등) |
[Proxy] |
아웃바운드 프록시 서버 정의 |
[Proxy Group] |
정책 그룹 정의 (select, url-test, fallback, load-balance, ssid, subnet) |
[Rule] |
트래픽 일치 및 라우팅 규칙 |
[Host] |
로컬 DNS 호스트-IP 매핑 |
[DNS] |
DNS 설정. [General]의 DNS 키와 [Host] 형식의 도메인별 재정의를 모두 허용합니다 |
[URL Rewrite] |
URL 재작성 규칙 |
[Header Rewrite] |
HTTP 헤더 재작성 규칙 |
[Body Rewrite] |
HTTP 본문 검색 및 교체 규칙 |
[Map Local] |
모의 응답 규칙 |
[MITM] |
HTTPS 복호화 설정 |
[Script] |
JavaScript 스크립트 정의 |
[SSID Setting] |
네트워크별 설정: 일시 중단, 그리고 Wi-Fi 네트워크나 네트워크 유형별 DNS 재정의 |
[Replica] |
트래픽 기록 필터 |
[Module] |
외부 모듈 파일 |
[WireGuard <name>] |
WireGuard 터널 구성 (인스턴스 이름이 필수입니다. 예: [WireGuard HomeServer]) |
[AmneziaWG <name>] |
AmneziaWG 터널 구성, 난독화 매개변수를 갖춘 WireGuard 호환 구성 (인스턴스 이름이 필수입니다. 예: [AmneziaWG HomeServer]) |
[Tailscale] |
전역 Tailscale 구성 (전역적으로 고유; [Tailscale <name>] 헤더도 이 섹션으로 읽힘) |
[Proxy Provider] |
외부 프록시 목록 소스 |
[Rule Provider] |
외부 규칙 세트 소스 |
[Ruleset <name>] |
인라인 규칙 세트, RULE-SET,<name>으로 참조 — 규칙 세트 참조 |
주의:
[Panel],[Ponte],[MTProto],[Keystore],[Port Forwarding],[Testing],[DHCP],[Snell Server]섹션은 Surge 구성에서 오류가 나지 않도록 인식되며(섹션마다 알림을 한 번 기록), 구성을 저장할 때 해당 줄이 그대로 보존되지만, Chute에서는 아무런 효과가 없습니다.
DNS 섹션
DNS 관련 [General] 키는 최상위 [DNS] 섹션 아래에 동일하게 작성할 수 있습니다. 이 섹션의 줄은 키별로 처리됩니다:
| 줄 | 처리 |
|---|---|
dns-server, direct-dns-server, proxy-dns-server, doh(별칭 doh-server, doh-service), dot, doq, doh3, encrypted-dns-server, allow-dns-svcb, encrypted-dns-follow-outbound-mode, hijack-dns, always-real-ip |
[General]에서와 완전히 동일합니다. 해당 키는 [General]에 작성된 것처럼 저장됩니다 |
| 그 외의 모든 줄 | [Host]의 도메인별 문법으로 파싱됩니다. 예: *.example.com = server:1.1.1.1 |
| 둘 중 어느 쪽도 아닌 키 | 로그에 알림을 남기고 무시되며, 줄 자체는 보존됩니다 |
[DNS]
doh = https://dns.google/dns-query
hijack-dns = 8.8.8.8:53
*.example.com = server:1.1.1.1
참고: 여기서는 두 가지 줄 형식이 모두 허용되므로,
[DNS]섹션에 DNS 서버 설정과 도메인별 재정의를 섞어 쓸 수 있습니다. 동일한 설정을[General]과[DNS]에 중복해서 작성하지 마세요. 예를 들어doh줄이 두 번 나오면 중복된 DoH 설정으로 보고됩니다.참고:
fallback-dns-server와encrypted-dns-skip-cert-verification은 첫 번째 행에 없지만[DNS]아래에서도 읽힙니다. DNS 설정이 아닌 키라고 해서 여기서 무시되는 것은 아닙니다 — 도메인별 재정의로 읽히므로,optimistic-dns = false처럼[General]에 있어야 할 키를 잘못 두면 조용히optimistic-dns→false매핑이 되어 버립니다. 재정의 파서마저 거부하는 줄만 알림을 남깁니다. DNS를 보세요.
다른 파일 포함하기
프로필은 다른 파일을 끌어올 수 있습니다. Surge는 #!include <path>로, Shadowrocket은 첫 섹션 위에 include = <other.conf>로 씁니다. 둘 다 읽히며, 포함된 파일은 지시문이 있는 자리에 그대로 펼쳐지므로 [Rule] 조각은 그것을 지정한 섹션 안에 놓입니다.
#!include Rulesets/company.list
- 경로는 지시문을 쓴 파일의 디렉터리를 기준으로 해석되며
*를 포함할 수 있습니다 —#!include Rulesets/*.list는 규칙 조각 디렉터리를 이름 순서로 끌어옵니다. - 포함은 최대 8단계까지 중첩되고, 이미 끌어온 파일(프로필 자신 포함)은 두 번 끌어오지 않으므로 순환이 폭주하지 않습니다. 프로필이 자기 자신을 포함하면 그냥 무시됩니다.
- 포함은 프로필을 파일에서 읽어들였을 때만 펼쳐집니다. 엔진에 텍스트로 전달되면(구성이 터널로 넘어갈 때 보통 그렇습니다) 기준이 될 디렉터리가 없으므로, 온전한 것으로 취급하지 않고 불완전하다고 보고합니다. 지시문 자체는 구성을 저장할 때 보존됩니다. 읽은 그대로 다시 쓰이며, 포함된 파일의 내용은 절대 프로필에 기록되지 않습니다.
주석
#, ;, //로 시작하는 줄은 주석입니다. 이 세 기호는 인라인 주석도 시작하지만, 공백이나 탭 바로 뒤에 올 때만 그렇고 따옴표("…" 또는 '…', \는 다음 문자 하나를 이스케이프) 안에서는 절대 주석이 되지 않습니다. 따라서 URL의 ://, a//b 같은 경로, 우연히 //나 #를 포함한 따옴표 없는 base64 값은 그대로 보존됩니다. 주석과 빈 줄은 구성이 저장될 때 유지됩니다.
각 재작성 섹션과 [Proxy Group]의 ssid / subnet 줄에서는 인라인 주석이 다르게 동작합니다:
| 위치 | # |
; |
// |
따옴표 |
|---|---|---|---|---|
[URL Rewrite] |
위와 같음 | 위와 같음 | 위와 같음 | 없음: 줄을 공백으로 나누고, 기호로 시작하는 첫 단어에서 줄이 끝납니다 |
[Header Rewrite] |
주석이 되지 않으므로 header-add X-Color #ff0000의 값이 유지됩니다 |
주석이 되지 않음 | 위와 같음 | "…" |
[Body Rewrite], [Map Local] |
위와 같음 | 주석이 되지 않음 | 위와 같음 | "…"; jq 줄에서는 '…'도 |
[Proxy Group]의 ssid / subnet 줄 |
위와 같음 | 위와 같음 | 위와 같음 | "…"만: 아포스트로피는 Bob's iPhone 같은 네트워크 이름의 일부입니다 |
지시문 줄 — #!include, #!MANAGED-CONFIG, #!IOS-ONLY 등 — 은 이 규칙들보다 먼저 지시문으로 읽힙니다. 규칙 세트, 도메인 세트, 프록시 제공자가 내려받는 파일은 구성 섹션이 아니며, 그곳에서는 줄 전체만 주석이 될 수 있습니다.
이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.