공식 매뉴얼 / Settings 설정 항목 안내

Shadowrocket
Settings 설정 항목 및 설정 기준

DNS, On Demand, Proxy, Ping, Log, Widget, iCloud 동기화를 용도별로 살펴보세요. 먼저 설정의 적용 범위를 확인한 뒤 조정 여부를 결정합니다.

Shadowrocket은 Apple 플랫폼에서만 제공되는 유료 클라이언트이며, 유일한 구매 경로는 App Store입니다. 개발자는 Shadow Launch Technology Limited이고 앱 ID는 932747118입니다. 기기 호환성 및 시스템 요구 사항은 App Store 페이지에 표시된 내용을 기준으로 확인하세요. 구매 전 App Store 정품 확인 안내를 읽어볼 수 있습니다.

이 페이지는 설정을 찾아보는 매뉴얼이며, 첫 연결 절차를 대신하지 않습니다. 아직 가져오기와 권한 설정을 마치지 않았다면 입문 가이드에 따라 기본 절차를 먼저 완료하세요. 이미 연결할 수 있고 특정 항목의 의미를 확인하려는 경우 이 페이지를 참고하면 됩니다. 아래 내용은 사용자가 자신의 구독 또는 서버 정보를 보유하고 있다는 전제입니다. 클라이언트는 한 번 구매하면 계속 사용할 수 있지만, 회선 요금제는 별도입니다.

현재 상태를 먼저 기록 한 번에 한 가지 항목만 변경 기본값은 기기에 실제로 표시되는 값을 기준으로 확인

목차는 기능별로 구성되어 있으며 앱 내 메뉴의 고정된 배열을 나타내지 않습니다. 메뉴 위치와 사용 가능한 항목은 현재 기기에 표시되는 내용을 기준으로 확인하세요.

01 / 적용 범위와 현재 상태

Settings의 기본 기준과 조정 순서

앱 설정, 구성 파일, 서버 매개변수 구분하기

Settings(설정)는 주로 클라이언트의 동작 방식을 지정하지만, 연결은 이 항목만으로 결정되지 않습니다. Home(홈)에서 선택한 서버, Global Routing(전체 라우팅) 방식, Config(구성)에서 활성화한 파일, 시스템에서 허용한 VPN 권한이 함께 요청 처리 방식에 영향을 줍니다. 문제를 확인하기 전에 어느 단계에서 발생한 문제인지 먼저 구분하세요. 그렇지 않으면 인증 오류의 원인을 DNS에서 찾거나, 규칙 매칭 문제를 서버 변경으로 덮으려 할 수 있습니다.

서버 주소, 포트, 인증 정보, 프로토콜 전송 매개변수는 연결 정보에 해당하므로 사용자가 보유한 정보를 기준으로 하나씩 확인해야 합니다. 규칙 순서, 대상 정책 및 일부 DNS 처리 방식은 구성 파일에 포함될 수 있습니다. Widget(위젯)과 로그는 조작 및 상태 확인에 쓰이며 서버 정보를 수정하지는 않습니다. 항목별로 따로 기록해 두면 변경이 실제 문제 원인에 영향을 주었는지 확인하기 쉽고, 테스트 후 관련된 부분만 되돌릴 수 있습니다.

이 매뉴얼은 특정 기기에 표시되는 스위치 상태를 모든 설치 환경의 고정 기본값으로 규정하지 않습니다. 처음 설치했는지, 데이터를 복원했는지, 구성을 가져왔는지, 다른 기기와 동기화했는지에 따라 시작 상태가 다를 수 있습니다. 기본값은 설정을 직접 변경하지 않은 실제 환경에서 확인하고, 이미 사용 중인 기기에서는 ‘현재 값’으로 봐야 합니다. 화면에 항목이 없다면 문서와 맞추기 위해 존재하지 않는 메뉴나 매개변수를 만들지 마세요.

Global Routing의 세 가지 방식

방식주요 용도확인할 항목
Config(구성)현재 구성의 규칙에 따라 트래픽을 분기합니다.활성 구성, 규칙 순서, 정책 대상
Proxy(프록시)해당 트래픽을 선택한 프록시로 처리합니다.서버 연결 및 대상 요청의 성공 여부
Direct(직접 연결)해당 트래픽을 직접 연결 방식으로 처리합니다.현재 네트워크의 접속 및 DNS 처리 상태

세 가지 방식은 속도 단계가 아니며 원격 서비스의 성능을 바꾸지도 않습니다. 평소 규칙에 따라 트래픽을 분기하려면 Config를 이해하고 관리할 수 있어야 합니다. Proxy와 Direct는 잠시 비교 테스트에 사용할 수 있지만, 테스트가 끝나면 기존 방식으로 되돌리세요. Direct는 라우팅 처리 방식일 뿐 시스템 VPN이 꺼졌다는 뜻은 아닙니다. 연결이 끊겼는지 판단하려면 앱의 연결 상태와 시스템의 VPN 상태를 함께 확인해야 합니다.

되돌릴 수 있도록 변경 내용 기록하기

  1. 현재 네트워크 유형, 연결 상태, 서버 메모, Global Routing 방식, 활성 구성 이름을 기록하세요. 구독 전체 주소는 기록하지 마세요.
  2. 변경할 설정 항목, 현재 값, 변경 이유, 예상되는 결과를 적은 다음 해당 항목 하나만 조정하세요.
  3. 기존 요청을 종료하세요. 연결을 다시 설정해야 하는 항목은 연결을 끊었다가 다시 연결한 뒤 같은 대상으로 확인합니다.
  4. 결과가 개선되지 않으면 원래 값으로 되돌린 다음 다음 항목을 확인하세요. 검증하지 않은 변경을 여러 개 겹쳐서 계속 적용하지 마세요.

권장 설정은 모든 스위치를 켜는 것이 아니라 명확한 필요에 맞춰야 합니다. 특별한 DNS 처리 요구가 없다면 이미 정상 작동을 확인한 설정을 유지하세요. 자동 연결 조건을 이해하기 전에는 수동으로 연결하고, 문제 해결이 끝나면 상세 로그를 평소 사용에 필요한 수준으로 되돌리세요. 이는 설정 조정의 원칙이며 현재 화면에 표시되는 기본값을 대신하지 않습니다. 이미 안정적으로 작동하는 사용자가 설정을 다시 구성할 필요도 없습니다.

