공식 가이드 · 기능 안내

Shadowrocket
기능 및 자주 쓰는 설정

먼저 Global Routing을 선택한 다음 Config와 서버를 확인하세요. 연결 스위치, 분기 규칙, DNS, 자동 연결은 각각 다른 단계에 영향을 줍니다. 문제를 확인할 때 여러 항목을 한꺼번에 변경하지 마세요.

  • iPhone / iPad 사용 안내
  • 설정 전에 백업하기
  • 한 번에 한 항목씩 변경하기

이 페이지는 iPhone과 iPad에서의 사용 흐름을 기준으로 안내합니다. Shadowrocket은 Apple 플랫폼용 유료 앱입니다. Mac, Apple TV, Apple Vision 호환 여부와 시스템 요구 사항 및 구매 적용 범위는 App Store 페이지를 확인하세요. 앱은 App Store에서만 받을 수 있습니다. 구매 전에 정품 확인 및 구매 안내를 읽어 보세요.

Global Routing: 세 가지 모드 이해하기

Global Routing은 전체 연결에 적용할 처리 방식을 정하며, 연결 스위치와는 다릅니다.Home에서 Global Routing을 찾아 현재 목적에 맞게 Config, Proxy 또는 Direct를 선택하세요. 각 모드는 한국어로 구성, 프록시, 직접 연결이라고 설명할 수 있지만, 실제 조작 시에는 화면에 표시된 영문 메뉴명을 확인해야 합니다. 설정을 바꿔도 기존의 장시간 연결이 즉시 새 방식으로 다시 연결되지 않을 수 있습니다. 확인할 때는 이미 열려 있는 페이지만 살펴보지 말고 요청을 새로 보내세요.

화면 옵션주요 기능확인할 때주의 사항
Config
구성
현재 선택한 구성에 따라 규칙을 적용합니다.대상별로 다른 정책을 적용해야 할 때 사용합니다.활성 구성과 Rule 항목의 순서를 반드시 확인하세요.
Proxy
프록시
요청을 프록시 모드로 처리하며, 주로 선택한 프록시 경로를 확인할 때 사용합니다.규칙의 영향을 잠시 배제하고 보유한 서버의 작동 여부를 확인할 때 사용합니다.이 모드만으로 시스템의 모든 트래픽이 같은 경로를 거친다고 볼 수는 없습니다.
Direct
직접 연결
요청을 직접 연결 모드로 처리합니다.현재 네트워크에서 직접 접속할 때의 결과와 비교할 때 사용합니다.Direct를 선택해도 시스템의 VPN 연결이 꺼지는 것은 아닙니다.

평소 규칙에 따라 트래픽을 분기할 때는 보통 Config부터 시작합니다. 특정 대상에 연결할 수 없다면 기존 모드를 기록한 뒤 Proxy 또는 Direct로 잠시 바꿔 비교하고, 확인이 끝나면 원래 설정으로 되돌리세요. 비교 결과는 경로별 차이를 보여 줄 뿐 서버, DNS 또는 대상 서비스 중 어느 하나에 문제가 있다고 단정할 수는 없습니다. 로그도 함께 확인해야 합니다.

Config는 메뉴 이름과 Global Routing 옵션으로 모두 표시되어 혼동하기 쉽습니다. 메뉴의 Config에서는 구성 파일을 관리하고, Global Routing의 Config는 ‘현재 구성을 기준으로 처리’한다는 뜻입니다. Config에서 파일을 열었다고 해서 해당 파일이 활성 구성으로 지정된 것은 아니므로 사용 전에 선택 상태를 확인하세요.

Rule: 규칙 유형과 정책 구분하기

규칙 유형은 요청을 판별하고, 정책은 규칙이 일치했을 때 수행할 동작을 정합니다.Config에서 현재 사용하는 구성을 열고 Rule 또는 해당 [Rule] 섹션을 확인하세요. 규칙은 위에서 아래 순서로 처리되며, 먼저 일치하는 규칙이 있으면 뒤의 규칙은 확인하지 않습니다. 더 구체적인 예외는 범위가 넓은 규칙보다 앞에 두고, 마지막에는 FINAL을 기본 규칙으로 배치하세요.

