Shadowrocket에서 시간 초과가 표시되어도 모든 요청을 연결할 수 없다는 뜻은 아닙니다. 지연 시간이 표시되더라도 프로토콜 인증이나 웹 페이지 접속까지 성공한 것은 아닙니다. 직접 관리하는 서버나 구독이 있지만 연결에 실패하는 사용자를 위해, 기본 네트워크와 서버 테스트, 실제 요청을 구분하고 프로토콜 설정, TLS, 시스템 시간을 차례로 확인하는 방법을 안내합니다. 같은 대상으로 다시 테스트할 때는 한 번에 한 가지 조건만 변경하세요.
1. 지연 테스트, VPN 상태, 실제 요청 구분하기
현재 서버와 설정을 그대로 두고 포트, DNS, 규칙을 한꺼번에 바꾸지 마세요. Home의 서버 지연 시간, 시스템의 VPN 상태, Connectivity Test, 브라우저 접속 결과는 각각 서로 다른 단계를 보여 줍니다. 시스템에 VPN 연결됨으로 표시되어도 기기에서 터널이 만들어졌다는 뜻일 뿐, 원격 서버의 인증이 완료되었거나 대상 웹사이트에 접속할 수 있음을 보장하지 않습니다.
앞 단계부터 차례로 확인하면 잘못 판단할 가능성을 줄일 수 있습니다. 예를 들어 서버 포트에 TCP 연결이 되더라도 비밀번호가 틀리면 이후 핸드셰이크 단계에서 실패할 수 있습니다. 특정 테스트 대상이 응답하지 않는다고 해서 모든 웹사이트를 사용할 수 없다고 단정할 수도 없습니다. 테스트 방법마다 확인하는 단계가 다르므로 결과를 기록할 때는 테스트 방법과 대상을 함께 적어 두세요.
| 확인 위치 | 확인할 수 있는 내용 | 다음 확인 항목 |
|---|---|---|
| Home의 서버 지연 시간 | 현재 테스트 방법으로 확인한 응답 상태 | 프로토콜 설정 및 실제 요청 성공 여부 |
| 시스템의 VPN 상태 | 기기 측 터널 상태 | 기본 서버 및 Global Routing |
| Connectivity Test | 테스트 당시 대상에 연결할 수 있었는지 여부 | 다른 대상 및 앱의 실제 접속 결과 |
| 브라우저 접속 결과 | 해당 대상에 대한 종단 간 요청 결과 | 특정 도메인이나 앱에서만 실패하는지 여부 |
2. 여러 옵션을 한 번에 바꾸지 말고 정해진 단계에 따라 시간 초과 재현하기
먼저 기본 네트워크가 작동하는지 확인한 다음 Shadowrocket 연결을 점검하세요. 문제를 확인하는 동안 Settings → On Demand가 켜져 있으면 수동으로 연결을 끊어도 다시 연결이 시작될 수 있습니다. 기준 상태를 테스트할 때는 On Demand를 잠시 끄고, 테스트가 끝나면 원래 설정으로 되돌리세요. 임의로 여러 낯선 주소를 바꾸어 가며 테스트하지 말고, 정상 접속 여부를 아는 대상을 사용하세요.
-
기본 네트워크 확인
Shadowrocket 연결을 끊은 뒤 브라우저에서 정상적으로 접속되는 것을 아는 웹 페이지를 여세요. Wi-Fi 로그인 인증이 필요하면 먼저 인증을 완료합니다. 기본 네트워크 자체가 작동하지 않는다면 먼저 네트워크 접속 문제를 해결하세요.
-
기본 선택 항목 확인
Home으로 돌아가 테스트할 서버를 선택하고 선택 표시가 해당 항목에 있는지 확인하세요. 편집 화면을 열기만 해서는 기본 항목이 바뀐 것이 아닙니다. 현재 Global Routing 선택 항목도 기록해 두세요.
-
지연 시간 기록
Home에서 서버 지연 테스트를 실행하고 성공 또는 시간 초과 여부와 선택한 테스트 방법을 기록하세요. 세 번 연속 테스트해 결과가 안정적인지 확인합니다. 한 번 응답했다고 계속 사용할 수 있는 것은 아닙니다.
-
실제 연결 확인
연결 스위치를 켜고 시스템 안내에 따라 VPN 설정을 허용한 다음 Home에서 Connectivity Test를 실행하세요. 이어서 같은 대상으로 접속해 테스트 결과와 웹 페이지 접속 결과를 각각 기록합니다.
-
네트워크 바꿔 테스트
가능하다면 서버, 설정, 대상을 그대로 둔 채 Wi-Fi에서 셀룰러 네트워크로만 바꾸어 다시 테스트하세요. 접속 네트워크에 따라 결과가 달라진다면 네트워크 제한, 도메인 이름 확인, 해당 전송 방식의 연결 가능 여부를 우선 점검합니다.
3. 주소, 포트, 인증, 전송 설정을 항목별로 확인하기
기본 네트워크는 정상이지만 특정 서버에서 계속 실패한다면 Home에서 해당 서버의 편집 화면을 열고 서비스 제공자나 서버 측의 원래 설정과 대조하세요. 먼저 Type이 일치하는지 확인한 뒤 주소와 포트를 점검하고, 마지막으로 인증, 전송 방식, TLS를 확인합니다. 표시 이름은 구분용일 뿐 프로토콜 인증에 사용되지 않습니다. 이름이 같아도 내부 설정까지 같다는 뜻은 아닙니다.
| 확인 항목 | 구체적인 점검 내용 | 혼동하기 쉬운 점 |
|---|---|---|
| 주소 및 포트 | 주소에 불필요한 공백이 없어야 하며, 포트는 서버의 수신 포트와 일치해야 합니다. | 포트가 443이라고 해서 TLS가 자동으로 사용되거나 서비스가 정상이라는 뜻은 아닙니다. |
| Shadowsocks | 암호화 방식, 비밀번호, 서버에서 요구하는 플러그인 설정을 확인합니다. | 원래 설정을 다른 암호화 방식으로 바꾸어 시험하지 마세요. |
| VMess / VLESS | UUID, 전송 유형, 서버에서 요구하는 기타 항목을 확인합니다. | UUID가 같더라도 두 프로토콜을 서로 바꿔 사용할 수 있는 것은 아닙니다. |
| Trojan | 비밀번호와 TLS 관련 설정을 확인합니다. | 주소에 연결되더라도 비밀번호나 인증서 검증까지 통과했다는 뜻은 아닙니다. |
| Hysteria2 | 인증, TLS, 서버 지정 설정을 확인하고 UDP에 연결할 수 있는지도 점검합니다. | 일반적인 TCP 포트 테스트로 전체 연결 경로를 검증할 수는 없습니다. |
| WireGuard | 키, 피어, Endpoint, 주소 등의 설정을 확인합니다. | TLS 인증서를 사용하지 않으므로 TLS 문제 해결 절차를 적용할 수 없습니다. |
원래 설정에서 WebSocket을 사용한다면 Path와 Host도 확인해야 합니다. 예를 들어 서버 설정에 /ws가 지정되어 있다면 클라이언트에서 임의로 /로 바꾸면 안 됩니다. 이 경로는 해당 항목을 원래 설정과 정확히 일치시켜야 한다는 예시이며, 그대로 적용할 수 있는 서버 설정값이 아닙니다. 다른 전송 방식을 사용하는 경우에도 원래 설정에 맞는 항목을 확인하고 WebSocket 설정을 복사하지 마세요.
- 포트는 서버 설정의 일부입니다. 443이 흔히 사용된다는 이유만으로 기존 포트 8443을 443으로 바꾸면 안 됩니다.
- 비밀번호, UUID, 키를 복사할 때 내용이 잘리거나 줄바꿈이 들어가지 않았는지 확인하세요. 이러한 값을 공개 게시판에 올리지 마세요.
- 구독을 사용하는 경우 먼저 업데이트가 성공했는지 확인한 뒤 현재 선택된 항목이 예상한 서버인지 살펴보세요. 목록 업데이트와 연결 성공은 별개의 문제입니다.
- 구독 관리 항목은 다음 업데이트 때 수동 편집 내용이 덮어써질 수 있습니다. 설정을 비교해 테스트하려면 원래 값을 먼저 저장하고, 임시 변경을 영구적인 해결 방법으로 간주하지 마세요.
4. 오류 문구로 원인을 좁히고 발생 단계를 기록하기
아래는 네트워크 연결에서 자주 볼 수 있는 오류 문구의 일부이며 모든 화면에 같은 문구가 표시되는 것은 아닙니다. 실제 오류 상세 정보나 연결 기록에 해당 문구가 나타날 때만 관련 항목을 확인하세요. ‘시간 초과’만으로 인증 실패를 추정할 수는 없습니다. 오류를 기록할 때 구독 업데이트, 서버 테스트, 웹 요청 중 어느 단계에서 발생했는지도 적어 두세요.
오류: i/o timeout
원인: 작업 단계 중 하나가 제한 시간 내에 완료되지 않았다는 뜻입니다. 이 문구만으로 DNS 확인, 연결, 이후 데이터 수신 중 어느 단계에서 시간 초과가 발생했는지 알 수는 없습니다.
해결 방법: 앞뒤 연결 기록에서 대상과 작업 단계를 확인하세요. 먼저 같은 주소와 포트로 다시 테스트한 뒤 다른 네트워크에서 비교하고, 모든 설정을 한꺼번에 바꾸지 마세요.
오류: connection refused
원인: 연결이 명시적으로 거부되었습니다. 대상 포트에서 서비스가 대기 중이지 않거나 네트워크 장비가 연결을 차단할 때 자주 발생합니다.
해결 방법: 먼저 포트와 프로토콜을 확인한 뒤 해당 서비스가 실행 중인지 서비스 제공자에게 문의하세요. 포트 연결이 거부된 경우 비밀번호를 계속 바꾸어도 대개 해결되지 않습니다.
오류: certificate has expired or is not yet valid
원인: 인증서 유효 기간과 검증 시점이 맞지 않습니다. 인증서가 실제로 만료되었거나 기기의 시간이 잘못되었을 수 있습니다.
해결 방법: 먼저 시스템 날짜와 시간을 확인한 다음 다시 연결하세요. 시간이 정확한데도 오류가 계속되면 서비스 제공자에게 인증서 유효 기간을 확인해 달라고 요청하세요.
문제 해결을 위해 정보를 전달할 때는 단순히 ‘작동하지 않음’이라고 쓰기보다 오류 원문을 남기는 것이 더 유용합니다. 접속 네트워크 유형, 테스트 시간, 프로토콜 유형, 오류 발생 단계, 시도한 개별 변경 사항을 전달할 수 있습니다. 구독 전체 주소, 비밀번호, UUID, 개인 키는 공개 진단 자료에 포함하지 마세요.
5. TLS와 시스템 시간을 확인하고 인증서 검증을 건너뛰지 않기
TLS 연결에는 서버 설정, 인증서의 신원, 기기 시간 등이 모두 맞아야 합니다. 서버 주소, TLS의 Server Name(SNI), WebSocket의 Host는 서로 다른 용도의 항목입니다. 값이 같을 때도 있지만 반드시 같아야 한다고 임의로 판단해서는 안 됩니다. IP 주소로 연결하더라도 서버에서 요구하는 Server Name을 IP로 바꾸면 안 됩니다.
- Home에서 서버 편집 화면을 열고 서버 설정에 따라 TLS 사용 여부와 Server Name을 확인하세요. 해당 프로토콜과 전송 방식에서 실제로 TLS를 사용하는 경우에만 이 항목을 점검하면 됩니다.
- iPhone 또는 iPad의 시스템 ‘설정 → 일반 → 날짜 및 시간’에서 ‘자동으로 설정’을 확인하고 현재 날짜, 시간대, 시간이 정확한지 점검하세요. 이 항목은 시스템 설정이며 Shadowrocket의 Settings가 아닙니다.
- ‘자동으로 설정’을 사용할 수 없다면 먼저 기기 관리 설정이나 시스템 제한을 확인하세요. 시간을 정확하게 맞춘 뒤 다시 테스트하고, 인증서 만료를 숨기려고 시스템 날짜를 과거로 되돌리지 마세요.
- 시간이 정확한데 인증서 오류가 계속되면 서비스 제공자에게 인증서 만료 여부, 도메인 일치 여부, 인증서 체인의 완전성을 확인하세요. 인증서 검증을 건너뛰는 방법을 일반적인 해결책으로 사용하지 마세요.
6. 지연 테스트는 정상인데 접속할 수 없는 경우: Global Routing과 규칙 확인하기
지연 테스트는 정상이지만 실제 요청이 실패한다면 요청이 예상한 경로를 통과하는지 확인하세요. Home → Global Routing의 Proxy, Direct, Config, Scene은 서로 다른 라우팅 방식입니다. Proxy는 프록시 경로를 사용하고, Direct는 직접 연결 경로를 사용하며, Config는 현재 설정에 따라 트래픽을 분기하고, Scene은 선택한 시나리오 설정에 따라 작동합니다. 이 옵션은 연결 경로를 바꾸지만 잘못된 프로토콜 인증 정보를 수정하지는 않습니다.
- Config를 사용할 때는 Config에서 현재 선택한 설정을 확인한 다음 적용되는 규칙과 아웃바운드 정책을 살펴보세요. 서버 목록의 지연 시간만으로 트래픽 분기 결과를 판단하지 마세요.
DOMAIN-SUFFIX는 도메인 접미사로 일치 항목을 찾고,IP-CIDR은 IP 대역으로 일치 항목을 찾으며,GEOIP는 IP 지리 정보를 사용합니다. 도메인 규칙과 IP 규칙은 서로 다른 조건으로 일치 여부를 판단합니다.FINAL은 앞선 규칙에 하나도 일치하지 않을 때 적용되는 기본 규칙입니다. 규칙 순서와 최종 정책을 확인하여 대상이 의도치 않게 Direct 또는 다른 경로로 연결되지 않는지 살펴보세요.- 같은 대상을 Proxy로 임시 비교 테스트한 뒤에는 원래 라우팅 방식으로 되돌리세요. Config에서만 실패한다면 이미 정상임을 확인한 비밀번호를 계속 바꾸기보다 규칙과 DNS 확인을 점검하세요.
도메인 이름 확인도 실제 요청 과정의 일부입니다. 서버 주소의 도메인을 확인할 수 없는 경우와 서버에 연결한 뒤 대상 도메인을 확인하지 못하는 경우는 서로 다른 단계에서 발생합니다. DNS 관련 설정을 한꺼번에 바꾸지 마세요. 먼저 어떤 도메인에서 어느 경로로 요청할 때 실패하는지 파악한 다음, 설정을 하나씩 바꾸어 결과를 비교하세요.
7. 자주 묻는 질문과 문제 해결 완료 기준
지연 시간이 표시되는데도 왜 연결에 실패하나요?
지연 시간은 사용한 테스트 방법이 확인하는 단계만 보여 줍니다. Home으로 돌아가 기본 서버를 확인하고 연결한 뒤 Connectivity Test를 실행한 다음 인증 및 전송 설정을 점검하세요. 포트에 응답이 왔다고 해서 전체 프로토콜 핸드셰이크가 성공한 것은 아닙니다.
Wi-Fi에서만 시간 초과가 발생하고 셀룰러 네트워크에서는 정상이라면 어떻게 하나요?
같은 서버와 대상을 유지하고 먼저 Wi-Fi 로그인 인증을 완료한 다음 해당 네트워크에서 DNS 확인, 포트, UDP 연결 가능 여부를 점검하세요. 프로토콜을 바꾸어 달라고 바로 요청하기보다 ‘같은 설정, 다른 접속 네트워크’의 비교 결과를 서비스 제공자에게 전달하세요.
구독은 업데이트되는데 서버에 연결되지 않는 이유는 무엇인가요?
구독 업데이트는 목록을 가져오는 데 성공했다는 뜻일 뿐, 목록에 있는 모든 서버의 인증이 성공한다는 뜻은 아닙니다. 업데이트 후 Home에서 기본 항목을 다시 확인하고 해당 항목만 따로 테스트하세요. 서비스 상태와 인증 정보가 여전히 유효한지 서비스 제공자에게 문의하세요.
VPN은 연결되어 있지만 특정 웹사이트 하나만 열리지 않으면 어떻게 하나요?
먼저 정상 접속 여부를 아는 다른 대상으로 비교 테스트한 뒤 Home → Global Routing과 Config의 규칙 적용 결과를 확인하세요. 다른 대상은 정상이라면 해당 도메인의 DNS 확인, 규칙, 대상 서버 응답을 계속 점검하고 전체 설정을 바로 새로 만들지 마세요.
문제 해결을 마치려면 예상한 서버가 선택되어 있고, 프로토콜 설정이 원래 설정과 일치하며, 시스템 시간이 정확하고, 대상 요청이 의도한 경로를 통과하고, 같은 조건에서 여러 번 테스트한 결과가 안정적이어야 합니다. 변경 전후 기록을 보관하고 임시로 끈 On Demand와 임시로 바꾼 Global Routing을 원래대로 복원하세요. 문제가 계속되면 최소 재현 절차를 서비스 제공자에게 전달해 추가 점검을 요청하세요.