시스템 권한을 허용하는 첫 단계도 완료하지 않았다면 고급 항목을 계속 조정하지 말고 입문 절차로 돌아가세요. 특정 대상만 이상하다면 현재 연결을 유지하고 요청 기록부터 살펴보세요. 모든 대상에서 동시에 실패한다면 기본 네트워크와 서버 연결을 먼저 확인합니다. 증상별 안내는 자주 묻는 질문을 참고한 뒤 해당 항목을 이어서 확인하세요.

02 / 도메인 이름 확인

DNS 설정 및 이름 확인 경로

도메인 확인 성공과 요청 성공은 별개입니다

DNS(도메인 이름 시스템)는 도메인을 연결 가능한 주소로 변환하지만, 주소를 얻었다고 대상 서비스까지 사용할 수 있는 것은 아닙니다. 요청은 로컬 DNS 확인, 규칙 판단, 프록시 연결, 대상 응답을 차례로 거칠 수 있습니다. 구성에 따라 DNS 확인과 규칙 판단의 순서 및 처리 위치도 달라집니다. 페이지가 열리지 않는다면 어느 단계에서 실패했는지 먼저 확인하세요. DNS를 바꾼 뒤 때때로 해결되었다고 해서 모든 문제를 DNS 탓으로 돌리면 안 됩니다.

서버 도메인과 대상 도메인을 구분해야 합니다. 서버 도메인은 프록시 서버에 연결하는 데 사용되며, 확인에 실패하면 프록시에 도달하기 전에 연결이 끊길 수 있습니다. 대상 도메인은 브라우저나 다른 앱이 요청하는 주소입니다. 두 도메인의 경로는 다를 수 있습니다. 오류를 기록할 때는 단순히 ‘DNS가 안 됨’이라고 쓰지 말고 ‘서버 주소 확인 실패’인지 ‘연결 후 대상 도메인 실패’인지 구체적으로 적으세요. 이후 점검 방향이 달라집니다.

현재 DNS 설정을 확인할 때는 먼저 활성 Config에 DNS 관련 설정이 있는지 확인한 다음 Settings에 표시된 항목을 살펴보세요. 여러 메뉴에 서로 다른 DNS 주소를 동시에 추가한 뒤 마지막으로 변경한 항목만 보고 실제 작동을 단정하지 마세요. 설정이 서로 덮어쓰는 관계인지 알기 어렵다면 현재 구성을 저장하고 되돌릴 수 있는 복사본에서 중복 설정을 줄인 뒤 Log(로그)로 새 요청을 확인하세요.

기본값과 권장 설정을 판단하는 기준

이 매뉴얼은 일반적으로 적용되는 공용 DNS 주소를 정하거나 특정 주소를 모든 네트워크의 권장값으로 제시하지 않습니다. 특별한 필요가 없다면 현재 정상 작동이 확인된 DNS 방식을 유지하세요. 로컬 네트워크의 이름을 사용해야 한다면 현재 네트워크의 DNS가 해당 이름을 확인할 수 있는지 먼저 점검하세요. 모든 DNS 요청을 외부 DNS에 맡기면 내부 도메인에 대한 결과를 얻지 못할 수 있습니다. 따라서 공용 도메인을 확인할 수 있다는 사실만으로 전체 사용 환경에 적합하다고 볼 수는 없습니다.

화면에 암호화 DNS 방식이 있다면 전체 주소 형식, 인증서 검증, 연결 조건을 확인하세요. 암호화는 DNS 요청 전송을 보호하는 방식이며, 결과가 현재 네트워크에 반드시 적합하다는 뜻은 아닙니다. DNS 서버 자체에도 연결할 수 있어야 합니다. DNS 서버 연결에 아직 성립하지 않은 프록시가 필요하고, 프록시 서버 도메인은 다시 해당 DNS에 의존한다면 연결 시작 단계에서 의존성 문제가 생길 수 있습니다. 연결 전에도 독립적으로 서버 주소를 확인할 수 있는 경로를 먼저 복원하세요.

증상우선 확인할 항목바로 단정하면 안 되는 점
연결이 시작되기 전에 실패서버 도메인 확인 및 기본 네트워크대상 웹사이트의 장애라고 단정할 수 없습니다.
내부 이름만 확인 실패네트워크에서 제공하는 DNS와 내부 도메인 처리공용 도메인의 결과만 비교해서는 안 됩니다.
네트워크 전환 후 이상 발생새 네트워크의 연결 가능 여부, 캐시, 연결 재설정전환 전 성공 기록만 확인해서는 안 됩니다.
일부 주소만 실패주소 체계, 규칙 경로, 대상 연결 상태모든 DNS 확인이 실패했다고 단정할 수 없습니다.

IPv6, 캐시, 재검증

하나의 도메인에서도 서로 다른 주소 체계의 레코드가 반환될 수 있고, 네트워크 위치에 따라 주소가 달라질 수도 있습니다. IPv6 관련 설정은 현재 네트워크와 서버 경로의 지원 여부를 기준으로 판단하세요. 한 번 접속에 실패했다는 이유만으로 계속 비활성화하는 것은 적절하지 않습니다. 같은 도메인이 네트워크에 따라 다르게 작동하면 실제 사용된 주소 체계, 규칙 정책, 연결 오류를 비교하세요. DNS 레코드가 있다는 것은 후보 주소를 얻었다는 뜻일 뿐 해당 경로로 통신할 수 있음을 보장하지 않습니다.

DNS 설정을 변경한 뒤에도 기존 연결과 캐시가 결과에 영향을 줄 수 있습니다. 대상 앱의 기존 요청을 종료하고 필요하면 Shadowrocket 연결을 다시 설정한 다음 새 요청을 보내세요. 현재 화면에 관련 캐시를 지우는 기능이 있다면 원래 상태를 기록한 뒤 사용할 수 있습니다. 같은 페이지를 계속 새로고침하는 것은 독립적인 테스트가 아닙니다. 기존 연결을 재사용하거나 페이지 캐시만 읽고 새 네트워크 요청을 보내지 않을 수도 있습니다.