DOMAIN은 전체 도메인과 일치하고, DOMAIN-SUFFIX는 도메인 접미사와 일치하며, DOMAIN-KEYWORD는 도메인에 포함된 키워드로 일치 여부를 판단합니다. IP-CIDR과 IP-CIDR6은 각각 IPv4와 IPv6 주소 범위를 나타내며, GEOIP는 IP 지리 데이터베이스를 기준으로 판단합니다. 도메인 규칙과 IP 규칙은 확인하는 기준이 다릅니다. 페이지가 특정 도메인에 속한다는 이유만으로 페이지에서 불러오는 모든 리소스에 같은 규칙이 적용된다고 단정할 수는 없습니다.

[Rule]
DOMAIN-SUFFIX,apple.com,DIRECT
DOMAIN-KEYWORD,adservice,REJECT
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

위 내용은 문법 예시일 뿐 완전한 설정을 대신하지 않습니다. DIRECT는 직접 연결, REJECT는 요청 거부, PROXY는 프록시 정책에 따라 처리한다는 뜻입니다. 실제로 사용할 서버는 현재 선택 상태를 확인해야 합니다. 정책 키워드는 대문자로 작성하며 Global Routing의 Proxy, Direct 메뉴명과 같은 설정으로 혼동하지 마세요.

수정하기 전에 기존 설정을 복사해 두고, 범위가 명확한 규칙을 하나만 추가하세요. 저장한 뒤 활성 설정인지 확인하고 다시 테스트합니다. 규칙이 적용되지 않으면 Global Routing이 Config인지, 앞에 더 포괄적인 규칙이 먼저 일치하는지 확인한 다음 요청에 실제로 사용된 도메인이나 주소를 살펴보세요. FINAL을 맨 위로 옮기지 마세요. 기본 규칙이 먼저 적용되어 이후 규칙이 일치할 기회가 사라집니다. 규칙 순서는 사용자 지정 규칙과 FINAL 안내에서 더 자세히 확인할 수 있습니다.

Subscribe 및 Add Server: 보유 정보 관리

구독은 서버 항목을 일괄 관리할 때, 수동 추가는 명확한 연결 정보를 직접 입력할 때 사용합니다.두 방식 모두 사용자가 이미 보유한 정보를 바탕으로 합니다. Home에서 Add Server를 열고 기존 정보에 맞는 유형을 선택해 입력하세요. 구독을 가져오려면 해당 메뉴에서 Subscribe를 선택하고 본인의 구독 주소를 입력합니다. 앱에 Scan QR Code 등의 메뉴가 있다면 기존 정보를 읽어 올 수도 있습니다. 가져오기 전에 정보의 출처와 용도를 확인하세요.

수동 입력 시 주소, 포트, 인증 정보와 프로토콜 요구 사항을 하나씩 확인하세요. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard 등은 프로토콜마다 필요한 매개변수가 다릅니다. 유형 이름만 바꾸고 나머지 항목을 그대로 사용하면 안 됩니다. TLS, 전송 방식과 관련 이름은 원본 정보에 따라 입력하세요. 오류를 없애기 위해 임의로 인증을 끄거나 매개변수를 바꾸지 마세요.

가져오기에 성공했다는 것은 앱이 정보를 읽었다는 뜻이지, 서버 연결이 보장된다는 뜻은 아닙니다. Home으로 돌아가 그룹과 항목을 확인한 다음 사용할 서버를 선택하고 Connectivity Test를 별도로 실행하세요. 구독을 업데이트하면 항목이 추가·삭제되거나 변경될 수 있으므로 중요한 메모와 개별 수정 사항은 미리 보관하세요. 다음 새로고침 후에도 모든 로컬 변경 사항이 유지된다고 가정하지 마세요.

구독 주소에는 접속 정보가 포함될 수 있습니다. 스크린샷, 로그, 문의 자료를 공유할 때는 전체 주소와 인증 정보를 가리세요. 업데이트에 실패하면 주소 접속 실패, 응답 내용 형식 오류, 가져온 항목의 연결 실패를 구분하세요. 앞의 두 경우는 정보 가져오기와 파싱 단계의 문제이고, 마지막 경우에는 프로토콜 매개변수와 연결 경로를 추가로 확인해야 합니다. 자세한 단계는 사용 안내를 참고하세요.

On Demand: 조건에 따른 연결

