MODE-MAP

Shadowrocket 기능 및 설정

사용 가능한 서버 정보나 구독이 있는지 먼저 확인한 다음, 요청을 어떻게 분기할지 정하세요. 이 문서에서는 Home, Config, Data, Settings 등 화면별로 각 기능의 역할과 설정 위치, 변경 후 확인할 사항을 안내합니다.

ROUTING

Global Routing: 라우팅 방식 선택

Global Routing은 연결을 켠 뒤 트래픽을 설정의 규칙에 따라 처리할지, 한 가지 방식으로 통일해 처리할지 결정합니다.

Home에서 Global Routing을 찾아 Config, Proxy, Direct를 확인하세요. 선택하기 전에 Home의 SERVER 영역에 사용할 수 있는 본인 소유 서버가 있는지, 현재 Config의 내용이 예상과 일치하는지 확인해야 합니다. 라우팅 방식을 바꿔도 서버가 추가되거나 기존 규칙이 수정되지는 않습니다. 요청이 규칙의 판단을 거치는 방식만 달라집니다. 도메인과 주소별로 지속적으로 다르게 처리하려면 Config를 선택한 뒤 실제로 적용된 규칙을 확인하세요.

방식처리 방법사용 상황확인할 사항
Config(설정)현재 Config의 규칙과 최종 정책에 따라 요청을 처리합니다.대상별로 PROXY, DIRECT 또는 REJECT를 적용하려는 경우규칙 순서, 정책 이름, FINAL을 확인합니다.
Proxy(프록시)선택한 서버로 연결 요청을 처리하며, 일반적인 트래픽 분기 규칙은 항목별로 적용하지 않습니다.규칙 매칭 단계에서 문제가 발생하는지 잠시 확인할 때먼저 선택한 서버에 연결할 수 있는지 확인하세요. 테스트 결과만으로 규칙 설정이 올바르다고 판단해서는 안 됩니다.
Direct(직접 연결)요청을 선택한 서버를 거치지 않고 직접 연결합니다.로컬 네트워크와 대상 서비스에 직접 접속할 수 있는지 비교 확인할 때Direct에서의 결과만으로 서버나 구독이 사용 가능하다고 판단할 수 없습니다.

문제를 확인할 때는 한 번에 변수 하나만 바꾸세요. 기존 방식을 기록한 뒤 Proxy 또는 Direct로 전환해 비교하고, 확인이 끝나면 Config로 되돌립니다. Config와 Proxy의 결과가 다르면 규칙이 대상을 DIRECT 또는 REJECT로 보냈는지, 예상과 다른 정책에 매칭됐는지 확인하세요. 둘 다 연결되지 않으면 서버 정보, 현재 네트워크, 연결 상태부터 점검해야 합니다. 화면에 연결됨으로 표시되어도 시스템 연결이 설정되었다는 뜻일 뿐, 모든 대상의 경로가 같다는 의미는 아닙니다.

RULE-SET

규칙 기반 트래픽 분기: 매칭 조건과 정책

규칙 기반 트래픽 분기는 Config에서 설정합니다. 조건은 어떤 요청을 매칭할지 설명하고, 뒤에 오는 정책은 매칭 후 요청을 어떻게 처리할지 지정합니다. 일반적인 정책은 PROXY(선택한 프록시 서버 사용), DIRECT(직접 연결), REJECT(요청 거부)입니다. 이 규칙에 따라 결과를 확인하려면 Global Routing을 Config로 설정해야 합니다. 편집 전에 현재 활성화된 설정이 무엇인지 확인하세요. 활성화되지 않은 다른 설정을 수정해도 현재 연결 처리 방식은 바뀌지 않습니다.

도메인 규칙에서 DOMAIN은 지정된 도메인과 일치하고, DOMAIN-SUFFIX는 지정된 접미사와 일치하며, DOMAIN-KEYWORD는 도메인에 포함된 키워드로 매칭합니다. 주소 규칙의 IP-CIDR과 IP-CIDR6은 각각 해당 주소 대역에 사용됩니다. GEOIP는 주소의 지역 정보를 바탕으로 매칭하며, 결과는 주소 확인 및 관련 정보에 따라 달라집니다. USER-AGENT는 요청 식별자로 매칭하지만 모든 요청에서 적절한 식별자를 얻을 수 있는 것은 아닙니다. 규칙 유형은 실제로 확인할 수 있는 대상 정보를 기준으로 선택하고, 도메인 표기법을 주소 표기법처럼 사용하지 마세요.

DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,ads,REJECT
GEOIP,CN,DIRECT
FINAL,PROXY

