Shadowrocket 설정 파일 작성법: .conf 문법과 분기 규칙 실전

Shadowrocket 설정 파일을 직접 편집하려는 사용자를 위해 .conf의 주요 섹션과 필드를 실전 예제로 설명합니다. [Rule] 우선순위와 원격 RULE-SET 연결법, 요청 로그에서 분기 결과를 확인하는 방법까지 다룹니다. URL Rewrite와 MITM 설정 시 주의할…

이 글의 핵심

Shadowrocket에서 사용할 .conf 파일의 주요 섹션과 규칙 적용 순서를 살펴봅니다. 예시는 문법을 설명하기 위한 자리표시자이므로 그대로 연결 설정으로 사용할 수 없습니다. 본인이 이미 보유한 설정을 바탕으로 규칙을 단계별로 추가하고, 요청 로그로 결과를 확인하는 방법과 MITM 인증서를 다룰 때의 보안 주의사항도 안내합니다.

1. .conf 파일의 역할과 적용 범위 이해하기

Shadowrocket은 iPhone과 iPad를 중심으로 사용하는 Apple 플랫폼용 유료 앱이며, App Store에서 구매할 수 있습니다. 앱 구매와 연결 서비스 이용은 별개입니다. 이 글은 본인이 이미 보유한 설정 파일이나 연결 정보를 사용하는 경우를 전제로 하며, 서버나 구독을 제공하거나 추천하지 않습니다.

.conf 파일은 연결 항목과 트래픽 처리 규칙을 텍스트로 정리한 구성 파일입니다. 파일에 서버 정보가 들어 있을 수도 있지만, 규칙만 정의한 파일도 있습니다. 따라서 파일을 불러왔다고 해서 사용할 서버가 자동으로 준비되거나 모든 요청이 원하는 경로로 처리되는 것은 아닙니다. 연결 정보, 정책 이름, 규칙 순서를 각각 확인해야 합니다.

6개 섹션
General, Proxy, Proxy Group, Rule, Host, MITM 등
위에서 아래로
일치하는 규칙의 순서가 결과에 영향을 줍니다
마지막 규칙
FINAL은 앞에서 처리되지 않은 요청의 기본 정책입니다

파일의 섹션 이름은 대괄호와 영문 표기를 그대로 사용합니다. 값은 등호나 쉼표로 구분하며, 임의의 따옴표나 전각 문장부호를 섞으면 파싱이 달라질 수 있습니다. 편집할 때는 파일 원본을 복사해 별도 테스트본을 만들고, 한 번에 한 종류의 변경만 적용하세요.

2. 섹션별 문법과 값의 연결 관계

각 섹션은 서로 다른 역할을 합니다. 예를 들어 [Proxy]에 정의한 이름을 [Proxy Group]의 구성원으로 사용할 수 있고, 그룹 이름은 [Rule]에서 정책으로 지정할 수 있습니다. 이름을 바꿀 때는 참조하는 위치도 함께 확인하세요. 아래는 구조를 보여 주는 예시이며, 실제 서버 주소나 인증값을 포함하지 않습니다.

[General]
# 전역 옵션은 필요한 항목만 설정합니다.

[Proxy]
Example-Server = ss, server.example.com, 443, encrypt-method=chacha20-ietf-poly1305, password=YOUR_PASSWORD

[Proxy Group]
Proxy = select, Example-Server, DIRECT

[Rule]
DOMAIN-SUFFIX,example.com,Proxy
GEOIP,CN,DIRECT
FINAL,Proxy

[Host]
localhost = 127.0.0.1

규칙 줄 읽기

DOMAIN-SUFFIX
도메인 접미사 조건
example.com
조건에 사용할 도메인
Proxy
일치할 때 적용할 정책 이름

조건, 대상, 정책의 각 필드는 쉼표로 구분합니다.

정책 이름 확인

Proxy
예시 Proxy Group 이름
Example-Server
예시 Proxy 항목 이름
DIRECT
직접 연결 정책

대소문자와 철자, 공백을 참조 위치마다 대조하세요.

3. 사용자 규칙 순서와 원격 RULE-SET 적용

[Rule]은 일반적으로 위쪽부터 조건을 확인하므로, 더 구체적인 조건을 넓은 조건보다 먼저 배치하는 편이 확인하기 쉽습니다. 예를 들어 특정 도메인을 별도 정책으로 보내려면 그 규칙을 넓은 도메인 조건보다 위에 둡니다. FINAL은 앞선 조건과 일치하지 않은 요청을 처리하므로 보통 목록 끝에 둡니다. 중간에 놓으면 그 아래 규칙이 실행되지 않을 수 있습니다.

원격 규칙 목록은 RULE-SET으로 참조할 수 있습니다. 주소와 정책은 실제로 보유한 구성에서 확인해야 하며, 다음 주소는 문법 예시용 자리표시자입니다. 원격 목록의 각 행이 Shadowrocket에서 지원되는 규칙 형식인지, 지정한 정책 이름이 현재 설정에 존재하는지 확인하세요.

[Rule]
DOMAIN,login.example.com,DIRECT
RULE-SET,https://rules.example.com/sample.list,Proxy
GEOIP,CN,DIRECT
FINAL,Proxy