On Demand는 조건에 따라 연결을 시작하며, 개별 요청의 분기 정책을 정하지 않습니다.앱의 On Demand 설정 메뉴에서 사용할 수 있는 조건을 확인한 뒤 본인의 네트워크 사용 환경에 맞게 설정하세요. On Demand, Global Routing, Rule은 서로 다른 단계에서 작동합니다. On Demand는 연결 시점을, Global Routing과 Rule은 연결 후 요청이 이동할 경로를 처리합니다.

설정 전에 수동 연결로 현재 구성과 서버가 정상 작동하는지 확인한 다음, 검증하기 쉬운 조건 하나를 활성화하세요. 저장한 뒤 해당 네트워크에 연결해 시스템 VPN 상태와 앱의 연결 상태를 확인하고, 그 조건에서 벗어난 뒤에도 다시 살펴보세요. Wi-Fi 네트워크 이름을 조건으로 사용하는 경우에는 현재 네트워크 이름과 정확히 일치하는지 확인하세요. 비슷한 이름을 같은 조건으로 간주하지 않도록 주의해야 합니다.

On Demand가 켜져 있으면 연결을 수동으로 끈 뒤 조건이 다시 충족될 때 연속 동작이 발생할 수 있습니다. 따라서 ‘방금 껐는데 다시 연결됨’이 반드시 앱 오류를 의미하지는 않습니다. 이 현상을 확인하려면 먼저 On Demand를 일시 중지하고 수동 연결로 비교한 뒤, 시스템의 관련 VPN 설정을 확인하세요. 자동 연결이 작동하더라도 원격 서비스가 항상 사용 가능한 것은 아닙니다. 네트워크 변경, 인증 실패 또는 서버 접속 불가로 연결이나 이용에 실패할 수 있습니다.

자동 연결을 잠시 중지하려면 Home의 스위치를 반복해서 조작하는 대신 On Demand 설정으로 돌아가 해당 조건을 확인하고 끄세요. 자동 연결을 다시 사용하기 전에 현재 선택된 서버와 활성 구성을 확인해 테스트 중 선택한 항목으로 자동 연결되지 않도록 하세요.

Data: 트래픽 통계 확인하기

Data는 트래픽 사용량을 확인하는 기능이며, 누적 바이트는 현재 속도를 나타내지 않습니다.Data를 열고 현재 화면, 항목이 속한 대상과 통계 범위를 확인한 다음 업로드 및 다운로드 수치를 살펴보세요. 서버별로 확인하면 각 항목의 사용량을 파악하는 데 도움이 됩니다. 앱별 보기가 제공되는 경우에는 항목의 분류 기준도 확인하세요. 기록에 표시된 이름만으로 앱의 전체 사용 내역을 단정하지 마세요.

비교를 위해 먼저 현재 수치와 통계 시작점을 기록한 뒤, 페이지를 다시 여는 등 확인하려는 동작을 한 번만 수행하고 Data에서 변화를 살펴보세요. 짧은 시간에 수치가 증가했다면 해당 통계 범위에 트래픽이 기록되었다는 뜻입니다. 페이지에서는 이미지, 스크립트, 백그라운드 리소스도 요청할 수 있으므로 전체 사용량을 화면에 표시된 특정 파일의 크기와 동일시할 수 없습니다.

수치가 0이면 연결이 수립되었는지, 대상 요청을 새로 보냈는지, 현재 확인 중인 항목이 실제 사용한 서버인지 먼저 확인하세요. 브라우저 캐시, 서로 다른 정책 경로, 통계 범위 변경 때문에 예상과 다른 수치가 표시될 수 있습니다. 수치가 크다면 백그라운드 활동과 반복 테스트를 먼저 확인하고, 바로 통계 오류라고 판단하지 마세요.

Data는 서비스 요금 산정 기준이 아닙니다. 클라이언트의 통계 범위와 원격 서비스의 사용량 집계 방식은 다를 수 있으므로 각각의 안내를 확인하세요. 화면에 통계 삭제 또는 초기화 기능이 있다면 실행 전에 필요한 정보를 기록하고, 이후 비교는 새로 시작한 시점을 기준으로 하세요. 수치에 관한 자세한 내용은 Data 화면의 트래픽 통계 안내를 참고하세요.