아래는 문법을 설명하는 예시이며, 기존 설정을 그대로 덮어쓰기에 적합하다는 뜻은 아닙니다. 규칙은 설정된 매칭 로직에 따라 작동하므로, 구체적인 조건과 기본 처리 정책을 함께 확인하세요. FINAL은 앞선 규칙에 매칭되지 않은 요청에 적용되는 최종 정책입니다. FINAL을 DIRECT로 설정하면 앞선 규칙에서 처리되지 않은 요청은 직접 연결되고, PROXY로 설정하면 선택한 서버를 사용할 수 있어야 합니다. 변경 후에는 익숙한 대상 몇 개로 먼저 확인한 다음 범위를 넓히세요. 예상과 다르게 작동하면 매칭된 조건과 정책부터 확인하고, 규칙과 DNS, 서버를 한꺼번에 크게 바꾸지 마세요.

SERVER

기존 구독 및 서버 관리

서버 항목에는 연결에 필요한 유형, 주소, 인증 정보 등이 저장됩니다. 구독은 서비스 제공자가 제공한 서버 정보를 가져오고 업데이트하는 데 사용합니다. 서버와 라우팅 규칙은 서로 다른 영역입니다. 규칙이 있어도 사용 가능한 서버가 없으면 PROXY 정책이 예상대로 작동하지 않으며, 서버가 있어도 Direct를 선택한 상태로는 서버의 정상 작동 여부를 판단할 수 없습니다. Home의 SERVER 영역에서 현재 선택된 항목을 확인한 뒤, 보유한 정보에 따라 서버를 직접 추가하거나 구독을 가져오세요.

정보를 직접 입력하려면 Add Server로 이동해 보유한 정보와 일치하는 유형을 선택하고 주소, 포트, 인증 항목을 하나씩 확인하세요. 화면에는 Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, Hysteria2 등의 유형이 표시될 수 있습니다. 프로토콜 이름은 서비스 제공자가 안내한 정보와 일치해야 합니다. 유형만 바꾼다고 입력된 값이 다른 프로토콜에 맞게 자동 조정되지는 않습니다. 저장한 뒤 SERVER로 돌아와 사용할 항목을 선택하고 연결을 확인하세요.

이미 구독 링크가 있다면 해당 Subscribe 가져오기 메뉴에서 서비스 제공자로부터 받은 주소를 입력하세요. 구독 업데이트는 제공된 내용을 다시 불러오는 기능이며, 구독에 포함된 모든 항목의 연결을 보장하지 않습니다. 업데이트 전후에 항목 이름과 현재 선택된 항목을 확인해 목록이 바뀐 것을 앱이 서버를 자동 선택한 것으로 오해하지 않도록 하세요. 가져오기에 실패하면 링크가 완전한지, 현재 네트워크에서 구독 주소에 접속할 수 있는지, 서비스 제공자가 준 링크가 유효한지 먼저 확인하세요. 접속 정보가 포함된 전체 주소를 공개된 페이지에 붙여 넣지 마세요.

서버 항목이 여러 개라면 알아보기 쉬운 이름을 지정하고 ‘항목이 존재함’, ‘항목이 선택됨’, ‘요청이 규칙에 따라 해당 항목으로 전달됨’ 상태를 구분하세요. Connectivity Test는 연결 상태를 파악하는 데 참고할 수 있지만, 결과는 현재 네트워크와 테스트 대상, 테스트 방식에 따라 달라집니다. 문제가 생기면 선택한 항목, 라우팅 방식, 테스트 방식을 함께 기록하세요. 설정을 계속 바꾸는 것보다 원인을 찾기 쉽습니다.

ON-DEMAND

On Demand: 네트워크 조건에 따른 연결

On Demand는 설정한 네트워크 조건에 따라 연결을 시작할 시점을 정하는 기능으로, 네트워크 환경을 바꿔가며 사용하는 경우에 유용합니다. 이 기능은 ‘언제 연결할지’를 다루며, 연결 후 각 요청이 어떤 규칙을 따를지는 결정하지 않습니다. 후자는 Global Routing과 Config를 함께 확인해야 합니다. 앱에서 On Demand 설정 메뉴를 찾아 현재 화면에 표시되는 조건을 읽고, 실제로 사용하는 네트워크 환경에 맞춰 설정하세요. 세부 옵션은 설치된 앱에 표시되는 내용을 기준으로 확인하세요.

설정 전에 수동으로 한 번 연결해 선택한 서버와 현재 규칙이 자주 사용하는 네트워크에서 정상 작동하는지 확인하세요. 그런 다음 익숙한 네트워크 환경에서 연결 방식을 정하는 등, 직접 확인할 수 있는 조건만 추가합니다. 설정 후에는 해당 네트워크 환경에서 Home의 연결 상태를 확인하고 요청이 예상대로 분기되는지도 점검하세요. 조건이 작동하지 않으면 기기가 현재 사용하는 네트워크가 실제로 해당 조건에 맞는지 확인한 다음, 시스템 VPN 설정 권한과 앱의 On Demand 스위치를 살펴보세요.