반복 가능한 확인 순서는 다음과 같습니다. 기본 네트워크 접속을 확인하고, 서버 도메인이 확인되는지 점검한 뒤 연결을 설정합니다. 이후 같은 대상을 방문하고 해당 요청의 기록을 확인하세요. 그다음 DNS 관련 항목 하나만 변경하고 필요한 연결을 다시 설정한 뒤 같은 순서를 반복합니다. 변경 전후에는 네트워크와 라우팅 방식이 같아야 합니다. 중간에 네트워크를 바꾸었다면 별도의 테스트로 기록하고 바로 비교하지 마세요.

문제 해결 후 임시로 추가했지만 효과가 확인되지 않은 DNS 항목은 제거하거나 원래 값으로 복원하고, 최종 설정을 선택한 이유를 기록하세요. 장기 설정은 내부 도메인 확인 유지, 알려진 네트워크 요구 충족, 재현된 의존성 문제 해결처럼 적용 조건을 설명할 수 있어야 합니다. 단지 어떤 주소가 ‘전에 작동했다’는 기억만으로 유지하지 마세요.

03 / 자동 연결 및 시스템 권한

On Demand의 시작 및 중지 조건

On Demand는 지속적으로 요청을 보내는 기능이 아닙니다

On Demand(요청 시 연결)는 설정된 조건에 따라 시스템이 연결을 시작하도록 관리합니다. 연결을 언제 시도할지 정하는 기능이며, 대상에 적용할 규칙 정책을 선택하는 기능은 아닙니다. 스위치를 켜도 유효한 서버 정보, 사용할 수 있는 네트워크, 필요한 시스템 권한이 있어야 합니다. 인증 정보가 만료되었다면 자동 연결은 같은 오류를 다시 일으킬 뿐 서버 매개변수를 고치거나 구독 내용을 보완하지 않습니다.

이 항목을 확인할 때는 앱 설정, 시스템에 저장된 VPN 구성, 현재 연결 상태를 구분해야 합니다. 앱을 백그라운드로 보냈다고 시스템 연결까지 종료된 것은 아닐 수 있습니다. 한 번 수동으로 연결을 끊어도 이후 조건이 충족되면 다시 연결될 수 있습니다. 동작을 판단할 때는 자동 연결을 끄기 전에 연결을 끊었는지, 끈 뒤에도 다시 연결되는지 구체적으로 확인하세요. 두 경우의 점검 순서는 다릅니다.

처음 연결할 때 VPN 구성 추가를 허용하는 시스템 안내가 표시될 수 있습니다. 이는 Apple 시스템이 앱의 네트워크 연결 설정을 허용하는 절차입니다. 안내가 현재 사용 중인 Shadowrocket에서 시작되었는지 확인한 뒤 시스템 지침에 따라 인증하세요. 거부하면 이후 설정을 올바르게 입력해도 연결을 설정하지 못할 수 있습니다. 시스템의 ‘설정 › 일반 › VPN 및 기기 관리’에서 관련 항목을 확인할 수 있으며, 정확한 메뉴 경로는 기기에 표시되는 내용을 따르세요.

먼저 수동으로 확인한 다음 조건을 활성화하세요

  1. 자동 연결에 의존하지 말고 현재 서버와 Config로 수동 연결한 뒤, 지정한 대상에 접속할 수 있는지 확인하세요.
  2. Settings에서 On Demand를 찾아 현재 스위치 상태와 설정된 조건을 기록하세요. 조건 이름과 선택 범위는 현재 화면에 표시되는 내용을 기준으로 확인합니다.
  3. 필요한 조건만 하나씩 활성화한 뒤 연결을 끊고 해당 네트워크 환경으로 다시 들어가 시스템이 예상대로 연결하는지 확인하세요.
  4. 연결이 시작되지 않아야 하는 환경에서도 예상한 상태가 유지되는지 확인하세요. 마지막으로 수동으로 연결을 중지하는 절차를 검증합니다.

모든 네트워크를 한 번에 대상으로 지정하기보다 조건을 최소한으로 설정하는 것이 좋습니다. 특정 네트워크 조건에서만 연결하려면 현재 화면에 해당 조건이 있는지, 조건과 예외가 어떻게 적용되는지 먼저 확인하세요. 이름이 비슷하다고 같은 네트워크인 것은 아니며, 이름이 비어 있거나 대소문자 또는 네트워크 이름이 변경되면 구분에 영향을 줄 수 있습니다. 기록할 때는 알아볼 수 있는 메모를 사용하되 가정용 네트워크의 식별 정보를 전부 공개하지 마세요.

‘자동 연결이 켜져 있음’을 ‘항상 연결되어 있음’으로 기록하지 마세요. 네트워크 전환, 시스템 스케줄링, 서버 접속 불가, 기기 절전, 권한 변경 등이 실제 연결 상태에 영향을 줄 수 있습니다. 정상 작동 여부는 On Demand 스위치뿐 아니라 연결 표시와 실제 요청을 함께 확인해야 합니다. 기기에서 오랫동안 요청이 없었다면 새 로그가 없더라도 자동 연결이 실패했다고 단정할 수 없습니다.

반복 연결과 네트워크 전환 문제 처리

연결이 끊긴 뒤 계속 다시 연결된다면 먼저 On Demand를 끈 다음 수동으로 연결을 끊고 시스템 상태를 확인하세요. 문제가 계속되면 직접 설정한 다른 자동화 동작이나 중복 VPN 항목이 있는지 확인하고, 각 항목의 용도를 파악한 뒤 처리합니다. 처음부터 모든 네트워크 구성을 삭제하지 마세요. 필요한 다른 정보까지 사라지고 재현 가능한 연결 조건도 추적하기 어려워집니다.

먼저 웹페이지에서 로그인해야 하는 Wi-Fi 네트워크라면 해당 네트워크의 접속 절차를 먼저 완료하세요. 자동 연결 때문에 로그인 페이지를 열기 어렵다면 On Demand를 잠시 끄고 연결을 해제한 다음 네트워크 안내에 따라 인증을 마칩니다. 접속 후 기존 설정을 복원하고 다시 테스트하세요. 이 문제는 기본 네트워크의 접속 조건이 아직 충족되지 않아 발생한 것이므로 인증서 검증을 계속 느슨하게 하거나 프록시 매개변수를 장기적으로 바꾸어 해결하지 마세요.

