Shadowrocket DNS 설정 가이드: 시스템 DNS, 사용자 지정 DNS, DNS over HTTPS 선택법

Shadowrocket에서 시스템 DNS, 사용자 지정 DNS, DNS over HTTPS를 설정하는 위치와 사용 상황을 비교하고, DNS 오류를 단계별로 점검하는 방법을 안내합니다.

이 글의 핵심 내용

Home에서 서버를 선택한 뒤 도메인 조회 방식을 조정하려는 사용자를 위한 안내입니다. 먼저 시스템 DNS로 정상 작동하는 기준 상태를 만든 다음 Config의 현재 설정에서 dns-server를 확인하세요. DNS over HTTPS를 사용하려면 정상 작동을 확인한 전체 엔드포인트를 입력하고, DNS 조회와 규칙 적용, 연결 결과를 각각 점검하세요. 프록시 연결 관련 안내는 이미 이용 중인 서비스와 구독이 있다는 전제에 따릅니다.

DNS 설정은 이름 조회에 영향을 주며 연결 정책을 바꾸지는 않습니다

Shadowrocket의 DNS 설정은 도메인 이름에 해당하는 IP 주소를 조회하는 방식을 정합니다. 브라우저에서 도메인에 접속할 때 주소 조회와 연결 수립은 별개의 단계입니다. 조회에 성공해도 해당 주소의 서비스에 접속할 수 있다는 뜻은 아니며, 현재 서버가 이후 연결을 완료할 수 있다는 보장도 없습니다.

Home에서는 서버를 선택하고 연결을 제어하며, Config에서는 설정 파일을 관리하고, Settings에서는 앱 설정을 조정합니다. 이 글에서는 변경 사항을 명확히 기록할 수 있도록 Config의 텍스트 설정 경로를 안내합니다. 시작하기 전에 현재 선택된 설정 파일을 확인해 사용하지 않는 사본만 편집하는 일을 방지하세요.

53
일반 DNS에서 주로 사용하는 UDP / TCP 포트
443
DoH에서 HTTPS에 사용하는 기본 포트
2단계
도메인 조회와 이후 서비스 연결을 따로 확인

Global Routing의 Config는 설정 규칙에 따라 연결을 처리합니다. Proxy와 Direct는 해당 전역 라우팅 모드를 사용하고, Scene은 선택한 장면에 따라 설정을 적용합니다. 이 기능들을 DNS 전송 방식과 동일시하면 안 됩니다. Proxy를 선택해도 모든 DNS 조회가 자동으로 DoH를 사용하는 것은 아니며, Direct를 선택했다고 해서 DNS 조회가 반드시 시스템 DNS를 이용한다고 단정할 수도 없습니다.

시스템 DNS, 사용자 지정 DNS, DoH 선택 기준

여기서 ‘사용자 지정 DNS’는 기존 방식의 DNS 서버 주소를 직접 입력하는 것을 뜻합니다. 넓은 의미에서는 DoH 엔드포인트를 직접 입력하는 것도 사용자 지정 설정입니다. 비교할 때는 ‘조회 요청을 어느 서버에 맡기는가’와 ‘요청을 어떤 방식으로 전송하는가’를 구분해야 합니다. 그렇지 않으면 주소만 바꾼 것을 전송 암호화로 착각할 수 있습니다.

시스템 DNS

권장

시스템에서 현재 제공하는 DNS 환경을 사용합니다. 처음 설정하거나 문제를 진단할 때 기준 상태로 삼으면, 연결할 수 없는 추가 엔드포인트나 인증서 오류 같은 변수를 줄일 수 있습니다. 여기서 권장하는 것은 시작 순서이지, 모든 네트워크에서 최종적으로 선택할 설정은 아닙니다.

적합한 경우: 처음 연결할 때, 기준 상태로 복구할 때, 로컬 DNS 조회가 필요한 네트워크 리소스에 접속할 때

사용자 지정 일반 DNS

알고 있는 DNS 서버의 IP 주소를 지정합니다. 일반 DNS 자체는 전송 암호화를 제공하지 않으며, 실제 연결 가능 여부는 현재 네트워크와 라우팅에 따라 달라집니다. IP 주소만 바꿔서는 모든 도메인 접속 문제를 해결할 수 없습니다.

적합한 경우: 네트워크 관리자가 DNS 서버를 지정했거나 조회 결과를 비교해야 할 때

DNS over HTTPS