연결 문제를 잠시 확인하려면 On Demand를 끄고 Home에서 수동으로 연결해 재현해 보세요. 자동 실행 조건과 서버 또는 규칙 문제를 구분하는 데 도움이 됩니다. 자동 연결을 다시 켠 뒤에는 네트워크를 전환해 조건이 작동하는지 확인하세요. 이전에 수동 연결이 됐다는 이유만으로 조건이 적용됐다고 판단하지 마세요. 계속 연결할지 필요할 때만 연결할지는 사용 환경에 따라 다릅니다. Data의 트래픽 변화도 실제 연결된 시간을 고려해 해석하세요.

DATA

Data: 트래픽 통계 확인

Data에서는 Shadowrocket이 기록한 연결 관련 트래픽 정보를 확인할 수 있습니다. 앱의 Data 페이지에서 통계를 볼 때는 표시된 값이 현재 연결 기준인지, 특정 기간 기준인지, 또는 다른 집계 기준인지 먼저 확인한 뒤 업로드와 다운로드 수치를 살펴보세요. 특정 작업 이후 클라이언트가 처리한 트래픽의 변화를 확인하는 데 유용하지만, 서비스 제공자의 과금 내역과 동일한 자료로 간주해서는 안 됩니다. 집계 범위와 기간, 계산 방식이 서로 다를 수 있습니다.

작업 전후의 변화를 비교하려면 현재 표시된 값을 기록한 다음, 알고 있는 대상 하나를 열어보는 등 한 가지 작업만 수행하고 Data로 돌아와 증가량을 확인하세요. 수치가 예상대로 변하지 않으면 Home의 연결 상태, Global Routing이 Config로 설정되어 있는지, 대상이 DIRECT 또는 REJECT에 매칭됐는지 확인하세요. DIRECT로 처리된 요청과 선택한 서버를 통해 처리된 요청을 동일하게 볼 수는 없습니다. 서버나 네트워크를 바꾼 뒤에도 통계의 기간과 연결 범위를 다시 확인해 서로 다른 조건의 수치로 규칙 적용 여부를 추론하지 않도록 하세요.

Data는 사용량을 살펴보는 데 적합하지만, 프로토콜 설정을 단독으로 진단하는 용도는 아닙니다. 서버 연결을 확인하려면 Connectivity Test와 Diagnostics를 함께 사용하세요. 트래픽 분기 경로를 확인하려면 Config에서 규칙과 정책을 점검하세요. 여러 화면의 정보를 함께 확인해야 ‘트래픽은 있는데 대상이 열리지 않음’ 또는 ‘연결은 정상이지만 통계 변화가 미미함’ 같은 현상을 설명할 수 있습니다.

SETTINGS

Settings: 주요 옵션 하나씩 확인하기

DNS: 먼저 이름이 어디서 확인되는지 살펴보기

DNS는 도메인 이름을 주소로 변환합니다. 관련 옵션은 Settings 또는 현재 Config의 해당 설정에서 확인할 수 있습니다. 시스템 DNS, 사용자 지정 DNS, DNS over HTTPS는 사용하는 확인 서비스와 전송 방식이 다릅니다. 선택하기 전에 현재 설정에 이미 DNS 항목이 지정되어 있는지 확인하세요. 여러 위치를 한꺼번에 수정하면 어느 설정이 결과에 영향을 줬는지 파악하기 어렵습니다. Config에서 DNS를 편집할 때는 앱이 지원하는 설정 형식에 맞춰 입력하세요. 변경 후에는 알고 있는 도메인으로 이름 확인과 연결을 테스트하세요. 도메인 접속은 실패하지만 알고 있는 주소로는 접속되는 경우 DNS를 우선 점검할 수 있습니다. 모든 연결 실패를 DNS 문제로 단정하지 마세요.

Test Method: 테스트 결과의 범위 이해하기

Test Method는 연결 테스트 방식을 결정합니다. Settings에서 현재 선택 항목을 확인하고 Home의 Connectivity Test와 함께 사용하세요. 테스트가 통과되면 해당 방식의 확인 과정에서 응답을 받았다는 뜻이지, 모든 대상과 프로토콜 환경이 동일하게 작동한다는 보장은 아닙니다. 실패한 경우에도 현재 네트워크와 테스트 대상, 서버 정보를 함께 살펴봐야 합니다. 서버 두 대를 비교할 때는 Test Method를 동일하게 유지하세요. 테스트 방식이 달라진 것을 서버 성능 차이로 오해하지 않도록 하기 위해서입니다. 테스트 후에는 실제로 접속하려는 대상으로 규칙 경로를 확인하세요.

Today Widget: 빠른 접근 기능, 상태 확인은 별도로