Wi-Fi에서 셀룰러 네트워크로 전환하면 기존 연결을 다시 설정해야 할 수 있습니다. 전환 전의 성공 기록을 그대로 적용하지 말고 새 연결 기록을 확인하세요. 특정 네트워크에서만 실패한다면 두 네트워크를 각각 수동으로 테스트하고 결과를 기록한 뒤, 해당 네트워크의 연결 조건을 조정할지 결정합니다. 자동 연결을 설정하기 전에 각 네트워크에서 연결이 작동해야 합니다. 그렇지 않으면 자동화가 기본 문제를 반복해서 드러낼 뿐입니다.

권한을 실수로 삭제했거나 요청을 거부했다면 먼저 App Store에서 앱이 정상적으로 설치되어 있는지 확인한 뒤 연결을 다시 시도해 시스템이 권한을 요청하는지 살펴보세요. 시스템 항목 확인 및 복구 방법은 VPN 구성 추가 안내를 참고하세요. 시스템 구성을 삭제하는 것과 구독을 삭제하는 것은 서로 다른 데이터에 영향을 줍니다.

04 / 연결 매개변수 및 로컬 수신

Proxy, 프로토콜, 포트의 적용 범위

원격 서버 포트와 로컬 포트

Proxy(프록시)에서 혼동하기 쉬운 포트는 두 종류입니다. 서버 정보에 설정된 포트는 원격 서비스에 연결하는 포트이고, 로컬 수신 포트는 해당 방식으로 접속하는 요청을 받는 데 사용됩니다. 우연히 숫자가 같더라도 두 포트를 일치시킬 필요는 없습니다. 로컬 포트를 바꿔도 원격 인증 실패는 해결되지 않으며, 원격 포트를 바꿔도 다른 기기가 자동으로 로컬 프록시에 접속할 수 있는 것은 아닙니다.

먼저 편집 중인 항목이 Add Server(서버 추가)의 연결 정보인지, Settings에서 현재 기기에 제공하는 수신 관련 설정인지 확인하세요. 원격 포트는 사용자가 보유한 서버 정보와 일치해야 하며 ‘자주 쓰는 포트’를 기준으로 추측하면 안 됩니다. Subscribe(구독)에서 정보를 가져왔다면 이후 업데이트가 수동 변경을 덮어쓰는지도 확인하세요. 필요하면 변경 내용을 별도로 기록해 다음 업데이트 후 설정이 저절로 사라졌다고 오해하지 않도록 합니다.

로컬 포트는 해당 수신 기능을 켜고 접속 방식이 일치할 때만 의미가 있습니다. 포트 번호가 같아도 HTTP와 SOCKS5가 자동으로 서로 호환되지는 않으며, 요청을 보내는 쪽은 수신 측에서 지원하는 프로토콜을 사용해야 합니다. 기기 자체에서 사용한다고 해서 로컬 수신을 열 필요는 없습니다. 명확한 접속 요구가 없다면 현재 정상 작동이 확인된 상태를 유지하고 웹페이지 문제를 해결하기 위해 수신 범위를 확대하지 마세요.

포트 설정 기준과 접속 범위

현재 화면에서 로컬 포트를 편집할 수 있다면 원래 값과 수신 범위를 먼저 기록한 뒤 해당 포트를 다른 서비스가 사용 중인지 확인하세요. 유효한 포트 범위에 있다는 것은 기본 조건일 뿐입니다. 실제로 포트를 열 수 있는지는 시스템 권한과 실행 환경에도 영향을 받습니다. 따라서 이 매뉴얼에서는 모든 기기에 적용할 기본 포트를 지정하지 않으며 기억하기 쉽다는 이유로 서로 다른 서비스에 같은 수신 주소와 포트 조합을 설정하지도 않습니다.

필드가 속한 계층의미설정값의 기준
원격 서버 포트원격 서비스에 연결할 대상 포트사용자가 보유한 서버 정보
로컬 수신 포트해당 프록시 프로토콜 요청을 받는 진입점실제 접속 필요 여부와 사용 가능한 포트
수신 주소 또는 범위접속 가능한 네트워크 인터페이스필요한 최소 접속 범위
인증 및 전송 필드연결에 필요한 인증 정보와 전송 방식서버 설정에 대응하는 매개변수

화면에서 로컬 네트워크 접속을 지원한다면 현재 네트워크를 신뢰할 수 있는지, 실제로 해당 기능이 필요한지 먼저 확인하세요. 다른 기기에서 접속할 수 있는 수신 기능을 ‘이 기기에서만 사용’하는 것으로 간주해서는 안 됩니다. 다른 기기의 접속 가능 여부는 네트워크 격리와 시스템 제한에도 영향을 받습니다. 접속 인증을 제공한다면 실제 필요에 맞게 설정하고 인증 정보를 보호하세요. 사용이 끝나면 필요한 최소 범위로 되돌려 임시 테스트 설정을 장기간 열어 두지 않도록 합니다.

클라이언트의 수신 포트를 라우터의 네트워크 설정과 혼동하지 말고, 포트 바인딩 실패를 서버 오프라인으로 단정하지 마세요. 바인딩 오류가 발생하면 먼저 원래 포트를 복원하고, 중복 수신을 중지하거나 관련 연결을 다시 시작한 다음 오류가 사라지는지 확인하세요. 로컬 진입점이 정상적으로 열렸을 때만 요청이 올바른 서버와 규칙 경로를 거치는지 살펴보세요. 그렇지 않으면 여러 문제가 한 번의 테스트에 겹칩니다.

서버 정보를 기준으로 프로토콜 매개변수를 하나씩 확인하세요

Shadowsocks, VMess, VLESS, Trojan, WireGuard, Hysteria2는 서로 다른 프로토콜 또는 연결 방식의 이름이며 임의로 바꿔 쓸 수 있는 항목이 아닙니다. 서버 주소와 포트가 같더라도 인증 및 전송 필드까지 그대로 사용할 수 있다는 뜻은 아닙니다. 먼저 프로토콜 유형을 확인한 뒤 현재 화면에 표시된 필수 필드를 점검하세요. 입력을 줄이기 위해 근거가 없는 값을 인증서, 서버 이름, 전송 관련 옵션에 넣지 마세요.

연결 정보에서 TLS를 요구한다면 인증서 검증과 서버 식별 정보가 일치해야 합니다. 주소는 연결 대상 위치를 지정하고 서버 이름은 인증에 사용될 수 있으므로 두 값의 역할이 같지 않을 수 있습니다. 인증서 오류가 발생하면 기기 시간, 보유한 정보에 기재된 이름, 인증서 상태를 확인하세요. 검증을 끄는 것을 장기 권장 설정으로 삼지 마세요. 암호화 연결을 설정하는 것과 예상한 서버에 연결되었음을 확인하는 것은 각각 충족해야 할 조건입니다.