DNS 쿼리를 HTTPS를 통해 DoH 지원 엔드포인트로 전송합니다. DNS 서비스가 명시한 전체 URL을 사용해야 하며, 일반 웹사이트의 홈 주소를 조회 인터페이스로 사용할 수는 없습니다. 이 방식은 엔드포인트까지의 전송을 보호하지만, DNS 서비스는 여전히 조회 내용을 처리할 수 있습니다.

적합한 경우: 신뢰할 수 있고 연결 가능한 DoH 엔드포인트가 있으며 DNS 전송을 암호화하려는 경우

결론: 먼저 정상 작동하는 기준 상태를 확보하세요

시스템 DNS로 대상 도메인에 정상적으로 접속할 수 있다면 해당 설정을 먼저 저장한 뒤 DoH만 따로 전환하세요. 전환 후에만 문제가 생기면 엔드포인트와 엔드포인트까지의 연결부터 점검하세요. 서버와 라우팅 규칙을 동시에 바꾸지 마세요.

Config에서 DNS 설정하기: 먼저 백업하고 한 항목씩 변경

텍스트 설정에서 자주 사용하는 위치는 [General] 섹션의 dns-server입니다. 아래 절차는 현재 설정의 DNS 조회 항목만 수정하며 기존 구독을 다시 가져올 필요는 없습니다. 원격에서 업데이트되는 설정이라면 로컬 사본을 먼저 보관하세요. 이후 업데이트가 로컬 변경 사항을 덮어쓸 수 있습니다.

  1. 기준 상태 기록

    Home에서 선택된 서버와 Global Routing의 현재 값을 기록하세요. Config에서 선택된 설정을 확인한 다음 해당 설정의 작업 메뉴에서 사본을 보관하세요.

  2. 텍스트 편집기 열기

    Config → 현재 설정 오른쪽의 ⓘ → Edit Plain Text로 이동하세요. 기존 [General] 섹션과 dns-server를 찾아 기존 키의 값만 수정하고 같은 이름의 키를 중복해서 추가하지 마세요.

  3. DNS 설정 입력

    시스템 DNS를 복원하려면 dns-server = system을 입력하세요. 일반 DNS를 사용하려면 정상 작동을 확인한 DNS 서버 IP를 입력하고, DoH를 사용하려면 서비스 안내에 나온 전체 HTTPS 엔드포인트를 입력하세요.

  4. 저장 후 다시 연결

    저장한 다음 Config로 돌아가 수정한 설정이 여전히 활성화되어 있는지 확인하세요. Home으로 돌아가 연결을 끊었다가 다시 연결해 새로 불러온 설정으로 테스트하세요.

  5. 도메인 재검사

    같은 네트워크, 같은 서버, 같은 라우팅 모드에서 대상 도메인에 다시 접속하세요. DNS 조회 결과가 반환되는지와 이후 연결이 성공하는지 기록한 뒤 설정을 유지하거나 복원하세요.

시스템 DNS를 복원하는 최소 설정은 다음과 같습니다. 이는 설정 내용 예시이며 파일 전체를 교체하라는 뜻은 아닙니다. 기존에 [General] 섹션이 있다면 해당 줄만 수정하고 나머지 설정과 이후 규칙은 그대로 두세요.

[General]
dns-server = system

DoH 주소 입력 방법: 전체 URL, 인증서, 최초 DNS 조회

DoH 주소에는 프로토콜, 호스트 이름, 서비스 경로가 포함됩니다. 일반적으로 /dns-query 경로를 사용하지만 모든 서비스가 같은 경로를 쓰는 것은 아닙니다. 직접 조합하지 말고 사용 중인 DNS 서비스가 제공한 엔드포인트를 복사하세요. 기본값이 아닌 포트를 지정한 경우 해당 포트도 그대로 유지해야 합니다.

[General]
dns-server = https://resolver.example.com/dns-query

위의 resolver.example.com은 형식을 설명하기 위한 예약 예시 도메인으로, 실제 DNS 서비스로 사용할 수 없습니다. 입력할 때는 사용 가능한 유효한 엔드포인트를 사용하세요. 서비스에서 요구하는 URL의 대소문자와 경로, 필수 매개변수를 그대로 유지하고 일반 웹페이지 주소나 구독 링크를 DNS 항목에 입력하지 마세요.

