Shadowrocket에서 노드 시간 초과가 발생하면 먼저 테스트 방식과 현재 네트워크를 확인하고, 저장된 연결 정보를 점검한 다음 시스템 시간과 인증서 유효 기간을 확인하세요. 자체 서비스 제공업체와 연결 정보를 이미 보유했지만 연결할 수 없는 사용자를 위한 안내입니다. 순서대로 점검하면 문제 범위를 네트워크 연결, 프로토콜 설정 또는 TLS 검증 단계로 좁힐 수 있어 여러 설정을 한꺼번에 바꾸지 않아도 됩니다.
점검 전 준비: 테스트 시간 초과와 실제 요청 실패 구분하기
지연 시간 테스트가 시간 초과되었다는 것은 이번 테스트에서 정해진 시간 안에 예상한 응답을 받지 못했다는 뜻일 뿐, 이것만으로 서버가 중단됐다고 판단할 수는 없습니다. 테스트 방식에 따라 확인하는 단계도 다릅니다. TCP 테스트는 주로 포트 연결을 확인하고, 애플리케이션 계층의 연결 테스트는 프로토콜 핸드셰이크, TLS, 테스트 대상까지 확인할 수 있습니다. 먼저 어떤 방식으로 테스트했는지 기록한 뒤 결과를 비교하세요.
마찬가지로 시스템에 VPN 연결됨이라고 표시되어도 터널이 생성된 것일 뿐, 원격 인증, 도메인 이름 조회, 대상 웹사이트 요청까지 성공했다는 뜻은 아닙니다. 연결 스위치가 켜졌다고 연결 정보를 확인하는 단계를 건너뛰지 말고, 요청이 거치는 단계별로 문제 범위를 좁혀 보세요.
- 테스트 실패, 웹페이지도 열리지 않음: 먼저 네트워크, 주소, 포트를 확인한 다음 프로토콜 설정을 점검하세요.
- 테스트 실패, 웹페이지는 열림: 테스트 방식과 테스트 대상을 먼저 확인하고, 노드를 바로 다시 만들지 마세요.
- 테스트 성공, 웹페이지는 열리지 않음: 인증, TLS, DNS, 규칙, 대상 사이트를 계속 확인하세요. 포트에 연결할 수 있다고 전체 프록시 요청이 정상 작동하는 것은 아닙니다.
1단계: 노드와 테스트 방식을 고정하고 두 네트워크 비교하기
Home에서 현재 선택한 노드를 확인하세요. 먼저 모든 연결 정보를 업데이트하거나 프로토콜을 바꾸지 말고, 같은 노드와 같은 테스트 방식으로 현재 네트워크에서 반복 테스트한 뒤 결과를 기록하세요. 간헐적인 실패와 지속적인 실패는 점검 방향이 다릅니다. 반복 테스트는 현상이 재현되는지 확인하기 위한 것으로, 한 번 측정한 지연 시간만으로 회선 품질을 판단하는 것이 아닙니다.
-
테스트 대상 확인
Home을 열어 현재 노드 이름, 서버 주소, 포트, 테스트 방식을 기록하세요. 예상한 노드가 선택되어 있는지 확인해 다른 노드의 테스트 결과와 현재 웹페이지 접속 결과를 혼동하지 않도록 하세요.
-
규칙의 영향 분리
Home → Global Routing → Proxy로 이동한 뒤 현재 선택한 노드로 일반 웹페이지를 테스트하세요. 이 단계는 Config의 라우팅 영향을 일시적으로 배제하기 위한 것입니다. 테스트가 끝나면 원래 선택했던 Global Routing 설정으로 되돌리세요.
-
접속 네트워크 변경
기기가 지원하고 사용이 허용된 경우 Wi-Fi를 셀룰러 네트워크로 바꾸거나 다른 신뢰할 수 있는 Wi-Fi에 연결하세요. 네트워크가 안정될 때까지 기다린 뒤 노드와 설정은 그대로 두고 같은 방식으로 테스트하세요.
-
자동 연결 확인
수동으로 연결을 끊은 뒤 다시 자동 연결된다면 Settings → On Demand로 이동해 기존 규칙을 기록하고 확인하세요. 일시 중지해야 한다면 On Demand를 먼저 끈 다음 수동 연결을 테스트하세요. 완료 후에는 원래 설정으로 되돌리세요.
요약: 네트워크를 구분할 수 있는 근거부터 확보하세요
같은 노드가 한 네트워크에서는 계속 실패하고 다른 네트워크에서는 정상이라면, 먼저 실패하는 네트워크의 로그인 인증, 외부 연결 제한, 서버까지의 경로를 확인하세요. 비밀번호나 인증서 설정부터 바꾸지 마세요. 두 네트워크에서 모두 실패하더라도 문제 범위가 좁혀질 뿐이므로, 설정과 서버 상태를 계속 확인해야 합니다.
Hysteria2, WireGuard처럼 UDP에 의존하는 연결은 TCP 테스트 결과로 프로토콜 사용 가능 여부를 판단하지 마세요. 네트워크에서 TCP 통신이 허용되어도 같은 주소의 UDP 통신까지 허용된다는 뜻은 아닙니다. 비교할 때 프로토콜은 그대로 두고 실제 연결 및 요청 결과를 기준으로 확인하세요.
2단계: 프로토콜별 주소, 포트, 인증 설정 확인하기
Home에서 해당 노드의 편집 화면으로 이동해 자체 서비스 제공업체가 안내한 원본 정보를 기준으로 항목별로 확인하세요. 노드 이름만 보고 프로토콜을 추측하거나 다른 연결의 설정을 복사하지 마세요. 포트는 서버에서 대기 중인 포트와 일치해야 합니다. 안내된 포트가 8443이라면 TLS를 사용한다는 이유만으로 443으로 바꾸면 안 됩니다. 두 숫자는 확인 방법을 설명하기 위한 예시일 뿐, 일반 설정값이 아닙니다.
먼저 서버 주소에 공백, 프로토콜 접두사 또는 경로가 잘못 포함되어 있는지 확인한 다음 포트와 인증 항목을 점검하세요. 서버 주소, TLS의 Server Name, WebSocket의 Host는 용도가 다를 수 있습니다. 서비스 제공업체가 같게 입력하라고 명시한 경우에만 동일한 값을 사용하세요.
| 프로토콜 | 우선 확인할 항목 | 놓치기 쉬운 차이 |
|---|---|---|
| Shadowsocks | 서버 주소, 포트, Password, Method | Method와 Password가 모두 일치해야 합니다. 포트에 연결할 수 있는지만 확인해서는 안 됩니다. |
| VMess / VLESS | 서버 주소, 포트, UUID, 전송 방식 및 관련 설정 | WebSocket을 사용한다면 Path와 Host를 확인하세요. TLS 및 기타 보안 설정은 원본 안내에 따라 입력하세요. |
| Trojan | 서버 주소, 포트, Password, TLS Server Name | 주소에 연결된다고 인증서 도메인까지 일치하는 것은 아닙니다. Server Name을 임의로 바꾸지 마세요. |
| Hysteria2 | 서버 주소, 포트, 인증 정보 및 TLS 설정 | UDP에 의존합니다. Obfuscation을 사용한다면 해당 유형과 비밀번호도 일치해야 합니다. |
| WireGuard | Endpoint, 키, 인터페이스 주소 및 라우팅 범위 | UDP로 통신합니다. 피어 키가 잘못되어도 핸드셰이크가 정상적으로 이루어지지 않을 수 있습니다. |
구독을 사용한다면 업데이트 실패와 노드 연결 실패를 구분하세요
구독 업데이트는 연결 정보를 가져오는 과정이고, 노드 연결은 해당 정보로 원격 서버에 접속하는 과정입니다. 두 과정은 서로 다릅니다. Home에서 자신의 구독 그룹을 찾아 업데이트한 뒤 노드의 주소, 포트 또는 인증 정보가 변경됐는지 확인하세요. 업데이트에 성공해도 모든 노드를 사용할 수 있다는 뜻은 아니며, 업데이트에 실패했다고 저장된 연결 정보까지 반드시 무효가 되는 것도 아닙니다.
- 서비스 제공업체가 설정 정보를 변경했다고 확인해 주면 먼저 자신의 구독을 업데이트한 다음 테스트할 노드를 다시 선택하세요.
- 업데이트 자체가 실패하면 현재 네트워크에서 구독 주소에 접속할 수 있는지 확인하고, 서비스 제공업체에 링크가 유효한지 문의하세요.
- 기존 기록을 보관한 뒤 수정하세요. 한 번에 한 종류의 항목만 바꾸고 저장 후 다시 테스트해 비교 기준을 유지하세요.
- 전체 구독 링크, Password, UUID 또는 개인 키가 공개 스크린샷에 포함되지 않도록 하세요. 문제를 전달할 때는 필요한 오류 정보와 네트워크 정보만 남기세요.
3단계: 시스템 시간 조정 및 TLS 오류 확인하기
TLS 인증서에는 유효 기간이 있습니다. 기기 시간이 크게 잘못되어 있으면 유효한 인증서도 아직 유효하지 않거나 만료된 것으로 판단될 수 있습니다. iPhone 또는 iPad에서 시스템 설정 → 일반 → 날짜 및 시간으로 이동해 자동 설정이 켜져 있는지, 표시된 날짜와 시간이 정확한지 확인하세요. 기기 관리 정책으로 옵션을 변경할 수 없다면 기기 관리자에게 문의하세요.
시간을 조정한 뒤 다시 연결하고 테스트하세요. 시간이 정확한데도 인증서 오류가 계속되면 Server Name과 인증서 도메인이 일치하는지 확인하거나 서비스 제공업체에 서버 인증서와 인증서 체인을 확인해 달라고 요청하세요. 인증서 검증을 꺼서 문제를 대신 해결하려 하지 마세요. 시간 조정으로 서버 인증서 자체의 만료를 해결할 수도 없습니다.
오류: i/o timeout
원인: 네트워크 읽기 또는 쓰기 단계 중 하나가 제한 시간 안에 완료되지 않은 상태입니다. 이 메시지만으로는 어느 단계에서 실패했는지 알 수 없습니다.
해결 방법: 앞뒤에 표시된 대상 주소와 핸드셰이크 정보를 확인하세요. 먼저 같은 노드로 네트워크를 바꿔 재테스트한 다음 주소, 포트, 프로토콜 설정을 확인하세요.
오류: connection refused
원인: 대상 또는 경로상의 장치가 연결 요청을 명시적으로 거부했습니다. 해당 포트에서 서비스가 대기 중이지 않거나 거부 정책이 적용됐을 수 있습니다.
해결 방법: 서비스 제공업체가 안내한 포트를 확인하고, 대기 상태와 접근 정책을 문의하세요. 대기 시간을 늘리는 것만 반복하지 마세요.
오류: x509: certificate has expired or is not yet valid
원인: 인증서 유효 기간 확인에 실패했습니다. 기기 시간이 잘못됐거나 서버 인증서 자체에 문제가 있을 수 있습니다.
해결 방법: 먼저 시스템 날짜와 시간을 조정하세요. 그래도 문제가 계속되면 민감 정보를 가린 인증서 오류 내용을 서비스 제공업체에 전달해 확인을 요청하세요.
위 내용은 로그에 나타날 수 있는 오류 예시이며, 고정된 팝업 문구가 아닙니다. 프로토콜이나 연결 단계에 따라 전체 오류 내용이 다를 수 있습니다. “시간 초과”라는 두 단어만 기록하는 것보다 오류 전후의 전체 맥락을 보관하는 편이 문제를 찾는 데 도움이 됩니다. 공유하기 전에는 인증 정보를 삭제하세요.
연결 복구 후 Config와 실제 라우팅 확인하기
일시적으로 Proxy를 사용하면 접속되지만 Config로 되돌린 뒤 일부 웹사이트만 실패한다면, 이미 정상 작동을 확인한 노드를 다시 수정하기보다 현재 적용 중인 설정을 살펴보세요. Config에서 선택된 구성 파일을 확인한 다음 Home → Global Routing → Config로 돌아가 다시 테스트하세요.
규칙은 순서대로 매칭됩니다. DOMAIN-SUFFIX는 지정한 도메인과 하위 도메인에 매칭되고, IP-CIDR는 IP 대역에 매칭됩니다. GEOIP는 IP의 지리적 위치를 기준으로 매칭하고, FINAL은 앞선 규칙에 매칭되지 않은 요청을 처리합니다. 아래 내용은 문법과 순서를 보여주는 예시일 뿐, 전체를 대체해야 하는 문제 해결용 설정이 아닙니다:
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,DIRECT
example.com은 예시 도메인입니다. 그대로 복사하지 말고 실제 대상 도메인이 어떤 규칙에 매칭되는지 확인하세요.- 대상이
DIRECT에 매칭되면 해당 요청으로 프록시 노드가 작동하는지 여부를 판단할 수 없습니다. - 한 사이트에서만 문제가 발생한다면 해당 사이트와 관련된 다른 도메인, DNS 결과, 대상 서버 응답을 확인하세요. 노드 전체의 문제라고 바로 단정하지 마세요.
- Scene을 사용 중이었다면 실제로 적용된 Scene과 해당 설정을 확인하세요. 테스트가 끝나면 원래 설정으로 되돌려 임시 Proxy 설정이 남지 않도록 하세요.
요약: 노드 연결 실패와 요청 경로 오류를 구분하세요
Proxy에서는 요청이 정상인데 Config에서는 같은 요청이 실패한다면, 먼저 매칭된 규칙과 실제 아웃바운드를 기록한 뒤 관련 설정을 조정하세요. 요청이 테스트 대상 노드를 실제로 거쳤다는 점이 확인되어야 테스트 결과로 노드의 연결 상태를 판단할 수 있습니다.
계속 실패한다면 재현 가능한 기록을 정리하세요
세 단계를 모두 완료해도 복구되지 않으면 노드 이름만 보내지 말고 확인 가능한 증상을 서비스 제공업체에 전달하세요. 테스트 결과로 문제 범위를 구분할 수는 있지만, 서버 정보가 없으면 원인이 클라이언트인지 서버인지 확정할 수 없습니다. 아래 기록만으로도 다음 점검을 진행할 수 있으므로 전체 인증 정보를 제공할 필요는 없습니다.
- 테스트 시간 및 네트워크: 현지 시간과 시간대, Wi-Fi 또는 셀룰러 네트워크를 적고 다른 네트워크에서도 같은 문제가 재현되는지 설명하세요.
- 프로토콜 및 테스트 방식: 실제 프로토콜이 Shadowsocks, Trojan 등 무엇인지, 포트 테스트와 전체 요청 테스트 중 어떤 방식을 사용했는지 적으세요.
- 클라이언트 상태: Global Routing 설정, 현재 노드, 시스템 시간 조정 여부, On Demand 확인 여부를 기록하세요.
- 실패 단계: 연결 수립 실패, 인증 실패, TLS 검증 실패, 연결 후 특정 웹사이트에서만 발생하는 문제 중 어떤 상황인지 설명하세요.
- 민감 정보 제거한 자료: 필요한 오류 맥락을 제공하고 구독 토큰, 비밀번호, UUID, 개인 키 및 해당 정보가 포함된 QR 코드를 삭제하세요.
노드 시간 초과 문제를 해결하기 위해 클라이언트를 다시 구매할 필요는 없습니다. 클라이언트 구매 ≠ 회선 요금제입니다. Shadowrocket은 유료 상용 앱이며, App Store 구매와 사용자가 기존에 보유한 서비스 제공업체의 연결 서비스는 별개입니다. Shadowrocket은 Apple 플랫폼에서만 제공되며 주로 iPhone과 iPad에서 사용합니다. 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요.