UDP 관련 기능은 프로토콜, 원격 서비스, 현재 네트워크에 따라 달라지므로 스위치 하나만 보고 모든 요청이 전송된다고 판단할 수 없습니다. 웹페이지 접속 성공만으로 다른 유형의 요청도 정상이라고 볼 수 없으며, 특정 기능의 실패가 프록시 전체의 장애를 뜻하지도 않습니다. 문제가 발생한 기능에 맞는 방식으로 확인하고 Log를 통해 로컬 접속 실패, 원격 연결 실패, 대상 응답 실패를 구분하세요.

05 / 측정 대상과 비교 방법

Ping 및 Connectivity Test

먼저 테스트가 어느 구간을 측정하는지 확인하세요

Ping(지연 시간 테스트)은 특정 테스트 조건에서의 응답 상태를 보여줄 뿐 연결 품질 전체를 판단하지는 못합니다. 화면에 Ping이라는 이름이 표시된다고 해서 내부적으로 특정 탐지 방식을 사용한다고 단정해서도 안 됩니다. 현재 버전에서 테스트 방식을 선택할 수 있다면 먼저 설명을 읽고 테스트 대상이 서버 주소인지, 연결 설정 과정인지, 특정 요청 대상인지 확인한 뒤 결과를 해석하세요.

Connectivity Test(연결 테스트)와 실제 서비스 이용도 구분해야 합니다. 테스트가 성공해도 테스트 대상이 응답했다는 사실만 확인했을 수 있습니다. 실제 앱 동작에는 DNS, 규칙, 인증, 대상 제한, 기존 연결 재사용이 영향을 줄 수 있습니다. 테스트가 실패하더라도 현재 네트워크에서 탐지 방식이 적합하지 않은 반면 서버는 실제 요청을 처리할 수 있습니다. 따라서 테스트 결과는 판단 근거 중 하나로 활용하고, 유일한 사용 가능성 기준으로 삼지 마세요.

지연 시간 수치를 비교할 때는 측정 조건이 같아야 합니다. 같은 서버라도 네트워크, 측정 시간, 테스트 대상이 다르면 결과를 직접 순위로 비교할 수 없습니다. 수치가 낮더라도 지속 전송 성능, 패킷 손실, 장시간 연결 안정성이 더 좋다는 뜻은 아닙니다. 평소 사용할 연결을 선택할 때는 실제 이용 환경을 고려하고, 한 번 측정한 최솟값보다 반복해서 확인되는 성공과 실패에 주목하세요.

테스트 대상, 시간 제한, 동시 실행 설정 기준

Settings에 테스트 대상이나 시간 제한 설정이 있다면 기본값은 현재 화면에 표시된 값을 기준으로 확인하세요. 문제 해결이 필요하지 않다면 정상 작동이 확인된 설정을 유지합니다. 대상을 변경해야 한다면 접근 권한이 있고 동작이 안정적이며 응답의 의미를 확인할 수 있는 대상을 선택하세요. 보기 좋은 결과를 얻기 위해 특정 네트워크에서만 접속되거나 자주 리디렉션되거나 로그인이 필요한 주소를 선택해 모든 요청의 대표로 삼지 마세요.

시간 제한을 너무 짧게 설정하면 정상적으로 작동하지만 응답이 느린 연결을 실패로 처리할 수 있고, 너무 길게 설정하면 문제 발견이 늦어집니다. 테스트 목적에 맞춰 설정해야 하며 무조건 짧을수록 좋은 것은 아닙니다. 현재 화면에 해당 항목이 없다면 다른 자료에 같은 이름의 필드가 있다고 해서 찾을 필요는 없습니다. 설정을 변경한 뒤에는 먼저 정상 작동이 확인된 연결로 테스트 기능 자체를 검증한 다음 문제가 의심되는 연결을 확인하세요. 잘못된 측정 설정이 모든 결과에 영향을 주는 일을 막을 수 있습니다.

한 번에 많은 테스트를 실행하면 순간적인 연결과 네트워크 부담이 커지고 결과끼리 영향을 줄 수 있습니다. 기존 구독이 여러 개라면 먼저 그룹별로 범위를 좁힌 뒤 비교할 항목만 테스트하세요. 구독 업데이트, 네트워크 전환, 연결 재설정을 동시에 진행하면서 연속 측정하지 마세요. 입력 조건이 한꺼번에 바뀌면 결과 차이가 테스트 대상 때문인지 기기 상태 때문인지 구분하기 어렵습니다.

반복 가능한 테스트 기록 방법

  1. 네트워크와 Global Routing 방식을 고정하고 현재 서버 메모와 테스트 방식을 기록하세요. 인증 정보는 기록하지 마세요.
  2. 먼저 정상 작동이 확인된 대상에 접속해 기기의 기본 네트워크와 테스트 대상이 사용할 수 있는 상태인지 확인하세요.
  3. 같은 항목을 간격을 두고 반복 테스트해 한 번의 최저 수치가 아니라 안정적으로 성공하는지 확인하세요.
  4. 그다음 실제 앱에서 새 요청을 보내고 Log의 정책 및 연결 결과를 확인한 뒤 임시 테스트 설정을 복원하세요.

모든 테스트에서 시간 초과가 발생하면 구독 전체를 바로 삭제하지 말고 테스트 대상과 기본 네트워크부터 확인하세요. 항목 하나만 실패한다면 해당 항목의 서버 정보와 최근 업데이트가 완료되었는지 점검합니다. 테스트는 성공했지만 실제 이용에 실패한다면 실제 요청이 같은 서버를 사용하는지, Config에서 대상이 다른 정책으로 분기되는지 확인하세요. 이렇게 계층별로 점검하면 불필요한 전체 설정 변경을 줄일 수 있습니다.

테스트가 Wi-Fi 또는 셀룰러 네트워크 중 한 곳에서만 실패한다면 두 네트워크의 결과를 각각 기록하세요. 네트워크를 바꾸기 전에 나온 수치를 새 네트워크의 결과로 간주하지 말고 이전 순위를 근거로 현재 가장 적합한 항목을 단정하지도 마세요. 필요하면 기본 네트워크가 안정될 때까지 기다렸다가 연결을 다시 설정하고 테스트하세요. 환경이 자주 바뀐다면 고정 순위를 유지하기보다 실패 패턴을 분석하는 것이 좋습니다.

