· 문제 해결 · 약 10분

Shadowrocket 연결은 됐는데 인터넷이 안 될 때: 서버·Global Routing·DNS·규칙 점검

Shadowrocket 연결 후 웹페이지가 열리지 않으면 서버 상태, Global Routing 모드, DNS 설정, 규칙 적용 순서로 확인해 원인을 찾아보세요.

이 글의 핵심

Shadowrocket의 스위치를 켰다는 것은 시스템 터널이 시작됐다는 뜻일 뿐, 서버 연결이나 도메인 이름 확인, 대상 웹사이트 접속까지 모두 정상이라는 의미는 아닙니다. 이미 이용 중인 서비스와 구독 정보를 보유한 사용자를 대상으로, 먼저 로컬 네트워크 상태를 확인하고 서버를 점검한 뒤 Global Routing 모드를 바꿔 한 가지 조건만 비교합니다. 마지막으로 DNS와 규칙 적용 내역을 살펴봅니다. 한 번에 한 항목만 변경하고 같은 대상의 결과를 기록하면 설정 변경을 네트워크 복구로 오인하는 일을 줄일 수 있습니다.

1. 문제 범위를 먼저 확인하고 앱 재설치는 미루세요

먼저 ‘모든 요청이 실패하는 경우’, ‘일부 도메인만 실패하는 경우’, ‘네트워크를 바꾼 뒤 실패하는 경우’를 구분하세요. 각 상황에 따라 확인할 항목이 다릅니다. 시스템에 VPN 상태가 표시되어도 원격 프록시와의 핸드셰이크가 완료됐다는 뜻은 아닙니다. Home에 테스트 지연 시간이 표시되어도 실제 웹페이지 요청을 대신할 수 없습니다.

문제 해결 중에는 현재 Config와 서버 정보를 유지하고 앱을 먼저 삭제하지 마세요. 삭제 후 다시 가져오면 설정, 캐시, 선택 상태가 한꺼번에 바뀌어 원인을 파악할 단서가 사라질 수 있습니다. On Demand 연결이 켜져 있다면 Settings → On Demand에서 잠시 중지한 뒤 수동으로 연결을 켜고 꺼 보세요. 테스트가 끝나면 원래 설정으로 되돌리세요.

  1. 네트워크 기준 상태 확인

    Home에서 연결을 끈 다음 평소 직접 접속할 수 있는 HTTPS 페이지를 여세요. 페이지가 여전히 열리지 않으면 규칙 탓으로 돌리기 전에 Wi‑Fi 로그인 인증, 셀룰러 데이터 권한 또는 라우터 연결부터 확인하세요.

  2. 테스트 대상 고정

    직접 연결할 대상 하나와 기존 프록시를 통해 접속해야 하는 대상 하나를 정하고, 매번 같은 도메인과 페이지를 사용하세요. 페이지가 완전히 로드되어야 해당 테스트가 성공한 것입니다. 이전에 열린 페이지가 그대로 보인다고 해서 새 요청까지 성공한 것은 아닙니다.

  3. 현재 상태 기록

    Home에서 선택된 서버와 Global Routing 모드를 기록하고, Config에서 현재 활성화된 구성을 확인하세요. Wi‑Fi와 셀룰러 네트워크 중 어떤 것을 사용 중인지도 적어 두고, 이후 비교할 때 조건을 동시에 바꾸지 마세요.

  4. 요청 다시 보내기

    연결을 켠 뒤 테스트 페이지를 다시 열고 새로 생성된 요청 기록을 확인하세요. 대상 도메인, 시간, 처리 정책, 오류 정보를 기록합니다. 몇 분 전에 남은 이전 기록으로 이번 테스트 결과를 판단하지 마세요.

2. 서버 점검: 터널이 시작돼도 원격 서버에 연결된 것은 아닙니다

