2026년 10월 16일 · 문제 해결 · 약 10분

Shadowrocket 연결은 켜졌지만 인터넷이 안 될 때: 서버·모드·DNS·규칙 점검

연결을 켰는데 웹페이지가 열리지 않나요? 서버 상태와 설정, Global Routing 모드, DNS, 규칙 적용 여부를 차례로 확인해 원인을 좁혀 보세요.

이 글의 핵심 내용

이 글은 Shadowrocket에 직접 준비한 서버나 구독을 가져왔지만 연결을 켠 뒤에도 웹페이지에 접속할 수 없는 경우에 유용합니다. 기본 네트워크를 확인하고, 선택한 서버를 점검한 다음, Global Routing 모드와 DNS, 규칙 및 자동 연결 조건을 차례로 살펴보세요. 한 번에 하나씩만 변경하고 같은 대상으로 다시 테스트해야 ‘터널이 시작된 상태’와 ‘요청이 정상 처리된 상태’를 구분할 수 있습니다.

1. 먼저 문제 범위를 확인하고 연결 스위치를 정상 연결의 증거로 여기지 마세요

Home의 연결 스위치와 시스템 VPN 상태는 터널이 시작됐다는 뜻일 뿐, 원격 서버에 연결할 수 있거나 인증 정보가 유효하다거나 모든 웹사이트가 정상 응답한다는 뜻은 아닙니다. 브라우저가 계속 기다리는 경우, 서버를 찾을 수 없다는 메시지가 바로 표시되는 경우, 특정 웹사이트만 실패하는 경우는 서로 다른 문제이므로 모두 서버 장애로 단정할 수 없습니다.

먼저 자동 연결의 영향을 잠시 중단한 뒤 연결을 끈 상태와 켠 상태를 비교하세요. 연결을 꺼도 일반 웹페이지에 접속할 수 없다면 Wi-Fi, 셀룰러 데이터 또는 현재 네트워크의 로그인 인증부터 해결해야 합니다. 이때 규칙을 반복해서 업데이트해도 대개 도움이 되지 않습니다. 공용 Wi-Fi에서 네트워크 로그인이 필요하다면 먼저 인증을 마친 뒤 테스트하세요.

  1. 자동 연결 잠시 중단

    Settings → On Demand로 이동해 현재 설정을 기록한 뒤, On Demand 연결을 잠시 끄고 Home으로 돌아가 연결 스위치를 끄세요. 수동으로 연결을 끊은 직후 자동으로 다시 연결되어 비교 결과가 왜곡되는 일을 방지할 수 있습니다.

  2. 기본 네트워크 확인

    브라우저에서 평소 접속할 수 있는 웹페이지를 열어 현재 Wi-Fi 또는 셀룰러 데이터가 작동하는지 확인하세요. 원래 직접 접속할 수 없는 주소 하나만으로 판단하지 마세요.

  3. 선택 항목 확인

    Home에서 선택 표시가 있는 서버를 확인하고 이름과 프로토콜을 기록하세요. 목록에 서버가 있다고 해서 현재 그 서버가 선택되어 있다는 뜻은 아닙니다.

  4. 연결 테스트 실행

    연결을 켜고 Home → Connectivity Test를 실행한 뒤 테스트 방식과 결과를 기록하세요. 테스트에 성공하면 이전에 열리지 않던 웹페이지에도 접속해 보세요. 테스트 요청과 웹페이지 요청은 서로 다른 요청입니다.

  5. 재테스트 조건 고정

    네트워크 종류, 현재 Global Routing 모드, 테스트 대상, 오류 문구를 기록하세요. 이후에는 한 번에 한 항목만 변경하고 같은 주소로 다시 테스트한 뒤 변경 사항을 유지할지 결정하세요.

2. 서버 설정과 구독 상태 확인

서버 주소, 포트, 프로토콜, 인증 정보는 하나의 유효한 설정으로 일치해야 합니다. 먼저 Home에서 현재 서버의 편집 화면을 열고 서비스 제공업체에서 받은 원본 정보와 항목별로 대조하세요. 연결을 시도해 보겠다고 모든 포트를 443으로 바꾸거나 서로 다른 프로토콜의 입력값을 뒤섞지 마세요.

443
일반적으로 사용하는 HTTPS 포트. 프록시 포트는 서비스 제공업체의 설정을 따르세요.
53
일반적으로 사용하는 DNS 포트. 이 포트만으로 DNS에 접속할 수 있다고 판단할 수는 없습니다.
항목 1개
매번 변수 하나만 변경해 비교할 수 있는 테스트 결과를 남기세요.