빈칸, 미측정, 실패 표시가 보이면 화면에 표시된 의미 그대로 기록하고 임의로 지연 시간 수치로 바꾸지 마세요. ‘측정을 완료하지 못함’과 ‘측정 결과가 느림’을 구분하면 순위 해석 오류를 줄일 수 있습니다. 결과가 계속 서로 모순된다면 일괄 테스트를 잠시 중단하고 고정된 대상 하나와 연결 항목 하나로 범위를 좁히세요. 다음 장의 로그 확인 방법을 활용해 최소 재현 환경을 만들어 보세요.

06 / 기록 확인과 정보 보호

Log 확인 및 문제 해결

새 요청 하나로 시간 흐름을 확인하세요

Log(로그)는 기록을 많이 쌓는 것보다 조작과 결과를 연결하는 데 유용합니다. 문제 해결을 시작하기 전에 현재 네트워크, Global Routing 방식, 활성 Config, 선택한 서버를 기록한 다음 대상에 새 요청을 하나 보내세요. 이후 시간 순서대로 관련 기록을 찾아 DNS 확인, 규칙 매칭, 연결 설정, 대상 응답을 구분합니다. 다른 앱에서 발생한 요청을 테스트 중인 요청으로 착각하지 않도록 주의하세요.

현재 화면에서 로그 사용 여부나 상세 수준을 설정할 수 있다면 평소에는 확인에 필요한 수준으로 유지하고, 문제를 재현할 때만 필요한 상세 정보를 임시로 늘리세요. 기본 상태는 기기에 실제로 표시되는 내용을 기준으로 확인하며 모든 설치 환경에서 같은 내용이 계속 기록된다고 가정하지 마세요. 상세 로그는 저장 및 처리 부담을 늘리고 접속 관련 정보를 더 많이 포함할 수 있으므로 문제 해결이 끝나면 평소 필요한 상태로 되돌리세요.

새 로그가 없다고 해서 클라이언트가 작동하지 않는 것은 아닙니다. 대상 앱이 기존 연결을 재사용하거나 로컬 캐시를 읽고 있을 수도 있고, 해당 트래픽이 현재 기록 범위에 포함되지 않을 수도 있습니다. 먼저 테스트에서 새 요청을 실제로 보냈는지 확인한 다음 연결 상태와 로그 설정을 살펴보세요. 여러 스위치를 반복해서 바꾸면 관찰 조건만 달라집니다. 고정된 대상, 명확한 조작 한 번, 짧은 기록 구간으로 확인하면 원인과 결과를 파악하기 쉽습니다.

실패 단계에 따라 기록 읽기

확인 단계주요 확인 사항다음 단계
DNS 확인도메인에서 사용할 수 있는 주소를 얻었는지서버 도메인과 대상 도메인을 구분하세요.
규칙요청에 어떤 규칙과 정책이 적용되었는지활성 구성과 앞선 규칙을 확인하세요.
연결원격 연결이 설정되었는지서버, 인증 정보, 네트워크를 확인하세요.
대상 응답연결 후 대상에서 예상한 응답을 받았는지실제 서비스와 응답의 의미를 확인하세요.

기록에 요청이 DIRECT로 처리되었다고 나오는데 PROXY를 예상했다면 서버를 바꾸기보다 규칙과 활성 구성을 먼저 확인하세요. 예상한 정책으로 처리되었지만 원격 연결이 실패했다면 서버 정보를 점검합니다. 연결은 되었지만 대상에서 서비스 오류를 반환했다면 응답 내용을 계속 살펴보세요. 로그에 표시된 ‘성공’은 보통 한 단계를 가리키며 전체 서비스 절차가 완료되었다는 뜻은 아닙니다.

규칙 매칭에서는 실제로 적용된 첫 번째 조건에 주의하세요. 뒤에 적절해 보이는 규칙이 있어도 요청이 그 규칙까지 도달한다는 뜻은 아닙니다. 대상이 서로 다른 하위 도메인에서 리소스를 요청하거나 새 연결 경로를 사용하는지도 살펴보세요. 페이지 본문은 열리지만 일부 리소스가 실패한다면 각 리소스의 기록을 따로 확인하세요. 페이지의 모든 요청을 하나의 도메인으로 취급하지 마세요.

연결 오류도 구체적으로 구분해 기록하세요. 시간 초과, 인증 불일치, 인증서 검증 오류는 서로 다른 문제를 가리키므로 모두 ‘속도가 느림’으로 묶지 마세요. 기기 시간, 서버 주소, 포트, 프로토콜 매개변수를 확인한 뒤 필요한 경우 이용 중인 서비스 제공업체에 서버 정보 상태를 문의하세요. 문제를 설명할 때는 오류 유형과 발생 조건을 알리고 인증 정보나 구독 전체 주소는 제공하지 않아도 됩니다.

필요한 증거만 보관하고 불필요한 정보 노출을 피하세요

로그에는 접속 도메인, 대상 주소, 서버 메모 및 기타 맥락 정보가 포함될 수 있습니다. 공유하기 전에 내용을 확인하고 문제와 관련된 짧은 부분만 남긴 뒤 구독 주소의 민감한 부분, 인증 필드, 개인 네트워크 식별 정보를 삭제하세요. 스크린샷도 상태 표시줄, 목록 메모, 주변 기록을 확인해야 합니다. 한 필드를 가렸다고 화면 전체를 공개해도 되는 것은 아니므로 보이는 정보를 모두 다시 살펴보세요.

간결하게 설명하려면 어떤 네트워크에서 어떤 라우팅 방식으로 어떤 대상에 어떤 조작을 했는지, 예상 결과와 실제 결과가 무엇인지, 원래 설정으로 복원했을 때 달라졌는지를 적으세요. 정리된 오류 기록과 함께 제공하면 장시간 로그 전체를 내보내는 것보다 재현하기 쉽습니다. 민감한 필드를 판단하기 어렵다면 원본 파일을 보내는 대신 오류 유형을 글로 요약하세요.

