많은 사람들이 Shadowrocket을 처음 사용할 때 ‘노드가 빠른지’나 ‘지연이 얼마나 높은지’ 같은 것에만 주의를 기울이고, 더 중요한 문제 — DNS 누출을 종종 간과합니다.
핵심은 대부분의 튜토리얼이 ‘노드에 연결하는 방법’만 알려 줄 뿐, DNS 누출을 막기 위해 Shadowrocket을 어떻게 올바르게 구성해야 하는지 명확히 설명하는 경우는 매우 드물다는 것입니다.
다음으로, 이 가이드는 기본부터 실전 설정, 그리고 DNS 누출 테스트와 브라우저 fingerprint 검증까지 단계별로 안내하여 불필요한 실수를 피하도록 도와드립니다.

• DNS는 인터넷의 ‘전화번호부’와 같습니다. 웹사이트를 방문하면, 기기는 먼저 DNS 서버에 ‘이 도메인에 해당하는 IP 주소는 무엇인가?’를 묻습니다.
• 문제는: 이미 proxy를 사용 중인데 DNS 요청이 proxy를 우회해 로컬 ISP로 직접 나가면 DNS 누출이 발생한다는 점입니다.
• 이는 실제 IP가 간접적으로 노출되고, 로컬 네트워크 제공자가 브라우징 활동을 기록할 수 있으며, 플랫폼이 DNS를 기반으로 위치를 파악할 수 있게 만듭니다.
그래서 DNS 누출은 사소한 문제가 아니라 — 프라이버시 취약점입니다.
설정을 조정하기 전에 DNS 누출 테스트를 실행하는 것을 권장합니다. 일반적인 방법은 다음과 같습니다:
• 온라인 DNS 누출 테스트 웹사이트 사용
• 브라우저 fingerprint 감지 도구와 결합하여 전체 익명성 평가
• ToDetect fingerprint 검사기와 같은 종합 도구로 DNS, IP, fingerprint 일관성 확인
무엇을 확인해야 하나요?
• DNS 서버 위치가 사용 중인 proxy 노드와 일치하는지
• 로컬 ISP DNS(예: China Telecom/Unicom)가 나타나는지
• 비정상적인 DNS 요청이 여러 개 보이는지
proxy를 사용 중인데도 로컬 DNS가 보인다면 DNS 누출이 발생했다고 볼 수 있습니다.
Shadowrocket에서 DNS 누출을 막으려면 주로 다음 세 가지에 의존합니다:
• DNS를 proxy를 통해 강제로 처리
• 신뢰할 수 있는 DNS 사용(예: DoH/DoT)
• 시스템 기본 DNS의 간섭 방지
요컨대: DNS 요청은 로컬 네트워크가 아니라 ‘proxy를 통해’ 나가야 합니다.
다음은 실전 단계입니다(이 부분을 명확히 설명하지 않는 튜토리얼이 많습니다):
Shadowrocket: Settings → DNS로 이동합니다. 여러 옵션이 보일 텐데 — 여기가 핵심입니다.
DoH(DNS over HTTPS) 사용을 권장합니다. 예:
또는: https://dns.cloudflare.com/dns-query
👉 목적: DNS가 모니터링되거나 변조되는 것을 방지
⚠️ 매우 중요: “DNS over Proxy” / “Resolve DNS via proxy”와 같은 옵션을 찾아 반드시 켜세요. 그렇지 않으면 DNS 누출이 발생합니다.
iOS가 때때로 로컬 DNS 사용을 강제할 수 있습니다. 이 경우 다음을 수행하세요:
Shadowrocket의 “Global Mode”를 활성화(테스트에 권장)하거나 rule mode를 사용하되 DNS도 proxy를 통해 나가도록 보장하세요.
고급 구성을 사용하는 경우 Fake-IP 모드를 활성화할 수 있습니다.
목적은 DNS 오염을 피하고, 해석 속도를 개선하며, DNS 누출 가능성을 낮추는 것입니다 — 다만 숙련자에게 더 적합합니다.
설정했다고 해서 바로 안심하지 마세요 — 반드시 DNS 누출 테스트를 한 번 더 실행해야 합니다. 권장 절차:
1. proxy를 켭니다(Shadowrocket을 노드에 연결)
2. DNS 누출 테스트 웹사이트 방문
3. ToDetect fingerprint 도구로 종합 점검
4. 브라우저 fingerprint 테스트도 실행합니다. 다음이 보여야 합니다:
• DNS 서버가 proxy 국가에 위치
• 로컬 ISP 기록 없음
• IP와 DNS가 일치
위 조건이 모두 충족되면 Shadowrocket의 DNS 누출 방지 설정이 올바르게 작동하는 것입니다.
답: 글로벌 모드라고 해서 DNS가 proxy를 통해 나간다는 뜻은 아닙니다. 많은 분들이 이를 간과합니다 — DNS는 별도로 구성해야 합니다.
해결: “Resolve DNS via proxy” 활성화 + DoH 구성.
답: 네, 매우 흔합니다
노드에 DNS가 설정되어 있다는 것 ≠ 실제로 그 DNS가 사용된다는 뜻은 아닙니다. ‘일부 proxy, 일부 로컬’ 동작이 있을 수 있습니다.
해결: DNS를 수동으로 구성 + proxy 강제 사용
답: 브라우저 fingerprint 노출 때문일 수 있습니다. 웹사이트는 DNS만 보지 않고 기기 정보도 확인합니다.
해결: ToDetect fingerprint 도구 사용 + 브라우저 fingerprint 테스트 병행.
DNS 누출은 평소에는 눈치채지 못하기 쉽지만, 한 번 탐지되면 이미 실제 네트워크 환경이 노출되었을 수 있습니다.
따라서 습관화하시길 권합니다. 노드나 구성을 변경할 때마다 DNS 누출 테스트를 실행하고, 주기적으로 ToDetect 같은 도구로 전체 환경을 점검하세요.
조금 복잡하다는 이유로 많은 튜토리얼이 이 부분을 건너뛰지만, 이를 무시하면 그동안의 노력이 무의미해질 수 있습니다.
AD