서버 항목이 구독에서 생성됐다면 먼저 해당 구독을 업데이트한 다음 서버가 삭제, 이름 변경 또는 교체됐는지 확인하세요. 구독은 서비스 제공업체에서 받아야 합니다. 업데이트에 실패했다는 사실만으로 이미 가져온 서버가 모두 작동하지 않는다고 볼 수는 없습니다. 업데이트에 성공해도 각 서버의 연결이 검증된 것은 아닙니다.

클라이언트 일회성 구매 ≠ 회선 요금제. Shadowrocket은 유료 상용 앱이며, 앱을 구매해도 서비스 제공업체 계정이 자동으로 생성되거나 서비스 이용량이 충전되거나 구독 기간이 연장되지는 않습니다. 계정 상태와 서버 점검 여부는 이용 중인 서비스 제공업체에 확인하세요.

3. Global Routing 모드와 규칙 문제 구분

Home → Global Routing에서 현재 모드를 확인하세요. Config는 현재 활성화된 설정을 사용해 규칙에 따라 트래픽을 라우팅합니다. Proxy는 모든 트래픽을 프록시로 보내는 비교 테스트에, Direct는 모두 직접 연결하는 비교 테스트에 사용합니다. Scene을 사용 중이라면 선택한 Scene의 설정도 확인하세요. Scene 이름만으로 실제 트래픽 경로를 판단할 수 없습니다. 아래 세 가지는 이번 문제를 진단하기 위한 비교 조건이며, 전체 모드 목록은 아닙니다.

비교 설정확인할 현상다음 확인 항목
Direct원래 직접 접속할 수 있던 웹페이지도 열리지 않음기본 네트워크, DNS, 터널 안에서 계속 적용되는 관련 설정
Proxy여러 테스트 대상에서 모두 실패선택한 서버, 인증, 전송 설정, 네트워크 연결 가능 여부
Proxy와 Config같은 대상이 Proxy에서는 열리지만 Config에서는 열리지 않음적용된 규칙, 정책의 대상, 현재 활성화된 설정, DNS 차이
Config일부 도메인만 접속 실패해당 도메인과 관련 도메인에 적용된 규칙을 확인하고, 설정 전체를 먼저 바꾸지 마세요.

비교 테스트에서는 같은 서버, 네트워크, 주소를 유지해야 합니다. 모드를 바꾸면서 서버까지 교체하면 웹페이지가 다시 열려도 어떤 변경이 원인이었는지 알 수 없습니다. 모드를 전환한 뒤 요청을 새로 보내세요. 이미 열린 연결은 이전 경로를 계속 사용할 수 있으므로 필요한 경우 테스트 페이지를 닫았다가 다시 여세요.

4. DNS 확인: 도메인 조회 실패와 연결 실패 구분

DNS는 도메인 이름을 주소로 변환합니다. 이름 조회에 실패하면 연결이 대상 서버에 도달하기도 전에 중단될 수 있습니다. 이름 조회에 성공해도 연결, TLS 또는 앱 응답 단계에서 실패할 수 있습니다. 서버 주소 자체가 도메인 이름이라면 해당 주소의 조회도 연결 경로에 포함되므로 DNS 문제로 프록시 서버에 연결하지 못하는 경우도 있습니다.

도메인 요청 전송 도메인 조회 규칙과 정책 외부 연결 대상 응답

이 흐름은 점검 단계를 나누어 설명하기 위한 것으로, 모든 요청이 반드시 이 순서로 처리된다는 뜻은 아닙니다. 일부 도메인 규칙은 먼저 적용될 수 있고, 주소 기반 규칙은 조회 결과가 필요할 수 있으며, 원격 조회를 사용하면 조회 위치가 달라질 수 있습니다. 문제를 진단할 때는 흐름도만 보고 앱의 동작을 추정하지 말고 실제 요청 기록을 확인하세요.

HTTPS가 정상인지 확인하는 유일한 방법으로 브라우저 주소창에 웹사이트 IP를 직접 입력하지 마세요. HTTPS는 대개 도메인에 해당하는 인증서와 서버 이름을 사용하므로 IP로 접속하면 인증서 오류가 발생하거나 다른 사이트가 열릴 수 있습니다. 원래 도메인을 유지한 채 조회 결과, 연결 주소, 핸드셰이크 결과를 각각 확인하는 편이 더 정확합니다.

5. Config 규칙 순서와 실제 정책 확인

Proxy에서는 접속되지만 Config에서는 접속되지 않는다면 저장된 파일 목록만 보지 말고 Config에서 실제로 활성화된 규칙부터 확인하세요. 일반적으로 규칙은 순서대로 적용되며 먼저 일치한 규칙이 정책을 결정합니다. 앞쪽 규칙의 범위가 너무 넓으면 뒤에 있는 세부 규칙이 적용되지 않을 수 있습니다. FINAL은 기본 규칙이므로 최종적으로 어떤 정책을 가리키는지 확인하세요.