DNS: 활성 구성 확인 후 DNS 설정 변경하기

DNS는 도메인을 주소로 변환하며, 이름 확인 성공과 이후 연결 성공은 별도로 확인해야 합니다.DNS를 확인할 때는 Config에서 활성 구성의 관련 항목과 Settings에 표시된 DNS 옵션을 함께 살펴보세요. 한 곳만 바꾸고 모든 요청에 적용되었다고 단정하지 마세요. 실제 동작은 구성 내용, 요청 경로와 관련 옵션에 따라서도 달라집니다.

예를 들어 구성의 dns-server는 DNS 서버 설정을 지정합니다. 다음 예시는 시스템 DNS를 사용하는 방법을 보여 줍니다. 모든 네트워크에 권장되는 설정은 아니며, 완전한 구성을 위해 고려해야 할 다른 항목도 포함되어 있지 않습니다.

[General]
dns-server = system

변경 전에 활성 구성을 백업하고 기존 값을 기록한 다음 DNS 관련 항목 하나만 수정하세요. 저장 후 같은 도메인에 요청을 다시 보내고, 필요한 경우 앱에서 제공하는 방식으로 연결을 다시 설정해 기존 연결이나 캐시가 비교에 영향을 주지 않도록 하세요. 한 번의 DNS 응답이 느리다는 이유로 DNS, Global Routing, 서버를 한꺼번에 바꾸면 어떤 변경이 결과에 영향을 주었는지 파악하기 어렵습니다.

도메인을 확인할 수 없다면 현재 네트워크에서 DNS에 접근할 수 있는지와 구성 문법을 먼저 확인하세요. 도메인을 확인했지만 접속할 수 없다면 대상 주소 연결, TLS, 규칙 정책을 이어서 점검하세요. DNS 결과는 캐시와 네트워크 환경에 영향을 받을 수 있으므로 한 번의 결과를 장기적인 결론으로 여기지 말고 테스트 당시의 네트워크 조건을 기록하세요.

Settings: 테스트 방식, 빠른 메뉴 및 동기화

Settings의 자주 쓰는 항목은 목적에 따라 따로 조정하세요.기기와 현재 화면에 따라 메뉴와 옵션이 다를 수 있으므로 먼저 이름을 확인한 뒤 조작하세요. 기존 값을 기록하고 반복해서 확인할 수 있는 변경부터 적용하세요. 의미를 모르는 옵션은 안내를 먼저 확인하고, 모든 스위치를 켜는 것을 일반적인 해결 방법으로 삼지 마세요.

Test Method 및 Connectivity Test

Test Method에서 연결 테스트 방식을 선택하고 Connectivity Test로 테스트를 실행합니다. 먼저 Settings에서 Test Method를 확인한 뒤 Home으로 돌아가 보유한 서버를 테스트하세요. 항목별 결과를 비교할 때는 테스트 방식, 대상과 현재 네트워크 조건을 동일하게 유지하세요. 방식이 다른 테스트의 수치를 직접 비교해 순위를 매기면 안 됩니다.

테스트 결과가 표시되어도 모든 웹사이트나 앱이 정상적으로 작동한다는 뜻은 아닙니다. 테스트 실패 역시 인증 정보 오류를 반드시 의미하지는 않습니다. 명확한 대상에 실제 요청을 보내 이름 확인, 연결 수립, 콘텐츠 반환 단계를 구분해 확인하세요. 더 작은 수치를 얻으려고 테스트 방식을 계속 바꾸면서 실제 접속이 완료되었는지 놓치지 마세요.

Today Widget

Today Widget은 시스템의 해당 영역에서 사용하는 빠른 메뉴입니다. 추가할 수 있는지와 어떤 동작이 표시되는지는 현재 시스템 및 앱 화면을 기준으로 확인하세요. 먼저 앱에서 관련 설정을 확인한 다음 시스템의 위젯 편집 메뉴에서 추가할 수 있는지 살펴보세요. 위젯은 조작을 위한 메뉴이지 별도의 구성 환경이 아닙니다. 사용 전에 앱에서 서버, Global Routing, 활성 구성을 확인해야 합니다.