문제 해결이 끝나면 효과가 확인된 설정 변경 내용과 복원 절차를 기록한 뒤 필요에 따라 더 이상 사용하지 않는 로컬 기록을 정리하세요. 로그를 삭제해도 오류를 일으킨 설정은 수정되지 않으며 구독 삭제와도 다릅니다. 같은 문제가 다시 발생하면 모든 설정을 처음부터 시도하기보다 이전 네트워크 조건과 실패 단계를 먼저 비교하세요.

07 / 빠른 조작 및 기기 간 데이터

Widget과 iCloud 동기화의 적용 범위

Widget은 바로가기이며 독립적인 연결 구성이 아닙니다

Widget(위젯)은 시스템에서 허용하는 빠른 확인 또는 조작 기능을 제공합니다. 구체적인 항목은 해당 기기에서 추가할 수 있는 위젯을 기준으로 확인하세요. 위젯은 대체로 앱에서 이미 설정한 내용에 의존하며 최초 가져오기, VPN 권한 허용, 수동 연결 확인을 대신하지 않습니다. 위젯을 추가하기 전에 Shadowrocket에서 현재 서버와 구성을 사용할 수 있는지 확인하고, 위젯에 표시되는 상태와 앱 상태가 일치하는지도 살펴보세요.

시스템의 새로고침 일정에 따라 위젯 표시가 늦어질 수 있으므로 화면이 아직 갱신되지 않았다고 해서 현재 연결 상태를 판단하지 마세요. 조작이 적용되었는지 확인하려면 앱을 열어 연결 상태를 확인하고 대상에 새 요청을 보내세요. 위젯을 조작한 뒤 예상한 변화가 없다면 DNS나 서버 매개변수를 바로 바꾸기보다 앱에서 권한이 필요한지, 연결 정보가 유효한지, 시스템에서 해당 동작을 허용하는지 먼저 확인하세요.

위젯은 익숙한 자주 쓰는 조작에 활용하고 상태를 이해하기 전에 연속으로 누르지 않는 것이 좋습니다. 빠르게 반복 조작하면 연결 설정 또는 해제 중인 상태가 되어 화면과 실제 상태가 일시적으로 다를 수 있습니다. 한 번의 조작이 완료될 때까지 기다렸다가 다음 조작을 하세요. 자동 재연결을 중지해야 한다면 On Demand 장의 절차를 따르세요. 위젯에서 한 번 연결을 끊는 것만으로는 충분하지 않습니다.

iCloud 동기화는 기기 전체를 복제하는 기능이 아닙니다

Settings에 iCloud Sync(iCloud 동기화) 또는 관련 메뉴가 있다면 먼저 시스템 요구 사항에 따라 로그인되어 있고 앱의 iCloud 사용이 허용되어 있는지 확인하세요. 동기화할 수 있는 데이터, 수동 동기화 필요 여부, 별도의 가져오기 및 내보내기 메뉴는 현재 화면의 안내를 기준으로 확인합니다. 모든 서버, 구성, 스위치, 로그, 시스템 권한이 자동으로 동기화된다고 가정하지 마세요. 한 번 동기화에 성공했다고 장기 백업이 보장되는 것도 아닙니다.

App Store 구매 계정과 기기에서 사용하는 iCloud 계정은 용도가 다릅니다. 구매 복원은 앱을 사용할 자격을 복구하고, iCloud 동기화는 지원되는 데이터를 전달합니다. 서로를 대신할 수 없습니다. 새 기기에서 앱을 다시 다운로드할 수 있어도 이전 기기의 모든 연결 정보가 옮겨졌다는 뜻은 아닙니다. 반대로 동기화 데이터가 보이더라도 현재 기기에 필요한 VPN 권한이 설정된 것은 아닙니다.

활성화 전에 복원할 수 있는 자료를 보관하고 기기에만 저장된 내용이 무엇인지 확인하세요. 현재 화면에서 내보내기를 지원한다면 내보내기 범위와 파일 내용을 확인하고 인증 정보가 들어 있을 수 있는 파일을 안전하게 보관하세요. 백업은 직접 관리하고 복원할 수 있는 위치에 저장하고 전체 자료를 공개 문서에 올리지 마세요. 동기화 기본 상태도 다른 기기에서 추측하지 말고 현재 기기에서 확인해야 합니다.

두 기기의 상태가 다를 때 처리 순서

  1. 두 기기의 활성 Config, 서버 메모, 가장 최근에 수동으로 변경한 항목을 각각 기록하세요. 같은 데이터를 동시에 편집하지 마세요.
  2. 시스템의 iCloud 사용 조건과 앱에서 실제로 지원하는 동기화 범위를 확인하고 두 기기에서 같은 종류의 자료를 확인 중인지 점검하세요.
  3. 유지할 자료를 결정한 뒤 복원할 수 있는 상태인지 확인하고 화면에서 제공하는 동기화 또는 가져오기를 실행하세요.
  4. 각 기기에서 목록, 구성 선택 상태, 실제 연결을 하나씩 확인하세요. 파일 이름이 같다는 이유만으로 내용까지 같은 것으로 간주하지 마세요.

양쪽에서 같은 내용을 수정했다면 나중에 앱을 연 기기가 다른 쪽 내용을 반드시 덮어쓴다고 가정하지 말고 자동으로 올바르게 합쳐질 때까지 조작을 반복하지도 마세요. 먼저 두 쪽의 변경 내용을 저장한 다음 앱에 실제로 표시되는 충돌 처리 방식에 따라 유지할 내용을 선택하세요. 화면에 병합 방식이 안내되지 않는다면 한 기기에서만 수정하고 나머지 기기에서 결과를 확인하는 편이 동시에 편집하는 것보다 추적하기 쉽습니다.

iPhone과 iPad에서 같은 구성이 다르게 배치되어 보여도 데이터가 다른 것은 아닙니다. 목록 너비나 버튼 위치가 아니라 구체적인 필드와 활성 상태를 비교하세요. iPad 구매 복원 및 화면 안내는 iPad 구매 및 화면 안내를 참고하세요. 공유 구매, 기기 호환성, 시스템 요구 사항은 App Store 페이지의 표시 내용을 기준으로 확인하며 동기화 결과만 보고 지원 범위를 추측하지 마세요.