Home에서 구독 목록에 서버가 있는지만 확인하지 말고 실제 선택된 서버를 확인하세요. 주소, 포트, 프로토콜, 인증 항목이 본인이 보유한 서비스 정보와 일치하는지 살펴보세요. 서버 주소가 도메인 이름이라면 프록시 연결을 시작하기 전에 해당 이름을 확인해야 하는 경우가 많습니다. 서버 도메인을 확인할 수 없어도 연결 불가처럼 나타날 수 있습니다.

포트 번호만으로 프로토콜을 알 수는 없습니다. 예를 들어 서버가 TCP 443을 사용하더라도 임의의 프로토콜로 해당 포트에 연결할 수 있는 것은 아닙니다. Trojan의 인증 및 TLS 매개변수, VMess 또는 VLESS의 전송 설정, Shadowsocks의 암호화 방식은 서버 설정과 일치해야 합니다. 다른 항목과 호환되지 않는 상태로 Type만 바꿔가며 시험하지 마세요.

오류: connection refused

원인: 대상 또는 중간 장비가 연결을 명시적으로 거부했습니다. 주소, 포트, 서비스의 수신 대기 상태를 우선 확인하세요.

해결: 보유한 서비스 정보를 기준으로 포트를 확인하세요. 정보가 일치한다면 오류 발생 시간, 네트워크 유형, 오류 내용을 본인의 서비스 제공업체에 전달해 확인을 요청하세요. DNS를 계속 바꾸는 것은 해결책이 아닙니다.

오류: i/o timeout

원인: 네트워크의 읽기 또는 쓰기 단계가 제한 시간 안에 완료되지 않았습니다. 이 메시지만으로 서버, 전송 경로, 상위 대상 중 어디에서 문제가 생겼는지 판단할 수는 없습니다.

해결: 같은 기록 주변에 표시된 연결 대상과 진행 단계를 확인한 뒤 ‘같은 네트워크에서 서버 변경’, ‘같은 서버로 네트워크 변경’ 비교 테스트를 진행해 실패 범위를 좁히세요.

위 오류는 네트워크 로그에 나타날 수 있는 저수준 오류 원문이며, 정해진 화면 안내 문구가 아닙니다. 프로토콜마다 관련 맥락이 다를 수 있으므로 문제를 문의할 때는 앞뒤 기록을 함께 보존하고 비밀번호, 인증 정보, 구독 토큰은 가리세요.

3. Global Routing: Proxy와 Config를 비교해 연결 경로와 규칙을 구분하세요

Home → Global Routing에서 현재 모드를 확인하세요. Proxy, Direct, Config, Scene은 서로 다른 트래픽 처리 방식이지 서버의 정상 여부를 나타내는 상태가 아닙니다. 문제를 확인할 때는 원래 값을 기록하고 잠시 비교한 다음 복원하세요. 모드를 전환하면 다른 앱에서 진행 중인 요청에 영향을 줄 수 있습니다.

모드 처리 방식 이번 점검에서의 용도
Proxy 트래픽을 프록시로 처리하며 Config의 일반적인 분기 규칙에 따라 직접 연결을 선택하지 않습니다. 서버를 고정한 상태에서 프록시 경로로 실제 요청을 처리할 수 있는지 테스트합니다.
Direct 직접 연결 경로를 사용합니다. 로컬 네트워크와 대상에 직접 연결할 수 있는지 확인합니다. 프록시 서버 테스트에는 사용할 수 없습니다.
Config 현재 활성화된 구성과 규칙에 따라 처리 방식을 결정합니다. Proxy와 비교해 규칙, 정책 또는 구성의 DNS 차이를 파악합니다.
Scene 설정된 Scene 조건에 따라 해당 라우팅 방식을 적용합니다. 실제로 적용 중인 Scene을 먼저 확인하세요. 처음 원인을 파악할 때는 조건이 바뀌지 않도록 명확한 모드로 전환하세요.