Today Widget은 시스템에서 제공하는 빠른 접근 기능입니다. Settings에서 앱 관련 옵션을 확인한 뒤 기기의 시스템 화면 안내에 따라 위젯을 관리해야 합니다. 위젯으로 연결 상태를 확인하거나 조작할 수 있지만, 최종 상태는 Home에 표시되는 정보와 실제 연결 확인을 기준으로 판단하세요. 위젯에 예상과 다른 내용이 표시되면 화면의 한 번뿐인 표시만으로 규칙이 적용됐다고 판단하지 말고, 앱을 열어 현재 SERVER 선택, Global Routing, 연결 스위치를 확인하세요. 시스템 화면과 사용 가능한 기능은 기기 환경에 따라 달라질 수 있으므로 현재 기기에 표시되는 내용을 기준으로 확인하세요.

iCloud 동기화: 동기화 항목과 활성 설정 확인

iCloud 동기화 옵션은 Settings에서 찾을 수 있으며, 조건을 충족하는 Apple 기기 간에 앱이 지원하는 데이터를 관리하는 데 사용합니다. 사용하기 전에 원래 기기에서 보존할 설정을 확인하세요. 구독 주소와 서버 인증 정보는 민감한 자료입니다. 동기화가 끝난 뒤에는 대상 기기에서 설정이 나타났는지, 현재 활성화된 Config가 무엇인지, SERVER에서 어떤 서버가 선택됐는지 하나씩 확인하세요. ‘데이터가 나타남’이 ‘현재 연결에 해당 데이터가 사용됨’을 뜻하지는 않습니다. 동기화 범위와 사용 가능 여부, 시스템 요구 사항은 앱 내 옵션과 App Store 페이지를 기준으로 확인하세요.

Diagnostics: 증상에 따라 원인 범위 좁히기

Diagnostics는 연결 관련 문제를 확인하는 데 도움을 주며, Settings에서 해당 메뉴를 찾을 수 있습니다. 사용 전에 문제가 발생한 네트워크, 선택한 서버, Global Routing 방식, 대상 정보를 기록한 뒤 진단 정보를 살펴보세요. Home에서 연결을 설정할 수 없다면 서버 매개변수와 시스템 VPN 설정 권한부터 확인하세요. 연결은 됐지만 특정 도메인에 문제가 있다면 DNS, 규칙 매칭, FINAL을 우선 점검하세요. On Demand에서만 문제가 발생한다면 수동 연결로 서버 문제를 먼저 배제하세요. 진단 정보에 주소나 설정 세부 정보가 포함될 수 있으므로 다른 사람에게 도움을 요청하기 전에 개인 인증 정보를 삭제하세요.

FINAL

설정 변경 후 확인 순서

여러 기능을 함께 사용할 때는 화면을 오가며 스위치를 반복해서 시험하기보다 의존 관계에 따라 점검하는 편이 효과적입니다. 먼저 서버 또는 구독 정보를 올바르게 가져왔는지 확인하고 Home의 SERVER에서 대상 항목을 선택하세요. 다음으로 Global Routing이 규칙 적용을 위한 Config인지, 잠시 비교하기 위한 Proxy 또는 Direct인지 확인합니다. 이 두 가지 전제가 분명해야 이후 결과를 올바르게 비교할 수 있습니다.

  1. Home에서 연결 상태와 선택된 SERVER를 확인하세요. 연결이 설정되지 않으면 서버 정보와 시스템 VPN 설정 권한부터 점검합니다.
  2. 트래픽 분기가 필요하면 Global Routing을 Config로 설정하고 규칙의 조건, 정책, FINAL을 확인한 뒤 알고 있는 대상 몇 개로 테스트하세요.
  3. 특정 도메인에 문제가 있으면 DNS와 규칙 매칭을 확인하세요. 서버 테스트 시에는 Test Method를 고정하고 Connectivity Test 결과를 비교합니다.
  4. 수동 연결이 정상 작동한 다음 On Demand의 실행 조건을 확인하세요. Data를 관찰할 때는 통계 기준과 테스트 시간을 동일하게 유지합니다.
  5. iCloud 동기화 또는 Today Widget을 사용한 뒤에는 Home으로 돌아와 현재 활성 설정과 실제 연결 상태를 확인하고, 필요한 경우 Diagnostics도 살펴보세요.

변경할 때마다 한 항목씩 확인하고 원래 설정을 기록해 두면 되돌리기 쉽습니다. 최초 가져오기와 연결 설정을 아직 마치지 않았다면 사용법을 따라 최소 구성부터 설정하세요. 앱 출처, 개발자, 앱 ID를 확인하려면 App Store 정품 확인 안내를 참고하세요. 이 페이지의 메뉴와 옵션은 실제 앱에 표시되는 문구를 기준으로 확인하세요.