동기화 후 이전 서버나 중복 항목이 보이면 구독 업데이트, 수동 가져오기, 동기화 중 어디에서 가져온 항목인지 먼저 확인한 뒤 정리 대상을 결정하세요. 삭제하기 전에 필요한 메모와 로컬 변경 내용을 보관해 현재 사용하는 데이터 출처까지 함께 지우지 않도록 합니다. 위젯은 조작 진입점이고 동기화는 지원되는 데이터를 전달하는 기능일 뿐입니다. 최종적으로는 이 기기의 활성 구성과 실제 접속 결과로 설정이 올바른지 확인해야 합니다.

08 / 구성 관리 및 복구 확인

Config, Subscribe, 설정 복구

서버 정보 업데이트가 모든 설정 업데이트를 뜻하지는 않습니다

Subscribe(구독)는 사용자가 보유한 서버 정보를 관리하는 데 주로 사용되고, Config(구성)는 규칙 및 관련 설정을 담으며, Settings는 클라이언트에서 제공하는 동작 옵션을 관리합니다. 구독을 업데이트해 새 항목이 보이더라도 현재 활성 규칙이 변경되었다는 뜻은 아닙니다. 구성을 편집했더라도 실제로 선택되어 사용 중이라는 뜻은 아닙니다. 변경 후에는 목록 내용, 활성 선택, 실제 요청이 서로 일치하는지 확인하세요.

구독이 여러 개라면 먼저 알아볼 수 있는 메모로 출처를 구분한 뒤 순서와 중복 항목을 정리하세요. 이름이 같아도 매개변수가 다를 수 있고 매개변수가 비슷하더라도 둘 다 유지해야 하는 것은 아닙니다. 표시 이름만 보고 여러 항목을 한꺼번에 삭제하지 말고, 구분을 위해 구독 전체 주소를 메모에 넣지도 마세요. 그룹화, 중복 항목, 삭제 순서는 여러 구독 링크 관리 안내에서 확인할 수 있습니다.

기존 구독 항목의 매개변수를 직접 바꾸기 전에 다음 업데이트에서 변경 내용이 덮어써지는지 확인하세요. 별도 조정을 유지해야 한다면 먼저 차이를 기록하고 현재 화면에서 지원하는 방식으로 독립적이고 알아보기 쉬운 항목을 만드세요. 업데이트 후 연결 상태가 달라졌다면 Settings 전체를 바로 초기화하지 말고 서버 필드와 선택된 항목부터 비교하세요. 클라이언트 옵션이 원인이라는 근거가 있을 때 해당 장의 설정을 조정합니다.

규칙 예시와 매칭 순서

아래는 Shadowrocket .conf의 규칙 일부로 키워드, 대상, 정책의 관계를 보여줍니다. 완전한 구성이나 서버 정보는 포함하지 않습니다. 자신의 구성에 적용하기 전에 해당 정책이 예상대로 작동하는지 확인하세요. 예시 호스트는 example.com만 사용하며 실제 서비스에 같은 규칙을 일괄 적용하라는 뜻은 아닙니다.

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

DOMAIN-SUFFIX는 도메인 접미사를 기준으로 일치시키며 특정 도메인과 하위 도메인을 지정할 때 적합합니다. GEOIP는 주소의 지역 데이터에 따라 일치 여부를 판단하므로 주소와 데이터 내용에 영향을 받습니다. FINAL은 앞선 규칙과 일치하지 않은 요청을 마지막으로 처리합니다. 규칙은 보통 순서대로 확인하므로 더 구체적인 조건은 영향을 줄 수 있는 포괄적인 규칙보다 앞에 두고, 마무리 규칙은 마지막에 배치하세요.

키워드매칭 기준주의 사항
DOMAIN전체 도메인 이름모든 하위 도메인과 일치하는 것은 아닙니다.
DOMAIN-SUFFIX도메인 접미사지나치게 넓은 범위를 포함하지 않는지 확인하세요.
IP-CIDR / IP-CIDR6해당 주소 체계의 네트워크 범위도메인 요청에는 DNS 확인도 관련될 수 있습니다.
FINAL앞선 규칙과 일치하지 않은 요청최종 정책이 예상과 일치하는지 확인하세요.

올바른 규칙이 텍스트에 있다는 이유만으로 적용되었다고 단정하지 마세요. 현재 Global Routing이 Config인지, 활성 파일에 해당 규칙이 포함되어 있는지 확인한 다음 Log에서 새 요청의 매칭 결과를 살펴보세요. Proxy 또는 Direct 방식으로 설정되어 있다면 먼저 테스트에 맞는 조건으로 복원합니다. 테스트가 끝나면 실험용으로 추가한 항목도 제거해 임시 규칙이 다른 요청에 계속 영향을 주지 않도록 하세요.

전체 초기화보다 최소한의 복구부터 시작하세요

문제가 생기면 마지막으로 확인된 변경 사항부터 떠올려 보세요. DNS를 바꾼 뒤 이상이 생겼다면 원래 DNS 설정으로 복원하고 연결을 다시 설정합니다. 규칙을 편집한 뒤 발생했다면 저장해 둔 구성 복사본으로 돌아가세요. 구독 업데이트 뒤 발생했다면 업데이트 내용과 현재 서버를 확인합니다. 이렇게 한 계층만 되돌리면 결과를 확인하기 쉽고 정상 작동 중인 다른 설정을 유지할 수 있어 문제와 데이터 손실이 동시에 발생하는 일을 막을 수 있습니다.

변경 출처를 확인하기 어렵다면 최소 확인 절차를 설정하세요. 기본 네트워크 접속, 서버 정보, 수동 연결, 지정 대상 접속을 확인한 뒤 Config, On Demand, Widget, 동기화를 차례로 다시 활성화합니다. 한 항목을 복원할 때마다 확인하고 한 번에 모든 데이터를 다시 가져와 모든 기능을 켜지 마세요. 이 절차는 의존 관계를 파악하기 위한 것이며 평소에도 간소화된 구성만 사용하라는 뜻은 아닙니다.

복구가 끝나면 평소 사용하는 라우팅 방식, 자동 연결 조건, 로그 상세 수준, 동기화 상태를 마지막으로 확인하고 최종 변경 사항을 기록하세요. 전체 절차를 처음부터 다시 진행하려면 입문 가이드로 돌아가세요. 증상별 원인을 찾으려면 자주 묻는 질문을 참고하세요. 이 매뉴얼의 목표는 모두에게 같은 설정을 적용하는 것이 아니라 각 설정의 목적과 검증 방법, 되돌리는 절차를 명확히 이해하는 것입니다.