HTTPS 문제를 해결하려고 도메인 이름을 임의로 찾은 IP 주소로 바꾸지 마세요. 인증서의 도메인 검증이 실패하거나 서비스에 필요한 호스트 이름 정보가 사라질 수 있습니다. 주소를 고정해야 한다면 DNS 서비스와 앱에서 지원하는 설정 방법을 확인하세요.

DNS 오류 점검: 응답 없음, 잘못된 응답, 연결 실패 구분하기

문제 진단을 시작할 때는 오류가 발생한 상태를 기록해 두세요. 현재 네트워크 유형, 대상 도메인, 활성 설정, Global Routing 값, 대략적인 오류 메시지가 필요합니다. 한 번에 조건 하나만 변경하세요. 구독을 업데이트하고 서버를 바꾸고 DNS까지 동시에 변경하면 접속이 복구되더라도 어떤 변경이 효과가 있었는지 알기 어렵습니다.

확인되는 증상먼저 확인할 항목다음 조치
DoH로 전환한 뒤 여러 도메인에서 시간 초과 발생엔드포인트 전체 URL, 인증서, 엔드포인트 연결 가능 여부system으로 복원해 다시 테스트하고, 기준 상태가 복구된 뒤에만 DoH를 재점검
DNS 조회 결과는 있지만 페이지 연결이 시간 초과됨실제로 적용된 정책과 서버 연결 상태Global Routing과 설정 규칙을 확인하고 DNS를 반복해서 바꾸지 않기
공개 도메인은 정상이나 내부 도메인은 실패로컬 네트워크에서 제공하는 DNS 결과가 필요한지 확인현재 네트워크의 시스템 DNS로 복원해 테스트한 뒤 로컬 DNS가 필요한지 검토
Wi-Fi에서는 정상이나 셀룰러 네트워크에서는 실패두 네트워크에서 DNS 엔드포인트에 연결할 수 있는지 확인서버와 설정은 그대로 두고 네트워크만 바꿔 각각 결과를 기록
변경 후에도 동작이 달라지지 않음편집한 설정이 활성화되어 있는지, 이전 연결이 계속 재사용되고 있는지Config에서 선택된 설정을 확인하고 다시 연결한 뒤 서비스 요청을 새로 보내기

규칙을 점검하려면 도메인 조건과 주소 조건을 함께 이해해야 합니다. DOMAIN-SUFFIX는 도메인 접미사와 일치하고, IP-CIDR와 GEOIP는 IP 조건으로 일치 여부를 판단합니다. FINAL은 앞선 규칙과 일치하지 않은 연결을 처리합니다. DNS 조회 결과를 바꾸면 주소 기반 규칙의 일치 여부가 달라질 수 있지만 규칙 순서가 자동으로 수정되지는 않습니다.

Global Routing의 Config와 Proxy를 비교하면 규칙의 영향을 파악하는 데 도움이 됩니다. 다만 테스트를 위한 임시 라우팅 모드를 장기적인 해결책으로 삼지 마세요. Config에서만 실패한다면 실제로 적용된 정책을 확인하세요. 주소 기반 규칙을 사용하는 경우 no-resolve 등 DNS 조회 동작에 영향을 주는 옵션도 확인해야 합니다.

결론: 주소를 확인했다면 연결 경로를 점검하세요

같은 도메인에서 안정적으로 주소가 반환되는데 이후 연결 단계에서 실패한다면 정책, 서버, 대상 서비스에 초점을 맞춰 점검하세요. DNS를 계속 바꾸면 변수가 늘어나 문제의 경계를 확인하기 더 어려워집니다.

설정 저장 전 점검 및 복원 순서

실제 사용하는 네트워크에서 DNS 설정을 확인해야 합니다. 공개 DNS 서비스는 가정이나 사무실 네트워크의 내부 이름을 알지 못할 수 있으며, 전송을 암호화해도 현재 네트워크에 더 적합한 결과가 보장되지는 않습니다. 내부 네트워크와 공용 서비스를 함께 이용하는 기기라면 먼저 로컬 DNS가 필요한지 확인한 뒤 세부 설정을 조정하세요.

Shadowrocket은 Apple 플랫폼용 상용 비공개 앱으로, 주로 iPhone과 iPad에서 사용합니다. 앱을 받을 수 있는 유일한 경로는 App Store입니다. 시스템 요구 사항은 App Store 페이지의 안내를 기준으로 확인하세요. 앱의 일회성 구매와 회선 요금제는 별개의 항목이며, DNS 설정은 기존 회선 서비스를 추가하거나 대체하지 않습니다.

Shadowrocket 정품 다운로드