[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

위 내용은 문법 설명용 예시이며 기존 설정을 그대로 덮어쓸 수 있는 완전한 파일이 아닙니다. example.com과 192.0.2.0/24는 문서용 예시입니다. PROXY가 실제로 가리키는 대상은 사용 중인 설정에서 확인하세요. 예시의 정책 이름을 이미 연결이 검증된 서버로 간주하지 마세요.

실패한 요청을 한 번 재현한 뒤 확인 가능한 요청 기록이나 로그에서 도메인, 적용된 규칙, 최종 정책, 오류를 확인하세요. 홈페이지는 열리지만 로그인이 실패한다면 로그인 인터페이스의 도메인을 따로 살펴보세요. 페이지의 글자는 표시되지만 이미지가 로드되지 않는다면 이미지 요청을 확인하세요. 웹페이지 하나도 여러 연결로 구성되므로 요청 하나의 성공만으로 페이지 전체가 정상이라고 판단할 수 없습니다.

6. 오류 문구를 확인하고 한 단어만으로 원인을 단정하지 마세요

다음은 네트워크 로그에서 자주 볼 수 있는 오류 문구의 예시입니다. 모든 문제가 이 문구를 표시하는 것은 아니며, 화면에 항상 같은 방식으로 나타나는 것도 아닙니다. 실제로 표시된 전체 문구와 주변 기록을 저장하고, 실패한 대상이 프록시 서버인지 DNS 리졸버인지 웹사이트인지 확인한 뒤 해당 항목을 점검하세요.

오류: connection refused

원인: 해당 연결이 명시적으로 거부된 상태입니다. 포트에서 연결을 수신하지 않거나 접속이 차단된 경우에 흔히 발생합니다. 해결: 오류에 표시된 주소와 포트를 확인한 뒤 서비스 제공업체에 서버의 수신 상태를 문의하세요. 비밀번호 오류라고 바로 단정하지 마세요.

오류: i/o timeout

원인: 작업 단계 중 하나가 제한 시간 안에 완료되지 않았습니다. 네트워크 패킷 손실, 서버 응답 없음 또는 후속 연결 정체가 원인일 수 있습니다. 해결: 먼저 시간 초과가 발생한 단계를 파악한 뒤 같은 서버와 대상을 사용해 Wi-Fi와 셀룰러 데이터를 비교하세요.

오류: no such host

원인: 해당 도메인을 사용할 수 있는 주소로 조회하지 못했습니다. 주소 입력 오류 또는 DNS 문제가 원인일 수 있습니다. 해결: 오류에 표시된 전체 도메인을 확인하고 서버, 리졸버, 대상 웹사이트 중 어디에 해당하는지 파악한 뒤 관련 DNS 경로를 점검하세요.

오류: certificate has expired or is not yet valid

원인: 인증서 유효 기간이 현재 시간과 맞지 않습니다. 원격 인증서가 만료됐거나 기기 시간이 잘못됐을 수 있습니다. 해결: 기기의 날짜와 시간, 서버 이름을 확인하세요. 원격 인증서에 문제가 있다면 해당 운영 주체가 처리해야 합니다. 인증서 검증을 끄는 방법을 일반적인 해결책으로 사용하지 마세요.

명확한 오류 문구가 없다면 최소한의 재현 기록을 남겨도 됩니다. 사용한 네트워크, 선택한 프로토콜, Global Routing 모드, Connectivity Test 방식, 실패한 대상, 연결을 끈 뒤 복구됐는지를 기록하세요. 기록을 공유하기 전에 비밀번호, UUID, 개인 키, 구독 링크의 token을 삭제하고 인증 정보가 포함된 전체 설정은 공개하지 마세요.

7. 다시 테스트하고 On Demand를 원래대로 복원하세요

접속이 복구되면 먼저 현재 네트워크에서 다시 확인하고 다른 네트워크로 전환해 테스트하세요. 셀룰러 데이터에서는 성공하지만 Wi-Fi에서는 실패한다면 해당 Wi-Fi의 접속 조건을 추가로 살펴봐야 합니다. 특정 서버 하나에서만 실패한다면 그 서버의 설정이나 상태에 집중하세요. 이런 결과는 ‘한 번 껐다 켜니 해결됐다’는 것보다 이후 원인을 찾는 데 도움이 됩니다.

앱의 출처를 확인하려면 Shadowrocket이 Apple 플랫폼에서만 제공되며 주로 iPhone과 iPad에서 사용할 수 있다는 점을 확인하세요. 유일한 구매 경로는 App Store입니다. 개발자는 Shadow Launch Technology Limited이며 앱은 일회성 구매 방식입니다. 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요. 앱을 다시 받는 것으로 서버, DNS, 규칙 문제가 해결되지는 않으므로 작업 전에 개인 설정을 안전하게 보관하세요.

App Store 정품 확인