RULE-SET 한 줄이 모든 규칙을 대신하는 것은 아닙니다. 참조 주소를 가져오지 못하거나 목록 형식이 호환되지 않으면 기대한 조건이 적용되지 않을 수 있습니다. 원격 목록을 바꾸기 전에는 기존 파일을 보관하고, 수정 후 요청 로그에서 해당 도메인이 어떤 규칙에 의해 처리됐는지 확인하세요. 인증 정보가 들어간 주소는 공개 게시물이나 공개 진단 도구에 붙여 넣지 마세요.

4. 설정을 복사해 수정하고 동작 확인하기

처음부터 전체 파일을 새로 작성하기보다 현재 적용 중인 Config를 복사해 테스트용으로 수정하세요. 메뉴 구성은 앱 버전에 따라 달라질 수 있지만, Config에서 파일을 선택하거나 편집한 뒤 Home에서 Global Routing을 확인하는 흐름으로 점검할 수 있습니다. 연결 스위치를 켤 때 시스템 VPN 구성 추가 안내가 나타나면 요청을 보낸 앱이 Shadowrocket인지 확인하고 시스템 안내에 따라 승인하세요.

  1. 원본 보관

    Config에서 현재 사용하는 파일을 확인하고 별도 복사본을 만드세요. 편집 전 파일 이름과 활성 Config를 기록해 두면 변경 전후를 구분하기 쉽습니다.

  2. 한 줄 추가

    테스트할 도메인 규칙 하나를 [Rule]에 넣으세요. 정책 이름이 실제 Proxy 항목이나 Proxy Group과 일치하는지 확인하고, FINAL보다 위에 배치합니다.

  3. Config 선택

    저장한 파일이 Config에서 선택되어 있는지 확인하세요. 파일을 편집했더라도 다른 Config가 활성화되어 있으면 새 규칙이 적용되지 않을 수 있습니다.

  4. 요청 확인

    Home에서 필요하면 Global Routing을 Config로 설정하고 연결을 켭니다. 요청 로그에서 테스트한 도메인과 적용 정책을 살펴보고, 기대한 규칙이 보이는지 확인하세요.

  5. 변경 비교

    규칙이 적용되지 않으면 먼저 활성 Config, 규칙 위치, 정책 이름, 원격 목록 갱신 여부를 순서대로 점검하세요. 결과를 기록한 뒤 다음 변경을 진행합니다.

요청 로그는 실제 요청이 기록되고 표시되는 경우에 유용한 확인 자료입니다. 앱이나 시스템의 동작에 따라 모든 요청이 같은 방식으로 나타난다고 가정하지 말고, 로그에 없는 항목만으로 특정 규칙이 실행되지 않았다고 단정하지 마세요. 먼저 재현 가능한 도메인 요청을 한 번 발생시키고 시간, 대상, 표시된 정책을 함께 확인하세요.

5. 요청 로그와 MITM 인증서의 보안 점검

일반적인 규칙 확인에 MITM 인증서는 필요하지 않습니다. MITM을 사용하면 설정된 대상의 HTTPS 연결을 중간에서 검사할 수 있도록 인증서와 기기 신뢰 설정이 관여합니다. 인증서를 설치하거나 신뢰하도록 설정하기 전에 어떤 목적으로 필요한지, 어떤 호스트에 적용되는지 확인하세요. 인증서가 있다고 해서 모든 앱의 암호화 통신을 안전하게 검사할 수 있다는 뜻은 아닙니다.

요청 로그를 공유해야 한다면 전체 설정 파일, 인증 토큰, 비밀번호, 개인 키, 구독 주소를 함께 보내지 마세요. 문제를 재현하는 데 필요한 시각과 오류 문구, 민감 정보를 제거한 도메인 정보만으로 원인을 설명할 수 있는지 먼저 검토하세요.

6. 자주 묻는 질문

설정을 불러왔는데 규칙이 적용되지 않아요.

Config에서 수정한 파일이 실제 활성 상태인지 확인하세요. 다음으로 Home → Global Routing이 Config인지, 요청이 FINAL보다 앞선 규칙과 일치하는지, 규칙의 정책 이름이 정의된 항목과 같은지 점검하세요.

RULE-SET 주소가 열리면 정상 적용된 건가요?

주소에 접속되는 것만으로는 충분하지 않습니다. 원격 응답이 지원되는 규칙 형식인지, 파일 안의 정책이 현재 설정에 존재하는지 확인하고, 테스트 요청의 로그에서 적용 결과를 살펴보세요.

FINAL은 꼭 파일 마지막에 있어야 하나요?

뒤쪽 규칙이 검사되지 않는 상황을 피하려면 기본 처리 규칙인 FINAL을 마지막에 두는 것이 좋습니다. 파일에 추가 규칙이 있다면 그 규칙과 의도한 처리 순서를 확인한 뒤 배치하세요.

일반적인 규칙 진단에도 MITM을 켜야 하나요?

아니요. 규칙의 대상과 정책은 Config 및 요청 로그로 먼저 확인할 수 있습니다. HTTPS 내용 검사가 특별히 필요한 경우에만 대상 범위와 인증서 신뢰를 검토하고, 작업이 끝나면 설정을 정리하세요.

Shadowrocket 정품 받기 안내