빠른 메뉴를 조작한 뒤 상태가 예상과 다르면 먼저 앱을 열어 실제 연결 상태를 확인하고, 이어서 On Demand가 추가 연결을 시작했는지 살펴보세요. 위젯에 마지막으로 표시된 문구만으로 현재 요청 경로를 판단하지 마세요.

iCloud 동기화

iCloud 동기화는 필요한 조건이 충족되면 앱에서 지원하는 데이터를 동기화합니다. 먼저 시스템 설정에서 iCloud 사용 상태와 앱 권한을 확인한 다음 Shadowrocket에서 해당 옵션을 살펴보세요. 동기화 범위는 앱에 표시되는 내용을 기준으로 확인하세요. 동기화를 켰다고 모든 기기의 서버, 구성, 통계와 연결 상태가 완전히 같아지는 것은 아닙니다.

다른 기기에서 조작하기 전에 동기화된 항목과 선택 상태를 확인한 뒤 연결하세요. 삭제, 덮어쓰기 또는 일괄 수정 전에는 복구할 수 있는 사본을 보관하세요. App Store에서 구입 항목을 복원하면 앱 구매 권한이 복원되지만, 모든 연결 정보까지 복구되는 것은 아닙니다. 두 항목을 따로 확인하고, 기기 변경 절차는 구입 항목 복원 안내를 참고하세요.

Diagnostics: 순서대로 문제 범위 좁히기

진단의 목적은 모든 설정을 연달아 바꾸는 것이 아니라 실패가 발생한 단계를 찾는 것입니다.Settings에서 Diagnostics 또는 현재 화면에 제공되는 진단 도구를 확인하고 Connectivity Test 및 연결 기록과 함께 살펴보세요. 도구의 정확한 이름, 기록 범위와 사용할 수 있는 기능은 앱에 표시되는 내용을 기준으로 확인하고, 테스트가 끝나면 필요한 결과만 보관하세요.

  1. 기본 네트워크부터 확인하세요.현재 Wi-Fi를 사용하는지 셀룰러 네트워크를 사용하는지, 문제가 특정 네트워크에서만 발생하는지 기록하세요. 기본적인 접속도 되지 않는다면 먼저 해당 네트워크의 연결 문제를 해결해야 합니다.
  2. 선택 상태를 확인하세요.Home에서 현재 선택한 서버, Global Routing, 활성 Config 파일과 On Demand 상태를 확인하세요. 연결 스위치가 켜져 있다는 사실은 점검의 출발점일 뿐입니다.
  3. 테스트 조건을 확인하세요.Test Method를 확인하고 같은 네트워크에서 같은 항목으로 Connectivity Test를 실행해 결과를 기록하세요. 서로 다른 방식의 테스트 결과를 한데 섞어 비교하지 마세요.
  4. 규칙과 DNS를 확인하세요.대상을 하나 정해 요청 관련 정보를 살펴보고 도메인 확인, 적용된 정책과 연결 오류를 확인하세요. Config에서만 실패한다면 Rule 순서를 다시 확인하세요.
  5. 원래 설정으로 되돌린 뒤 재테스트하세요.한 번에 하나만 변경하고 같은 요청을 다시 보내세요. 개선되지 않으면 원래 값으로 복원한 뒤 다음 항목을 테스트해 임시 설정이 누적되지 않도록 하세요.

‘시간 초과’, ‘인증 실패’, ‘이름 확인 실패’는 서로 다른 문제 단서입니다. 시간 초과는 네트워크 접근성, 대상 주소와 원격 응답을 함께 확인해야 합니다. 인증 실패라면 보유한 인증 정보와 프로토콜 매개변수를 먼저 확인하고, 이름 확인 실패라면 DNS 관련 설정을 우선 점검하세요. 오류 메시지 하나만으로 전체 연결 경로의 원인을 단정하기는 어렵습니다.

문의를 준비할 때 기기 종류, 현재 네트워크, Global Routing 모드, 실패한 대상 유형과 개인정보를 가린 오류 문구를 기록하면 도움이 됩니다. 서버 인증 정보, 구독 전체 주소, 구성의 민감한 항목은 공개하지 마세요. 연결 과정에 관한 문제라면 연결 문제 FAQ를 확인하세요. 앱을 받지 못했거나 구매 항목을 복원할 수 없는 경우에는 네트워크 설정을 반복해서 바꾸지 말고 App Store 안내를 참고하세요.