같은 서버와 대상을 사용했을 때 Proxy에서는 성공하고 Config에서는 실패한다면 현재 구성과 적용된 정책을 먼저 확인하세요. 그렇다고 해서 곧바로 ‘규칙이 잘못됐다’고 단정할 수는 없습니다. 구성에 따른 이름 확인 방식, 실제 선택된 정책 그룹, 차단 규칙 등이 차이를 만들 수 있습니다. 두 모드에서 모두 실패한다면 규칙을 더 추가하기 전에 서버 연결 가능 여부와 DNS부터 다시 점검하세요.

정리: 재현 가능한 모드 차이를 먼저 기록하세요

‘Proxy에서는 성공하고 Config에서는 실패’한다면 비교 결과를 보존하고 실패한 요청에 실제로 적용된 규칙과 출구를 확인하세요. 차이가 발생한 지점을 찾은 다음 구성을 변경하세요. 서버와 DNS를 동시에 바꾸지 마세요.

4. DNS 점검: 서버 도메인과 대상 도메인을 따로 확인하세요

한 번의 접속에는 두 종류의 이름 확인이 필요할 수 있습니다. 하나는 프록시 서버 주소를 확인하는 과정이고, 다른 하나는 대상 웹사이트 도메인을 확인하는 과정입니다. 전자가 실패하면 프록시 연결이 시작되지 않습니다. 후자가 실패하면 서버에는 연결할 수 있어도 대상 요청을 진행하지 못할 수 있습니다. 이름 확인이 로컬에서 이뤄지는지 원격에서 이뤄지는지는 프로토콜과 구성에 따라 다르므로, 웹페이지가 계속 로딩된다는 이유만으로 원인을 판단할 수는 없습니다.

대상 도메인 이름 확인 결과 규칙 판단 출구 연결 대상 응답

이 흐름은 점검 지점을 이해하기 위한 것으로, 모든 프로토콜이 같은 단계에서 이름을 확인한다는 뜻은 아닙니다. Config에서 현재 구성의 편집 화면을 열고 [General]의 dns-server 등 DNS 설정을 확인하세요. 요청 기록에 이름 확인 실패, 빈 결과 또는 비정상적인 주소가 나타나는지도 살펴보세요. 사용자 지정 DNS 서비스를 사용한다면 해당 서비스에 연결하는 네트워크 경로도 확인해야 합니다.

5. 규칙 점검: 규칙의 존재뿐 아니라 가장 먼저 적용된 규칙을 확인하세요

Config에서 실제로 활성화된 구성을 확인한 뒤 실패한 도메인의 요청 기록을 살펴보세요. 적용된 규칙, 최종 정책, 실제 서버를 기록하는 것이 중요합니다. 규칙은 순서대로 적용되므로 먼저 일치한 요청은 뒤에 더 적절해 보이는 규칙이 있더라도 자동으로 다른 경로로 바뀌지 않습니다.

아래 내용은 규칙 순서와 문법을 설명하기 위한 예시이며, 기존 구성에 그대로 덮어쓸 수 있는 범용 설정이 아닙니다. example.com은 예시 도메인이고 192.168.0.0/16은 사설 IP 주소 범위입니다. 여기서 PROXY와 DIRECT는 규칙의 정책 키워드이며, Global Routing 메뉴에 표시되는 모드와 혼동하지 마세요.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT

규칙 적용 결과가 예상과 다르면 먼저 의도한 Config가 활성화됐는지 확인한 다음 규칙 순서, 도메인 표기, 참조된 정책을 살펴보세요. 정책 그룹에 적용됐다면 그룹 안에서 실제로 선택된 서버도 확인해야 합니다. PROXY라는 글자만 보고 원하는 출구를 통해 요청이 처리됐다고 단정하지 마세요.

정리: 잘못된 트래픽 분기가 확인된 경우에만 수정하세요

