공식 매뉴얼 · 프로토콜 기술 가이드
Shadowrocket
프로토콜 설정과 선택 기준
먼저 서버가 실제로 지원하는 프로토콜을 확인한 다음 전송 방식, 인증, 인증서를 점검하세요. 프로토콜 이름만으로 속도나 배터리 사용량을 판단할 수는 없습니다.
- Shadowsocks
- VMess / VLESS
- Trojan
- HTTP / SOCKS5
- WireGuard
- Hysteria2
이 페이지는 이미 본인의 구독이나 서버 정보를 보유한 사용자를 위한 참고 매뉴얼입니다. 처음 설정을 추가하고 VPN 구성을 허용한 뒤 연결하려면 먼저 사용 안내에 따라 기본 절차를 진행하세요. 설정 항목을 이해하거나 전송 방식의 차이를 비교하고 프로토콜 문제를 진단할 때는 해당 항목을 참고하면 됩니다. 이 사이트는 노드나 구독, 연결 서비스를 제공하거나 판매 또는 추천하지 않습니다.
Shadowrocket은 Apple 플랫폼 전용 상용 앱이며, 주 사용 기기는 iPhone과 iPad입니다. 유일한 다운로드 경로는 App Store입니다. 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요. 앱은 한 번 구매하면 이용할 수 있으며, 회선 요금제가 아닙니다. 앱을 구매해도 서버 주소나 인증 정보가 생성되지는 않습니다. 정식 앱 페이지와 개발자, 앱 ID를 확인하는 방법은 App Store 다운로드 안내에서 확인하세요.
- 선택 전제서버가 이미 지원하는 프로토콜
- 설정값 출처사용자가 보유한 구성 정보
- 테스트 방법한 번에 한 항목씩 변경
01 / 계층별 이해
프로토콜, 전송 방식, 규칙의 역할
먼저 네 가지 항목을 구분하세요
Add Server에서 프로토콜을 선택하는 것은 클라이언트와 서버가 인증 및 데이터를 주고받는 방식을 정하는 일입니다. 주소와 포트를 입력하면 연결 대상이 정해집니다. TCP, WebSocket 등 전송 방식을 선택하면 데이터를 어떤 외부 계층으로 전달할지 정합니다. TLS는 해당 연결에서 서버의 신원을 확인하고 데이터를 보호하는 방식을 결정합니다. 각 설정은 서로 관련이 있지만 같은 기능은 아닙니다. Type만 다른 이름으로 바꾼다고 서버가 그 프로토콜을 지원하게 되는 것은 아닙니다.
규칙 라우팅은 별도의 판단 과정입니다. Global Routing에서 Config를 사용하면 클라이언트는 현재 구성에 따라 요청에 적용할 정책을 판단합니다. 요청이 프록시로 전달된 뒤에야 선택한 서버의 프로토콜이 통신에 사용됩니다. 규칙이 올바르다고 서버 인증까지 올바른 것은 아니며, 서버 연결에 성공했다고 모든 도메인에 예상한 정책이 적용된 것도 아닙니다. 문제를 진단할 때는 ‘어떤 경로가 선택됐는지’와 ‘그 경로에서 연결이 완료되는지’를 따로 기록해 서로 무관한 설정을 반복해서 바꾸지 않도록 하세요.
서버 주소, 신원 정보, 대상 도메인을 혼동하지 마세요
서버 주소는 클라이언트가 처음 연결을 시도하는 대상이며 도메인이나 IP 주소를 사용할 수 있습니다. TLS의 Server Name은 일반적으로 서버 신원 확인과 핸드셰이크의 이름 표시에 사용됩니다. WebSocket의 Host와 Path는 해당 전송 방식의 요청 정보입니다. 설정에 따라 이 값들이 같을 수도, 다를 수도 있습니다. 모두 도메인처럼 입력할 수 있다는 이유로 같은 값으로 바꾸지 말고, 원본 설정과 하나씩 대조해 서버가 요구하는 대소문자와 경로 구조를 유지하세요.
사용자가 최종적으로 접속하는 웹사이트는 또 다른 대상입니다. 프록시 서버가 해당 사이트에 연결한다고 해서 사이트의 이름을 클라이언트의 Server Name에 입력해야 하는 것은 아닙니다. 서버에 연결할 때의 도메인 조회와 프록시 연결 후 웹사이트에 접속할 때의 도메인 조회는 서로 다른 경로에서 이뤄질 수 있습니다. 웹페이지는 열리지 않지만 Connectivity Test에 결과가 표시된다면, 모든 DNS 조회와 요청이 성공했다고 단정하지 말고 테스트가 어느 구간을 확인하는지 먼저 살펴보세요.
연결 모드에 따라 점검 범위 정하기
Global Routing의 Config, Proxy, Direct 모드를 사용하면 각각 규칙 라우팅, 프록시 경로, 직접 연결의 차이를 점검할 수 있습니다. 여기서 ‘프록시’는 모든 시스템 트래픽이 반드시 같은 경로를 거친다는 뜻이 아닙니다. 로컬 네트워크, 제외 항목, 앱 동작은 실제 구성에 따라 별도로 확인해야 합니다. 모드를 바꾸는 것은 진단 방법일 뿐, 잘못된 암호나 인증서, 포트를 수정해 주지는 않습니다. 점검이 끝나면 원래 필요한 모드로 되돌려 임시 테스트 설정이 계속 적용되지 않도록 하세요.
| 계층 | 결정하는 내용 | 주요 점검 항목 |
|---|---|---|
| 규칙 | 요청에 적용할 정책 | Config, 규칙 순서, 최종 정책 |
| 프로토콜 | 인증 및 데이터 교환 형식 | Type, 암호, UUID, 키 |
| 전송 | 프로토콜 데이터 전달 방식 | TCP、UDP、Host、Path |
| TLS | 외부 계층 암호화 및 신원 확인 | Server Name, 인증서, 기기 시간 |
아래 예시는 .conf의 Rule 섹션에 있는 규칙으로, 라우팅 순서를 보여 주기 위한 것입니다. 서버 설정이 아니며 구독을 대신하지 않습니다. 첫 번째 규칙은 지정된 도메인과 하위 도메인에, 두 번째 규칙은 해당 주소 범위에 적용되며 마지막 규칙은 앞선 규칙에 일치하지 않은 요청을 처리합니다. 예시의 PROXY는 실제로 사용할 수 있는 프록시 정책에 연결해야 합니다. 규칙을 복사하기 전에 현재 구성에서 사용하는 정책 이름과 용도를 확인하세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
규칙은 위에서 아래로 확인되며, 일치하는 규칙을 찾으면 처리가 끝납니다. 범위가 넓은 규칙을 앞에 두면 뒤에 있는 정밀한 규칙이 적용되지 않을 수 있습니다. 프로토콜 문제를 진단할 때는 규칙 순서도 함께 바꾸지 않는 편이 좋습니다. 경로와 전송 방식이 동시에 달라지면 접속 성공이나 실패의 원인을 구분하기 어렵습니다. 자세한 키워드 범위는 규칙 키워드와 매칭 순서에서 확인할 수 있습니다. 처음 연결할 때는 사용 안내의 절차를 따르세요.
먼저 기존 설정을 기록한 다음 한 번에 하나의 변수만 바꾸세요. 이름이 같아도 설정 항목을 서로 바꿔 쓸 수 있는 것은 아니며, 테스트 결과가 있다고 전체 서비스 경로가 검증된 것도 아닙니다.
02 / 대칭키 암호화 프록시
Shadowsocks: 암호화 방식과 암호는 한 쌍
세션 계층을 간결하게 설계
Shadowsocks는 프록시 전달과 대칭키 암호화를 결합해 클라이언트와 서버가 약속된 방식과 키 정보로 데이터를 주고받도록 설계됐습니다. 표준 TLS 세션을 먼저 설정한 뒤 프록시 인증을 전달하는 방식과는 다릅니다. 기본 설정은 보통 주소, 포트, 암호화 방식, 암호를 중심으로 구성됩니다. 입력 항목이 적다고 해서 임의로 값을 넣어도 되는 것은 아닙니다. 각 항목이 함께 서버의 데이터 인식 여부를 결정하므로 하나라도 일치하지 않으면 연결 초기에 통신이 끊길 수 있습니다.
이러한 설계를 이해하면 사용 범위도 파악하기 쉽습니다. Shadowsocks는 주로 프록시 요청을 처리하며, 완전한 사설 네트워크를 자동으로 구성하지는 않습니다. 이름에 암호화가 들어간다고 웹사이트 인증서 확인까지 제공하는 것도 아닙니다. 웹사이트가 HTTPS를 사용하면 사이트와의 애플리케이션 계층 보안은 해당 연결에서 처리됩니다. 클라이언트와 프록시 서버 사이의 연결은 Shadowsocks의 구체적인 방식으로 보호됩니다. 계층별 보호 범위를 구분해야 프로토콜을 선택했다는 이유만으로 인증서나 대상 사이트의 경고를 무시하는 일을 피할 수 있습니다.
Method는 단독으로 조절하는 속도 설정이 아닙니다
기존 구성을 가져온 뒤에는 먼저 암호화 방식을 확인하세요. 방식마다 인증, 키 파생, 데이터 캡슐화가 다르므로 이름이 더 최신처럼 보인다는 이유만으로 클라이언트에서 임의로 바꿀 수는 없습니다. AEAD 방식은 기밀성과 무결성을 함께 처리하지만 프로토콜 세대에 따라 키 형식과 핸드셰이크 규칙이 다를 수 있습니다. 서버가 지정한 방식과 동일한 방식을 사용해야 합니다. 사용할 수 있는 항목은 현재 앱에 표시되는 유형과 기존 서버 정보를 기준으로 확인하세요.
암호 필드에 항상 임의의 짧은 텍스트를 입력할 수 있는 것은 아닙니다. 일부 방식은 정해진 형식의 인코딩 키를 요구하고, 다른 방식은 암호에서 키를 파생합니다. 끝의 등호를 지우거나 공백을 추가하거나 인코딩된 텍스트를 디코딩한 뒤 다시 붙여 넣지 마세요. 직접 입력할 때는 앞뒤 공백, 전각 문장 부호, 줄바꿈을 확인하세요. QR 코드나 공유 링크에서 가져온 경우에는 목록의 메모가 아니라 파싱된 실제 필드를 확인해야 합니다. 메모 이름은 자유롭게 바꿀 수 있으므로 인증 정보의 유효성을 판단하는 근거가 되지 않습니다.
TCP 연결 성공이 UDP 경로의 성공을 뜻하지는 않습니다
웹 요청과 실시간 앱은 서로 다른 전송 방식을 사용할 수 있습니다. 서버의 TCP 포트에 연결할 수 있어도 같은 포트에서 UDP 전달이 활성화됐다는 뜻은 아니며, 현재 네트워크에서 해당 데이터의 왕복이 허용된다는 뜻도 아닙니다. 웹페이지는 열리지만 음성 통화나 실시간 기능에 문제가 있다면 서버가 필요한 UDP 전달을 지원하는지 확인한 다음 클라이언트 설정과 네트워크 경로를 살펴보세요. 이 현상을 바로 암호 오류로 판단하지 마세요. 암호가 완전히 틀리면 기본 프록시 요청도 완료되지 않는 경우가 많습니다.
기존 설정에 추가 전송 또는 난독화 매개변수가 포함될 수도 있습니다. 이 항목들이 모든 Shadowsocks 서버에 필요한 것은 아니며 다른 설정을 보고 그대로 추가해서는 안 됩니다. 구독에서 가져온 설정은 작동하지만 직접 다시 만들면 실패하는 경우 두 설정의 방식, 암호, 주소, 포트, 추가 항목을 대조하세요. Global Routing 모드를 계속 바꾸는 것은 해결책이 아닙니다. 해당 설정을 사용하려면 서버에서 관련 기능을 활성화해야 합니다. 클라이언트 스위치만으로 서버에 기능을 추가할 수는 없습니다.
iPhone에서 성능 차이를 이해하는 방법
Shadowsocks의 실제 처리 비용은 사용 알고리즘, 기기 하드웨어, 데이터량에 따라 달라집니다. 외부 핸드셰이크 계층이 적으면 짧은 연결에 유리할 수 있지만 실제 웹페이지에는 DNS 조회, 사이트 응답, 여러 리소스 요청이 포함됩니다. 프로토콜 계층 수만으로 페이지 로딩 속도를 판단할 수는 없습니다. 장시간 전송 시 처리량은 서버 대역폭, 무선 신호, 대상 사이트의 영향을 받을 수 있습니다. 병목이 암호화 연산에 있지 않다면 다른 방식으로 바꿔도 서비스 속도가 자동으로 빨라지지는 않습니다.
배터리 사용량을 평가할 때는 연결 방식과 무선 환경도 함께 고려해야 합니다. 신호가 약하면 재전송과 무선 모듈의 지속 작동이 알고리즘 차이보다 더 큰 영향을 줄 수 있습니다. 잦은 테스트와 구독 새로고침도 활동량을 늘립니다. 비교할 때는 같은 네트워크와 비슷한 작업, 화면 상태를 유지하고 연결을 유휴 상태로 유지하는 경우와 계속 다운로드하는 경우를 구분하세요. 시스템 배터리 통계에서 앱이 차지한 비율을 프로토콜의 배터리 소모율로 바로 해석할 수는 없습니다. 통계 시간과 백그라운드 작업이 서로 다를 수 있기 때문입니다.
서버에서 해당 방식을 명시적으로 제공하고, 설정 항목이 간결하며 실제 작업에서 정상 동작한다면 Shadowsocks를 계속 사용할 수 있습니다. 문제가 생기면 먼저 설정값이 서로 일치하는지 확인한 다음 DNS와 전송 방식을 점검하세요. 공유 링크의 접두사, 인코딩, 암호 부분을 확인하기 어렵다면 공유 링크와 구독 형식 안내에서 자료 유형을 확인할 수 있습니다. 공유 링크 전체를 암호 필드에 넣거나 구독 주소를 서버 주소로 사용하지 마세요.
03 / 인증과 외부 전송
VMess와 VLESS: 비슷한 항목, 다른 규칙
UUID가 같아도 프로토콜이 같은 것은 아닙니다
VMess는 사용자 인증, 데이터 캡슐화, 자체 보안 처리를 결합한 프로토콜이며 일반적으로 UUID로 사용자를 식별합니다. VLESS는 프로토콜 계층을 더 가볍게 설계했으며, 프로토콜 자체로는 VMess와 같은 페이로드 암호화 기능을 제공하지 않습니다. 보통 외부의 보안 전송으로 연결을 보호합니다. 두 프로토콜의 설계 목적은 다릅니다. UUID만 그대로 두고 Type을 VMess에서 VLESS로 바꾸면 서버가 계속 인식할 것이라고 기대해서는 안 됩니다.
두 프로토콜은 다른 전송 방식과 조합해 사용하는 경우가 많아 앱에 설정 항목이 여러 개 표시될 수 있습니다. 프로토콜 유형은 인증과 데이터 형식을, 외부 전송은 데이터 전달 방식을, TLS 등의 기능은 연결 보호를 담당합니다. 실제 서버는 조합 중 일부만 지원할 수도 있습니다. 기존 정보에 프로토콜과 전송 방식이 명시돼 있다면 모두 그대로 유지하세요. 주소, 포트, UUID만 있는 경우에는 설정을 복원할 정보가 부족할 수 있으므로 원본 구성에서 나머지 조건을 확인해야 합니다.
먼저 신원을 확인한 뒤 전송 설정을 점검하세요
UUID의 문자와 하이픈 구조를 그대로 유지하고 메모, 구독 그룹 이름, 서버 도메인을 이 항목에 입력하지 마세요. VMess 설정에는 보안 방식이나 이전 버전과의 호환을 위한 항목이 포함될 수도 있습니다. 오래된 설정에 있던 추가 인증 매개변수가 새 설정에도 기본으로 필요한 것은 아닙니다. 이전 안내 이미지와 똑같이 만들려고 임의의 값을 추가하지 말고 현재 서버가 제공한 구성과 앱에서 실제로 선택할 수 있는 항목을 기준으로 확인하세요. 서로 대응하지 않는 항목이 있다면 자료가 같은 프로토콜 유형인지 먼저 확인하세요.
WebSocket 연결에서 Path는 서버가 연결을 받는 경로이며 일반적으로 맨 앞에 슬래시가 있습니다. Host는 요청의 호스트 정보입니다. 경로의 대소문자 구분 여부와 쿼리 문자열 포함 여부는 서버 구성에 따라 달라집니다. 경로를 비우거나 마지막 부분만 남기면 서버가 프록시 전송을 설정하는 대신 일반 웹페이지를 반환할 수 있습니다. 주소를 파싱할 수 있고 포트에도 연결되지만 연결이 곧바로 종료된다면 이 설정이 서버와 일치하는지 먼저 확인하세요.
TLS 스위치, Server Name, 인증서 검증은 각각 따로 확인해야 합니다. 도메인으로 연결하는 경우 서버 주소와 인증서 이름이 같을 수 있지만, 지정된 주소로 연결하면서 Server Name에는 인증서가 포함하는 도메인을 입력해야 할 수도 있습니다. TCP 연결이 됐다고 신원 확인을 건너뛰거나 이름 오류를 감추기 위해 검증을 끄지 마세요. 기존 구성에 추가 보안 기능이나 Flow 조건이 있다면 양쪽에서 해당 조합을 지원하는지 확인해야 합니다. 프로토콜 이름만으로 지원 여부를 추측할 수는 없습니다.
외부 전송 방식에 따라 연결 비용이 달라집니다
WebSocket은 프록시 데이터에 해당 서비스 구조에 맞는 캡슐화 계층을 추가해 기존 HTTP 서비스와 연동할 수 있지만, 핸드셰이크와 프레임 처리 과정도 더해집니다. TCP를 직접 사용하면 계층이 줄어들 수 있지만 서버 진입점과 네트워크 경로에 다른 조건이 필요합니다. 모든 기기와 환경에 공통으로 적용되는 우열은 없습니다. 이론상 계층이 적더라도 자주 실패하는 조합보다 설정이 완전하고 경로가 안정적인 조합이 일상적인 사용에 더 적합한 경우가 많습니다.
패킷 손실이 있는 환경에서 신뢰성 있는 전송 계층이 여러 겹이면 대기와 버퍼링이 늘어날 수 있습니다. 실제 영향은 연결 재사용과 서버 구현에 따라서도 달라집니다. WebSocket을 사용한다고 무조건 느린 것은 아니며 VLESS라고 배터리를 적게 쓴다고 단정할 수도 없습니다. iPhone에서 하나의 연결을 길게 유지하는 경우와 짧은 연결을 반복해서 만드는 경우는 핸드셰이크 비용의 비중이 다릅니다. 네트워크를 바꾼 뒤 연결이 얼마나 잘 복구되는지도 무선 모듈의 작동 시간에 영향을 줍니다. 이름으로 순위를 매기지 말고 같은 작업을 반복해 결과를 비교하세요.
문제가 발생한 단계를 구분하세요
모든 작업이 실패하면 현재 선택한 SERVER 항목이 편집 중인 항목과 같은지 확인한 다음 프로토콜, 포트, UUID를 점검하세요. 일부 사이트만 사용할 수 없다면 규칙 적용, DNS 조회, 대상 사이트를 따로 확인해야 합니다. 네트워크를 바꾼 뒤에만 문제가 생긴다면 먼저 연결을 중지했다가 다시 설정해 기존 세션 복구 문제인지 확인하세요. 곧바로 신원 정보를 바꾸지 마세요. 같은 설정이 이전에 정상 작동했다는 점도 문제 진단에 중요한 근거입니다.
VLESS의 가벼운 프로토콜 계층이 전체 연결에 비용이 들지 않는다는 뜻은 아닙니다. TLS, 전송 방식, 재연결, 실제 요청이 모두 속도와 배터리 사용량에 영향을 줍니다.
수동 설정이 여러 항목을 계속 시험 입력하는 과정이 되어서는 안 됩니다. 원본에서 완전한 설정 하나를 가져와 작동하는 기준으로 보존한 다음 각 항목이 앱 화면에 어떻게 반영되는지 확인하는 편이 좋습니다. 구독 업데이트 후 설정 항목이 바뀌었다면 이전 설정과 이후 설정을 비교하세요. 새 설정에 이전 설정의 일부 항목만 섞지 마세요. 구성 파일의 라우팅 설정과 서버 항목은 별도로 관리해야 합니다. 구조는 .conf 섹션별 역할 안내에서 확인할 수 있습니다.
04 / TLS 신원 확인
Trojan: TLS 내부에서 이루어지는 암호 인증
보안 연결을 먼저 설정한 뒤 프록시 정보를 주고받습니다
Trojan은 먼저 TLS로 보호된 연결을 설정한 다음 그 안에서 인증과 프록시 요청을 전달하도록 설계됐습니다. 표준 보안 전송과 프록시 프로토콜을 결합하므로 암호가 맞는 것만으로는 충분하지 않습니다. 인증서, 이름, 외부 연결 설정도 일치해야 합니다. TLS 핸드셰이크에서 이미 실패했다면 프록시 암호를 바꿔도 대개 해결되지 않습니다. 핸드셰이크는 성공했지만 인증이 거부됐다면 인증서 이름을 반복해서 바꿔도 잘못된 암호를 바로잡을 수 없습니다.
이 설계는 대칭키로 프록시 페이로드를 직접 보호하는 방식과 다릅니다. TLS는 서버가 검증 가능한 신원을 제공하고 연결에 필요한 매개변수를 협상하도록 합니다. 클라이언트와 서버 사이의 구간을 보호하지만 대상 웹사이트 자체의 HTTPS 검증을 대신하지 않으며, 서버에서 대상 사이트까지의 모든 동작을 보장하지도 않습니다. 오류를 확인할 때는 프록시 서버 인증서 문제인지 브라우저에 표시된 대상 사이트 인증서 문제인지 먼저 구분하세요. 서로 다른 연결에서 발생한 문제입니다.
Server Name은 인증서와 일치해야 합니다
서버 주소는 지정된 진입점으로 연결을 보내고 Server Name은 일반적으로 TLS의 이름 표시와 인증서 검증에 사용됩니다. 기존 설정에서 주소로 연결하면서 TLS용 도메인을 별도로 지정했더라도 잘못된 설정은 아닐 수 있습니다. 서버가 해당 도메인 이름으로 인증서를 제공할 수 있기 때문입니다. 반대로 대상 웹사이트의 이름을 임의로 입력해도 의미가 없습니다. 판단 기준은 서버 인증서에 포함된 이름과 원본 설정에 지정된 값이지, 익숙한 도메인인지 여부가 아닙니다.
인증서 검증에는 유효 기간, 신뢰 체인, 도메인 이름, 기기 시간이 영향을 줍니다. 기기의 날짜와 시간이 크게 어긋나면 유효한 인증서도 오류로 처리될 수 있습니다. 서버에서 인증서를 교체했거나 중간 인증서 체인이 누락된 경우에도 클라이언트가 연결을 거부할 수 있습니다. 인증서 오류가 나면 자동 날짜 및 시간, 서버 설정값, 인증서 상태를 먼저 확인하세요. 안전하지 않은 연결 허용을 일반적인 해결 방법으로 사용해서는 안 됩니다. 이는 기존 설정을 복구하는 것이 아니라 신원 확인 조건을 바꾸는 것입니다.
암호와 추가 매개변수를 하나씩 확인하세요
Trojan 암호는 서버 인증 정보이지 기기 잠금 암호나 App Store 구매 정보가 아닙니다. 복사해 붙여 넣을 때 전체 내용을 유지하고 끝에 줄바꿈이 들어가지 않도록 주의하세요. 암호에 특수 문자가 있으면 공유 링크의 인코딩 및 디코딩에 따라 표시가 달라질 수 있습니다. 가져온 뒤 실제 입력 필드를 확인하고 이미 이스케이프된 텍스트를 다시 이스케이프하지 마세요. 메모에 Trojan이라고 적혀 있다는 사실만으로 링크 내용과 클라이언트의 Type이 일치한다고 볼 수는 없습니다.
기존 서버 구성에 추가 전송 옵션이 포함될 수 있으며 서버도 해당 기능을 지원해야 합니다. 관련 안내가 없다면 WebSocket을 임의로 추가하거나 Path를 바꾸거나 알 수 없는 협상 값을 입력하지 마세요. 외부 진입점에서 특정 호스트, 경로, 핸드셰이크 조건을 요구하는 경우 하나라도 빠지면 요청이 다른 서비스로 전달될 수 있습니다. 같은 도메인의 일반 웹페이지가 열려도 웹사이트 진입이 가능하다는 것만 확인된 것이며 프록시 인증 경로나 해당 포트가 올바르게 설정됐다는 뜻은 아닙니다.
핸드셰이크, 연결 재사용, 백그라운드 활동의 차이
TLS 핸드셰이크에는 암호화 연산과 네트워크 왕복이 필요하므로 새 연결을 설정할 때 비용이 듭니다. 연결이 한 번 설정된 뒤 데이터를 재사용하는 방식은 프로토콜과 구현에 따라 달라집니다. 가끔 웹페이지를 여는 사용 방식에서는 지속적인 전송량보다 연결 설정 시간이 더 두드러질 수 있습니다. 장시간 재생이나 전송에서는 전체 작업 중 핸드셰이크가 차지하는 비중이 작아집니다. Connectivity Test의 한 번 측정한 값만으로 전체 영상 재생 경험이나 하루 동안의 배터리 사용량을 판단하지 마세요.
iOS의 백그라운드 네트워크 활동은 앱 작업, 시스템 스케줄링, 현재 네트워크에도 영향을 받습니다. 연결을 자주 끊고 다시 설정하면 핸드셰이크 횟수가 늘어날 수 있고, 활성 요청을 오랫동안 많이 유지하면 무선 모듈이 더 오래 작동할 수 있습니다. 적절한 설정은 무조건 연결을 유지하거나 끊는 것이 아니라 실제 사용 방식에 맞게 연결을 관리하는 것입니다. On Demand는 연결이 시작되는 조건을 제어합니다. Trojan 암호나 인증서를 바꾸지 않으며 핸드셰이크 비용을 자동으로 없애는 기능도 아닙니다.
서버에서 유효한 인증서와 명확한 암호, 완전한 설정을 제공한다면 Trojan은 표준 TLS 신원 확인을 기준으로 관리할 수 있는 선택지입니다. 선택할 때는 TLS라는 이름을 품질 등급처럼 받아들이기보다 인증서를 확인할 수 있는지, 오류가 발생한 계층을 구분할 수 있는지를 살펴보세요. 인증서 오류와 도메인 조회 오류는 겉으로 비슷하게 보일 수 있습니다. DNS 조회 실패 문제 해결도 참고해 어느 단계에서 문제가 발생했는지 먼저 확인하세요.
05 / 범용 프록시 인터페이스
HTTP와 SOCKS5: 전달 기능만으로 연결이 암호화되지는 않습니다
앱 프록시 요구에 따라 발전한 두 가지 방식
HTTP 프록시는 HTTP 요청을 중계하는 용도로 시작했으며 CONNECT 메서드로 지정된 대상에 터널을 만들 수도 있습니다. SOCKS5는 보다 범용적인 프록시 협상 방식을 제공해 클라이언트가 서버에 대상 주소와 포트를 전달합니다. 지원하는 명령과 인증 방식은 양쪽 설정에 따라 달라집니다. 둘 다 프록시 진입점으로 사용할 수 있지만 요청 의미와 핸드셰이크 형식이 다릅니다. 주소와 포트가 같다고 HTTP 진입점을 SOCKS5로 추가해도 호환된다고 기대해서는 안 됩니다.
이러한 프로토콜은 사용자가 관리하는 네트워크 환경이나 범용 프록시 인터페이스를 명시적으로 제공하는 서버에서 자주 사용됩니다. 주요 기능은 프록시 전달이며, 최신 암호화 터널과 같은 연결 보호를 기본 제공하지는 않습니다. TLS 사용 여부, 인증 방식, 허용 대상은 각각 확인해야 합니다. CONNECT를 허용하는 HTTP 프록시도 포트나 접근 범위를 제한할 수 있으므로 웹 탐색이 된다고 모든 앱과 대상에 해당 진입점을 사용할 수 있는 것은 아닙니다.
HTTPS 웹사이트와 보안 프록시는 같은 개념이 아닙니다
HTTP 프록시로 HTTPS 웹사이트에 접속하면 CONNECT로 만든 터널 안에서 웹사이트의 TLS 연결을 설정할 수 있습니다. 이 경우 웹사이트 콘텐츠는 종단 간 보호될 수 있지만, 대상 사이트가 HTTPS를 사용한다고 해서 클라이언트와 프록시 사이의 프록시 핸드셰이크와 다른 메타데이터까지 모두 암호화되는 것은 아닙니다. ‘웹사이트 연결의 TLS’와 ‘프록시 진입점 연결의 TLS’를 따로 확인하세요. 기존 설정에서 요구하는 유형을 클라이언트에 선택해야 합니다.
SOCKS5 자체도 암호화 전송과 같지 않습니다. 사용자 이름과 암호 인증은 사용자를 식별하지만 인증 정보와 이후 데이터에 기밀성이 자동으로 적용되지는 않습니다. 암호를 설정했다고 전체 연결이 암호화된 것은 아닙니다. 네트워크 환경을 파악하지 않은 채 민감한 인증 정보를 일반 메모처럼 공유해서도 안 됩니다. 현재 사용 목적에 적합한지는 기반 네트워크, 외부 보호 방식, 서버 접근 제어를 함께 고려해야 합니다.
인증, DNS 조회, UDP는 각각 별도로 확인해야 합니다
HTTP 프록시는 사용자 이름과 암호 또는 다른 접근 제한을 요구할 수 있으며 SOCKS5에도 자체 인증 협상이 있습니다. 인증에 실패하면 먼저 서버가 요구하는 방식을 현재 설정에서 지원하는지 확인한 다음 입력 문자열을 살펴보세요. TCP 연결이 된다고 인증까지 통과한 것은 아닙니다. 포트 연결은 초기 단계일 뿐입니다. 서버가 인증을 명시적으로 거부한 경우와 연결 시간이 초과된 경우는 다르게 진단해야 합니다. 전자는 인증 정보를, 후자는 주소, 포트, 네트워크 경로도 확인해야 합니다.
대상 도메인을 어느 위치에서 조회하는지에 따라 접속 가능 여부와 문제 진단 방향이 달라집니다. SOCKS5 요청에는 도메인이나 IP 주소를 담을 수 있지만 어느 쪽을 사용하는지는 클라이언트의 DNS 설정과 요청이 시작된 위치에 따라 달라집니다. 프로토콜 이름만 보고 모든 DNS 조회가 반드시 서버에서 이뤄진다고 추측할 수는 없습니다. 일부 도메인에만 접속할 수 없고 IP 주소로는 접속된다면 DNS 조회 경로와 응답을 확인하세요. 도메인을 IP 주소로 바꿔 테스트할 때는 HTTPS 인증서 이름과 가상 호스트가 달라질 수 있다는 점도 고려해야 합니다.
SOCKS5 프로토콜에는 UDP 관련 기능이 정의돼 있지만 실제 서버에서 해당 전달을 활성화하거나 허용한다는 보장은 없습니다. 일반 HTTP CONNECT를 범용 UDP 통로로 간주해서도 안 됩니다. 실시간 앱을 사용하려면 기존 서버 안내에서 필요한 기능을 제공하는지 먼저 확인하세요. 웹페이지는 열리지만 실시간 기능이 작동하지 않는다고 HTTP와 SOCKS5를 번갈아 바꾸는 것은 기본적인 해결 방법이 아닙니다. 두 방식은 서버 측 지원이 다르므로 잘못 바꾸면 새로운 핸드셰이크 문제가 생길 수 있습니다.
계속 사용해도 되는지 판단하는 방법
이러한 범용 인터페이스는 기능이 분명하고 여러 관리형 네트워크에서 이미 지원된다는 장점이 있어 기존 네트워크 설계에 맞춰 사용하기 좋습니다. 반면 보안 보호, 인증, 전달 범위는 다른 기능으로 보완해야 할 수 있습니다. 선택 전에 용도가 일부 웹 요청인지, 특정 앱의 트래픽 전달인지, 더 폭넓은 작업을 지원해야 하는지 정한 다음 서버가 실제로 허용하는 범위를 확인하세요. 프로토콜 이름이 짧다고 반드시 빠르거나 배터리를 적게 쓰는 것은 아닙니다.
iPhone과 iPad에서 실제 비용은 연결 수, 서버 응답, 무선 네트워크에도 좌우됩니다. 프록시 계층이 적으면 특정 작업이 단순해질 수 있지만 대상 제한으로 재시도가 잦아지면 전체 활동량이 오히려 늘어날 수 있습니다. 같은 작업을 사용해 DNS 조회, 인증, 콘텐츠 로딩 결과를 각각 기록하세요. 목록에 표시된 테스트 결과만으로 실제 서비스에서 사용할 수 있는지 판단하기는 어렵습니다. 자주 발생하는 증상과 추가 점검 방법은 자주 묻는 질문에서 확인할 수 있습니다.
06 / 네트워크 계층 터널
WireGuard: 키, 주소, 라우팅을 함께 이해하세요
암호만 바꾸는 프록시 유형이 아닙니다
WireGuard는 네트워크 계층 암호화 터널을 위한 프로토콜로, 공개 키를 사용해 신원을 확인하고 정해진 암호화 설계에 따라 피어 간 연결을 설정합니다. 요청마다 프록시 대상을 지정하는 프로토콜과 달리 터널 내부 주소, 피어, 허용 주소 범위도 설정해야 합니다. 따라서 구성에 주소 대역과 키가 포함되는 것은 불필요한 정보가 아니라 네트워크 관계를 설명하는 데 필요한 항목입니다. 서버 주소와 암호만으로는 일반적으로 WireGuard 설정을 복원하기 어렵습니다.
이 설계는 터널 구성이 명확한 네트워크에 적합하지만 양쪽에서 주소와 라우팅을 동일하게 이해해야 합니다. Shadowrocket에서 WireGuard를 경로로 사용하는 경우 앱의 규칙 선택과 WireGuard 설정의 주소 제한을 따로 확인하세요. 전자는 요청을 해당 경로로 보낼지 결정하고, 후자는 터널이 관련 트래픽을 어떻게 수신하고 전달할지에 영향을 줍니다. 두 계층에 제한이 모두 있을 때 한쪽만 확인하면 서로 모순되는 결론에 이를 수 있습니다.
Private Key와 Public Key는 서로 바꿔 쓸 수 없습니다
Private Key는 이 기기의 신원 정보이므로 안전하게 보관해야 합니다. Public Key는 피어가 해당 신원을 확인하는 데 사용됩니다. 클라이언트는 서버의 공개 키를 알아야 하고, 서버에도 해당 클라이언트의 공개 키가 설정돼 있어야 합니다. 서버 공개 키를 이 기기의 Private Key 필드에 입력하지 마세요. 문자열 모양이 비슷해도 서로 교환할 수 있는 키가 아닙니다. Preshared Key를 사용한다면 추가 공유 키도 양쪽에서 일치해야 합니다. 근거 없이 새로 만들거나 한쪽에만 입력하지 마세요.
터널 내부 주소는 서버의 공인 주소와 다릅니다. 전자는 터널 내부의 네트워크 관계에 사용되고 후자는 UDP 데이터를 실제로 받을 Endpoint를 찾는 데 사용됩니다. 주소를 입력할 때 원본 설정의 프리픽스 길이를 그대로 유지하세요. 터널 내부 주소를 Endpoint로 잘못 입력하면 클라이언트가 현재 네트워크에서 서버에 연결하지 못할 수 있습니다. 포트도 Endpoint의 일부이므로 흔한 예시를 보고 임의로 입력하지 마세요. 기존 설정에 도메인이 사용됐다면 연결 전에 해당 도메인을 조회할 수 있어야 합니다.
Allowed IPs와 연결 유지 설정의 범위
Allowed IPs는 피어와 관련된 허용 주소 범위를 지정하며 라우팅 선택과 출발지 제한에도 적용됩니다. 구체적인 동작은 구현 방식에 따라 달라집니다. 범위가 너무 좁으면 터널을 거쳐야 하는 대상이 빠질 수 있고, 너무 넓으면 기존 네트워크 설계와 충돌할 수 있습니다. ‘모두 연결되게’ 하려고 원래 값을 임의로 덮어쓰지 마세요. 사설 주소에 접속해야 한다면 로컬 네트워크에 겹치는 주소 대역이 있는지도 확인하세요. 주소 충돌은 트래픽 경로를 잘못 설정할 수 있지만 키 인증 실패와는 다른 문제입니다.
Persistent Keepalive는 필요할 때 NAT 매핑을 유지하는 기능입니다. 특히 이 기기가 특정 NAT 장비 뒤에 있고 피어에서 보내는 데이터를 수신해야 하는 상황에서 사용합니다. 주기를 짧게 설정한다고 항상 더 안정적인 것은 아닙니다. 간격이 너무 짧으면 유휴 상태에서도 데이터 활동이 늘고 모바일 네트워크에서는 무선 모듈이 절전 상태에 들어가는 것을 방해할 수 있습니다. 원본 설정에 요구가 없다면 먼저 NAT 매핑 만료로 연결 복구에 문제가 생기는지 확인한 뒤 실제 네트워크 조건에 맞게 설정하세요. 무조건 고정 주기를 추가하지 마세요.
MTU와 ‘일부 웹페이지가 멈추는’ 현상
터널에서는 캡슐화 오버헤드가 추가되므로 실제 경로에서 전달할 수 있는 패킷 크기를 고려해야 합니다. MTU가 맞지 않으면 작은 요청은 정상인데 큰 응답이나 특정 사이트에서 멈추는 현상이 나타날 수 있습니다. 이런 상황에서 바로 키를 바꾸지 말고 경로와 캡슐화 조건을 먼저 확인하세요. MTU를 조정하려면 기존 값과 반복 가능한 테스트를 기준으로 조금씩 확인하고 변경 사항을 기록해야 합니다. 다른 환경에서 가져온 숫자를 임의로 사용하면 문제를 감추거나 다른 네트워크에서 분할과 효율 저하를 일으킬 수 있습니다.
WireGuard는 UDP로 데이터를 전달하므로 네트워크에서 해당 데이터의 왕복을 허용해야 합니다. Wi-Fi와 셀룰러 네트워크를 전환하면 Endpoint와 NAT 매핑 상태가 달라지고 복구 여부도 네트워크 정책의 영향을 받습니다. UDP 연결이 차단돼 있다면 Keepalive를 추가해도 경로 차단을 해결할 수 없습니다. 먼저 Endpoint, 포트, 네트워크 조건을 확인한 다음 핸드셰이크와 실제 서비스 요청을 점검하세요. 클라이언트에 연결 상태가 표시된다고 터널 내부 라우팅까지 성공한 것은 아닙니다.
속도와 배터리 사용량 측면에서 간결한 프로토콜 설계는 계산량을 줄일 수 있지만 기기의 전체 부담에는 사용자 공간 처리, 무선 송수신, 연결 유지, 실제 트래픽이 포함됩니다. 모든 상황에서 앱 계층 프록시보다 뛰어나다는 뜻은 아닙니다. 기존 네트워크에서 완전한 키와 주소 계획을 제공한다면 그 설계에 따라 사용하세요. 일반 프록시 공유 링크 하나를 가져오기 위해 WireGuard로 억지로 바꾸지 마세요. 선택 기준은 설정 항목 수나 프로토콜의 인지도가 아니라 서버 기능과 네트워크 목적입니다.
07 / QUIC과 혼잡 제어
Hysteria2: 처리량을 논하기 전에 UDP부터 확인하세요
변화하는 네트워크 경로에 맞춘 전송 방식
Hysteria2는 QUIC을 기반으로 프록시 데이터를 전달합니다. QUIC은 일반적으로 UDP를 사용하며 보안 핸드셰이크와 신뢰성 있는 전송 기능 등을 결합합니다. 지연 시간과 패킷 손실이 달라질 때 데이터 전송을 관리하는 것이 주요 설계 목적이며, 단순히 암호 필드를 줄이는 방식은 아닙니다. 기반 전송이 UDP라고 해서 앱에 전달되는 데이터까지 신뢰성이 없다는 뜻은 아닙니다. QUIC은 UDP 위에서 신뢰성 있는 스트림을 제공할 수 있으므로 하위 계층의 패킷과 상위 계층의 데이터 의미를 구분해서 이해해야 합니다.
이러한 설계는 네트워크 상태 변화가 큰 경로에서 테스트해 볼 만한 이유인 동시에 모든 네트워크의 기본 선택이 될 수 없는 이유이기도 합니다. 네트워크에서 UDP 경로를 허용해야 하며 서버도 Hysteria2 진입점을 제공해야 합니다. 네트워크 정책이 해당 경로를 허용하지 않는다면 클라이언트의 대역폭 수치만 바꿔서는 연결할 수 없습니다. 대상 사이트가 원래 속도를 제한한다면 혼잡 제어 방식을 바꿔도 대상 측 제한은 사라지지 않습니다.
인증, 인증서, 추가 항목은 여전히 필요합니다
기본 설정에는 서버 주소, 포트, 인증 정보, TLS 관련 값이 포함됩니다. 인증 문자열은 원본 설정과 일치해야 합니다. 서버가 특정 형식의 조합 값을 사용하는 경우 임의로 사용자 이름과 암호로 나누지 마세요. Server Name은 서버 인증서와 배포 요구 사항에 맞아야 하며 앞서 설명한 TLS 항목과 같은 용도로 사용됩니다. 기기 시간, 인증서 신뢰 체인, 이름이 일치하지 않으면 핸드셰이크가 실패할 수 있습니다. 이런 문제를 전송 속도를 높여 해결할 수는 없습니다.
일부 구성에는 추가 난독화 정보가 포함됩니다. 서버에서 해당 기능을 활성화한 경우에만 필요합니다. 추가 암호를 잘못 입력하면 서버가 초기 데이터를 올바르게 인식하지 못할 수 있습니다. 다른 설정에 이 항목이 있다고 모든 Hysteria2 설정에 추가하지 마세요. 가져온 뒤 전체 설정을 확인하고 공유 자료가 Hysteria2용인지도 확인해야 합니다. 이름이 비슷하다고 호환되는 것은 아닙니다. 프로토콜 세대가 다르면 인증 및 캡슐화 규칙도 달라질 수 있습니다.
대역폭 설정은 속도 측정 결과가 아닙니다
일부 설정에서는 업로드와 다운로드 대역폭을 지정할 수 있습니다. 이 값은 데이터 전송이나 혼잡 제어 방식에 영향을 줄 수 있지만 서버가 보장하는 속도는 아닙니다. 값을 크게 입력해도 무선 네트워크나 서버의 용량이 늘어나지는 않습니다. 오히려 큐 대기, 패킷 손실, 재전송이 증가할 수 있습니다. 해당 항목을 입력해야 하는지, 서버와 어떻게 협의해야 하는지는 기존 서버 구성과 현재 앱에서 제공하는 설정을 기준으로 확인하세요. 예시 숫자를 모든 네트워크에 적합한 값으로 간주하지 마세요.
대역폭 설정을 평가하려면 업로드와 다운로드를 구분하고 다른 작업에 미치는 영향도 관찰하세요. 대용량 파일 전송은 빨라진 것처럼 보여도 웹페이지가 느려진다면 종합적인 사용 경험이 개선된 것이 아니라 큐가 쌓였을 수 있습니다. 셀룰러 네트워크의 용량은 위치와 혼잡도에 따라 달라지므로 하나의 고정값으로 모든 환경에 대응하기 어렵습니다. 기존 설정을 보존하고 보수적으로 조정하면서 매번 한 방향만 바꾼 뒤 같은 작업을 반복하는 편이 안전합니다.
패킷 손실, 네트워크 전환, 배터리 사용량
QUIC의 스트림 구조는 일부 상황에서 스트림 간 대기 시간을 줄일 수 있지만 무선 네트워크 자체의 패킷 손실 비용을 없애지는 못하며, 신뢰성 있는 단일 스트림에서 누락된 데이터를 건너뛸 수도 없습니다. 혼잡 제어는 피드백에 따라 전송을 조절하므로 서버 구현과 네트워크 상태가 모두 결과에 영향을 줍니다. 따라서 ‘UDP 기반’이라는 이유만으로 언제나 더 빠르다고 할 수는 없습니다. 특정 네트워크의 UDP 품질이 낮다면 실제 작업에서는 기존 TCP 경로가 더 안정적일 수도 있습니다. 구호가 아니라 테스트 결과를 기준으로 판단하세요.
iPhone에서 높은 처리량을 계속 유지하면 무선 송수신과 기기 온도가 주요 요인이 될 수 있습니다. 공격적인 전송으로 재전송이 늘면 데이터 활동이 많아지고 잦은 재연결은 핸드셰이크 비용을 더합니다. 배터리를 비교할 때는 신호, 온도, 작업을 비슷하게 맞추고 한 프로토콜은 장시간 속도를 측정하면서 다른 프로토콜은 유휴 상태로 두는 식으로 비교하지 마세요. 기기가 뜨겁거나 네트워크를 전환하는 동안의 일시적인 결과는 당시 조건만 보여 주며 고정된 프로토콜별 배터리 순위를 만들 수는 없습니다.
특정 네트워크에서 Hysteria2만 실패하고 같은 서버의 다른 확인된 진입점은 사용할 수 있다면 UDP 경로, 포트, 인증서를 먼저 확인한 다음 인증 정보와 추가 항목을 점검하세요. DNS, 규칙, 대역폭 매개변수를 동시에 바꾸면 원인을 찾기 어렵습니다. 연결은 되지만 웹페이지가 비정상적으로 로드된다면 대상 DNS 조회, 규칙 적용, 실제 요청도 확인해야 합니다. 이 절은 선택과 진단 방법을 설명하며 특정 연결의 속도를 보장하거나 서버 측 설정 안내를 대신하지 않습니다.
먼저 정확한 설정을 기준으로 삼은 다음 지속적인 전송을 확인하세요. 더 높은 대역폭을 설정해도 실제 사용 가능한 대역폭이 높아지는 것은 아닙니다.
08 / 선택과 재검토
기존 조건에 맞춰 선택한 뒤 실제 작업으로 확인하세요
먼저 서버에서 지원하지 않는 조합을 제외하세요
프로토콜을 선택할 때는 이름을 비교하기 전에 기존 서버에서 실제로 제공하는 진입점을 확인하세요. Shadowsocks 설정만 있다면 해당 암호화 방식부터 확인하면 됩니다. 완전한 WireGuard 설정이 있어야 터널 주소와 키를 검토할 수 있습니다. 구독에 여러 유형이 포함돼 있어도 각 항목이 같은 서버, 경로, 네트워크 조건을 사용하는 것은 아닙니다. 비교 결과는 배포 환경 전체의 차이를 반영할 수 있으므로 프로토콜 자체의 차이로만 설명할 수 없습니다.
다음으로 필요한 작업을 구체적으로 정하세요. 주로 웹을 탐색한다면 첫 로딩, DNS 조회, 짧은 연결의 성능을 살펴보세요. 장시간 전송에서는 안정적인 처리량과 기기 온도가 중요합니다. 실시간 앱은 UDP나 관련 데이터 전달을 지원하는지 확인해야 합니다. 기존 사설 네트워크에 접속해야 한다면 한 번 측정한 지연 시간보다 주소 계획과 라우팅이 더 중요할 수 있습니다. 모든 상황을 아우르는 순위를 찾기보다 검증할 수 있는 작업을 기준으로 선택하세요.
| 기존 조건 | 먼저 확인할 항목 | 이것만으로 판단할 수 없는 내용 |
|---|---|---|
| Shadowsocks 진입점 | 암호화 방식, 암호, UDP 지원 | 알고리즘 이름이 전체 속도를 결정한다는 판단 |
| VMess / VLESS 진입점 | UUID, 전송 방식, TLS, 경로 | 같은 UUID를 여러 프로토콜에서 사용할 수 있다는 판단 |
| Trojan 진입점 | 암호, 인증서, Server Name | 포트 연결이 되면 인증에도 성공했다는 판단 |
| HTTP / SOCKS5 진입점 | 인증, 보호 방식, 전달 범위 | 암호를 설정하면 전체 연결이 암호화된다는 판단 |
| WireGuard 설정 | 키, Endpoint, 주소, 라우팅 | 핸드셰이크가 성공하면 모든 주소에 접속할 수 있다는 판단 |
| Hysteria2 진입점 | UDP, TLS, 인증, 전송 매개변수 | 설정한 대역폭이 실제 처리량과 같다는 판단 |
반복 가능한 테스트 순서를 정하세요
현재 정상 작동하는 설정을 먼저 저장하고 테스트 중 어떤 SERVER 항목이 선택돼 있는지 확인하세요. 네트워크, Global Routing 모드, 접속 대상을 고정하고 관련 없는 대용량 작업은 중지합니다. 기본 연결을 확인한 다음 실제 웹페이지나 앱을 열고 마지막으로 지속적인 데이터 전송을 테스트하세요. 각 회차에서 성공 여부, 첫 응답의 이상 여부, 일정 시간 후 연결이 끊기는지를 기록하세요. 단 한 번의 최저 지연 시간에 집착할 필요는 없습니다. 우연히 나온 최고 결과보다 반복해서 확인되는 현상이 더 유용합니다.
배터리를 테스트할 때는 유휴 상태에서 연결을 유지하는 경우와 실제로 계속 사용하는 경우를 분리하세요. 화면 밝기, 신호 상태, 작업 시간을 비슷하게 유지하고 기기 온도도 관찰하세요. 시스템 배터리 통계는 참고 자료이지 실험실 전력 측정기가 아닙니다. 통계에는 다른 백그라운드 작업이 포함될 수 있고 표시 비율은 전체 소비량에도 영향을 받습니다. 조건을 통제할 수 없다면 ‘현재 작업에서 관찰한 결과’로만 기록하고 특정 프로토콜의 고정된 특성으로 표현하지 마세요.
오류가 발생한 단계에 따라 진단하세요
전혀 연결되지 않으면 먼저 서버 주소의 DNS 조회와 포트 경로를 확인한 다음 프로토콜 유형, 인증 정보, 외부 전송을 점검하세요. 인증서 오류가 명확하면 이름, 기기 시간, 신뢰 체인을 확인하고 인증 거부가 발생하면 암호, UUID, 키 설정을 살펴보세요. 연결은 되지만 일부 대상에만 접속할 수 없다면 규칙 적용, DNS 결과, 대상 사이트 상태를 확인해야 합니다. 일정 시간 후 연결이 끊기면 네트워크 전환, NAT 매핑 만료, 지속적인 대용량 전송과 관련이 있는지 기록하세요. 매번 암호부터 다시 입력하지 마세요.
Connectivity Test는 해당 테스트의 결과만 보여 줄 뿐 모든 실제 작업을 대신하지 않습니다. 결과는 있지만 웹페이지가 열리지 않는다면 여러 도메인의 결과를 비교한 뒤 DNS 조회와 최종 정책을 확인하세요. Config에서만 실패한다면 임시로 Proxy 모드와 비교해 규칙 라우팅 문제인지 살펴볼 수 있습니다. 비교를 마친 뒤 원래 설정을 복원하고 효과가 확인된 변경 사항만 유지하세요. 단계별 절차가 필요하면 빠른 시작 안내로 돌아가세요. 여러 화면의 설정을 한꺼번에 바꾸지 마세요.
기록을 남겨 설정이 달라지는 일을 방지하세요
구독을 업데이트하면 진입점, 설정값, 메모가 바뀔 수 있습니다. 업데이트 후 문제가 생기면 먼저 기존 항목이 교체됐는지, 현재 어떤 항목을 선택했는지 확인하세요. 구독에서 생성된 항목을 직접 수정해도 다음 업데이트 때 변경 사항이 덮어써질 수 있습니다. 민감한 정보를 제외한 테스트 기록에 설정 항목의 유형과 현상을 남겨 두세요. 암호, 개인 키, 인증 정보가 포함된 구독 주소 전체를 공개 문제 해결 게시물에 올리지 마세요. 화면을 공유하기 전에도 이런 정보가 보이는지 확인하세요.
용도가 분명하고 설정값을 추적할 수 있으며 실제 작업에서 검증된 구성을 유지하세요. 설명할 수 없는 시험 설정을 계속 쌓아 두지 마세요. 프로토콜은 연결 형식을, 전송 방식은 데이터 전달을, TLS는 해당 계층의 보호를 담당하고 규칙은 사용할 경로를 선택합니다. 어느 한 계층도 다른 계층을 대신할 수 없습니다. 구매와 복원 문제는 구매한 앱 복원 안내에서, 연결 문제는 자주 묻는 질문에서 확인하세요. 구성 파일의 구조는 관련 문서를 참고하면 됩니다. 이러한 역할을 구분하면 근거가 있는 설정만 조정할 수 있습니다.