실패 기록에서 대상이 잘못 직접 연결된 것이 확인되면 구성 사본에 정확한 범위의 도메인 규칙을 추가하고, 먼저 적용될 수 있는 포괄적인 규칙보다 앞에 배치하세요. 페이지와 관련 요청이 모두 정상인지 확인한 뒤 변경 사항을 유지할지 결정하세요.

6. 자주 묻는 질문: 일부 접속만 실패하는 경우, 자동 재연결, 구독 업데이트

지연 시간은 표시되는데 웹페이지가 열리지 않는 이유는 무엇인가요?

지연 시간은 특정 테스트의 결과일 뿐 모든 대상, DNS 경로, 웹페이지의 관련 요청을 확인한 값은 아닙니다. 서버를 그대로 두고 Proxy 모드에서 실제 대상에 접속한 다음, 이름 확인·연결·응답 중 어느 단계에서 실패하는지 확인하세요.

웹사이트 하나만 열리지 않아도 구성 전체를 바꿔야 하나요?

먼저 해당 웹사이트의 기본 도메인과 API 도메인 요청 기록을 확인하세요. 다른 대상은 정상이라면 해당 도메인의 규칙, 이름 확인 결과, 원격 응답을 우선 살펴보세요. HTTP 403이나 429 같은 응답은 요청이 어떤 HTTP 서비스에 도달했다는 뜻입니다. 바로 앱을 다시 설치하지 말고 응답이 어디에서 왔는지와 접근 조건을 확인하세요.

연결을 꺼도 다시 자동으로 켜집니다. 어떻게 비교 테스트하나요?

Settings → On Demand로 이동해 On Demand 연결을 잠시 끈 다음 수동으로 연결을 해제하고 테스트하세요. 기기에 관리 정책이 설정되어 있다면 해당 정책의 연결 조건도 확인하세요. 점검을 마친 뒤에는 원래 설정으로 복원해 테스트 상태가 계속 유지되지 않도록 하세요.

구독 업데이트 실패와 웹페이지 접속 실패는 같은 문제인가요?

아닙니다. 구독 업데이트는 구성 주소에 접속하고 웹페이지 요청은 대상 사이트에 접속하므로 두 경로가 다를 수 있습니다. 먼저 본인의 구독 링크가 완전하고 유효한지 확인한 뒤 해당 주소의 이름 확인과 접속 경로를 살펴보세요. 업데이트에 성공한 뒤에도 Home에서 선택된 서버를 다시 확인해야 합니다.

셀룰러 네트워크로 바꾸자 해결됐다면 Wi‑Fi 문제라고 봐도 되나요?

네트워크 조건과 관련된 문제라는 점은 알 수 있지만, 변수를 통제해 확인해야 합니다. 서버, Config, 대상을 그대로 두고 Wi‑Fi 인증을 완료했는지, 직접 연결이 되는지, 해당 네트워크가 현재 전송 방식을 허용하는지 확인하세요. 프로토콜, 서버, DNS 설정을 한꺼번에 바꾸지 마세요.

7. 설정을 복원하고 재현 가능한 기록을 정리하세요

원인을 찾은 뒤에는 Global Routing과 On Demand를 원래대로 복원하고 검증된 변경 사항만 유지하세요. 한 번 성공했다고 문제가 완전히 해결된 것은 아닙니다. 원래 실패했던 네트워크에서 요청을 다시 보내고 연결을 껐다가 다시 켠 뒤에도 결과가 일관적인지 확인하세요.

이 기록을 활용하면 ‘스위치를 켰는데 작동하지 않는다’는 문제를 서버 연결 실패, 이름 확인 실패, 잘못된 출구 선택, 대상의 오류 응답처럼 구체적으로 구분할 수 있습니다. 반복해서 초기화하는 것보다 순서대로 확인하는 편이 근거를 보존하기 쉽고, 본인의 서비스 제공업체도 원격 상태를 확인하기 편합니다.

App Store에서 다운로드정품 다운로드 경로 확인