Shadowrocket DNS 설정 방법: 시스템 DNS, 사용자 지정 DNS, DNS over HTTPS

시스템 DNS, 사용자 지정 DNS, DNS over HTTPS의 차이와 적합한 사용 환경을 알아보고, 규칙 매칭과 도메인 조회에 미치는 영향 및 DNS 문제 해결 순서를 확인하세요.

이 글의 핵심

Config에서 현재 활성화된 구성의 DNS 항목을 확인한 다음, 사용 중인 네트워크에 따라 시스템 DNS를 유지할지, 조회 서버를 지정할지, DNS over HTTPS를 사용할지 결정하세요. 자체 서비스와 구성을 이미 갖추고 도메인 조회 또는 라우팅 문제를 해결하려는 사용자를 위한 내용입니다. 한 번에 한 항목만 변경하고 조회 결과, 규칙 매칭, 실제 연결을 각각 확인해 세 가지 문제를 혼동하지 마세요.

DNS 조회와 연결 라우팅을 구분하기

Home에서 현재 연결 상태와 Global Routing을 확인한 뒤 Config에서 사용 중인 구성을 살펴보세요. Shadowrocket의 DNS 설정은 일부 도메인 조회를 처리하는 방식을 정하고, Global Routing과 규칙은 연결에 적용할 정책을 정합니다. 조회 서버를 바꾼다고 모든 요청의 연결 경로까지 바뀌는 것은 아닙니다.

도메인 요청 조회 처리 주소 결과 정책 판단 연결 수립

이 흐름은 문제를 점검할 단계를 구분하기 위한 것이며, 모든 요청에서 매번 새로운 DNS 조회가 순서대로 실행된다는 뜻은 아닙니다. 앱, 시스템, 조회 서버가 결과를 캐시할 수 있고, 도메인 규칙은 주소를 조회하기 전에 정책을 결정할 수도 있습니다. 일부 연결은 원격지에서 도메인을 처리하므로 모든 요청이 먼저 기기에서 IP 주소를 얻는다고 볼 수 없습니다.

Global Routing에서 Config를 사용하는 경우 규칙을 함께 확인해 요청의 경로를 판단하세요. Proxy와 Direct는 전체적인 라우팅 모드이므로 둘 중 하나만 보고 DNS 조회가 실제로 어떤 경로를 거치는지 단정할 수 없습니다. Scene은 해당 장면에 연결된 설정을 추가로 확인해야 합니다. 문제를 점검할 때는 라우팅 모드를 고정하고 DNS를 변경하는 동시에 Scene을 전환하지 마세요.

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

먼저 현재 네트워크에서 정상적으로 접속되는 도메인을 기록한 뒤 세 가지 방식을 비교하세요. 시스템 DNS는 시스템에서 사용할 수 있는 조회 환경을 이용하고, 사용자 지정 DNS는 조회 대상을 직접 지정합니다. DNS over HTTPS(DoH)는 조회 정보를 HTTPS로 전송하는 방식입니다. 뒤의 두 방식은 서로 배타적이지 않습니다. DoH 주소를 지정하는 것도 사용자 지정 DNS 설정에 해당합니다.

방식 입력값 적합한 경우 확인할 사항
시스템 DNS system 현재 네트워크에서 조회가 정상적으로 작동하거나 내부 네트워크 도메인이 필요한 경우 Wi-Fi와 셀룰러 네트워크를 전환하면 조회 환경이 달라질 수 있음
사용자 지정 일반 DNS 사용 가능한 조회 서버의 IP 주소 조회 대상을 고정해야 하고 현재 네트워크에서 해당 서버에 연결할 수 있는 경우 일반 DNS 조회는 보통 전송 구간이 암호화되지 않음
DNS over HTTPS 완전한 https:// 엔드포인트 조회 정보를 HTTPS로 전송해야 하며 엔드포인트에 연결할 수 있는 경우 엔드포인트 경로, TLS 인증서, 최초 조회 의존성
53
일반 DNS에서 주로 사용하는 포트로, UDP 또는 TCP 사용 가능
443
DoH의 HTTPS 기본 포트이며 엔드포인트에 다른 포트를 지정할 수도 있음

라우터 관리 도메인, 회사 내부 서비스 또는 기타 내부 네트워크 이름에 접속해야 한다면 먼저 네트워크에서 제공하는 조회 경로를 유지하세요. 공용 조회 서버는 보통 내부 이름을 알지 못합니다. 모든 조회를 외부 서버로 바꾸면 공용 웹사이트는 정상적으로 열리지만 내부 서비스에는 접속하지 못할 수 있습니다.

요약: 정상 작동하는 기준 설정을 유지한 뒤 조회 대상을 변경하세요

현재 시스템 DNS가 정상 작동한다면 먼저 구성 사본을 저장하세요. 조회 대상을 고정하거나 HTTPS를 통한 조회가 필요한 경우에만 변경하고, 같은 네트워크에서 같은 도메인의 결과를 다시 확인하세요.

Config에서 dns-server와 DoH 주소 확인하기

Config에서 현재 활성화된 구성을 찾아 사본을 저장한 다음 편집 화면을 여세요. 텍스트로 편집하는 경우 [General] 섹션에서 dns-server를 찾습니다. 이미 해당 항목이 있다면 기존 값을 수정하고, 같은 섹션에 이름이 같은 항목을 여러 개 추가하지 마세요. 최종 적용값을 확인하기 어려워질 수 있습니다.

[General]
dns-server = system

위 예시는 시스템 DNS를 사용한다는 뜻입니다. 지정된 조회 서버를 사용하려면 사용자가 연결 가능 여부를 확인한 주소로 값을 바꾸세요. DoH를 사용하려면 서비스 제공자가 안내한 전체 HTTPS 엔드포인트를 입력해야 합니다. 도메인만 입력하거나 일반 DNS IP 앞에 HTTPS를 붙이는 방식은 사용할 수 없습니다.

시스템 DNS 기준 설정

경로
Config → 현재 구성 → 편집 화면
구성 섹션
[General]
항목
dns-server = system
검증 환경
같은 Wi-Fi 또는 셀룰러 네트워크를 유지하세요

저장한 뒤 해당 구성이 활성화되어 있는지 확인하고 다시 연결해 검증하세요.

DoH 엔드포인트 확인

항목
dns-server
주소 형식
https://example.com/dns-query
기본 포트
HTTPS는 443 사용
보안 조건
호스트 이름과 인증서가 일치하고 경로에서 DoH를 지원해야 함

example.com 주소는 형식을 보여 주기 위한 예시이며, 실제로 사용할 수 있는 조회 서비스가 아닙니다.

저장한 뒤 Config로 돌아가 수정한 구성이 활성화되어 있는지 확인하고 Home에서 다시 연결하세요. 활성화하지 않은 파일만 편집하면 현재 세션에는 예상한 변경 사항이 적용되지 않습니다. 구성을 원격에서 관리한다면 업데이트 후 항목을 다시 확인해야 합니다. 원격 구성의 로컬 사본을 직접 수정하면 이후 업데이트에서 변경 사항이 덮어써질 수 있습니다.

  1. 기존 dns-server 값과 현재 활성화된 구성을 기록하고 복구할 수 있는 사본을 보관하세요.
  2. 조회 대상은 한 번에 하나만 바꾸고 규칙, 프로토콜 매개변수, 연결 정책은 동시에 변경하지 마세요.
  3. 저장하고 활성화한 뒤 다시 연결하여 같은 도메인으로 확인하세요.
  4. 결과가 나빠지면 기존 값으로 복원한 뒤 다시 테스트해 변화가 DNS 때문인지 확인하세요.

DoH 엔드포인트가 도메인 이름이라면 HTTPS 연결을 맺기 전에 엔드포인트 자체의 주소를 알아야 하므로 최초 조회가 필요합니다. 아직 연결되지 않은 동일한 DoH 조회 경로에 엔드포인트 주소 확인을 전적으로 의존하게 하지 마세요. 구성에서 지원하는 사용 가능한 초기 조회 경로를 유지하고 로그를 확인해 어느 단계에서 실패하는지 파악하세요.

DNS가 DOMAIN-SUFFIX, GEOIP, IP-CIDR에 미치는 영향

Config에서 규칙 순서를 확인할 때는 먼저 도메인 기준 규칙과 IP 주소 기준 규칙을 구분하세요. DOMAIN-SUFFIX는 도메인 접미사를 기준으로 판단하고, GEOIP와 IP-CIDR은 주소를 기준으로 판단합니다. 규칙을 적용하기 위해 대상 주소를 조회해야 한다면 DNS 응답이 매칭 결과에 영향을 줄 수 있습니다. 도메인 규칙이 이미 일치했다면 뒤에 있는 IP 규칙까지 판단할 필요가 없습니다.

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

아래 구문은 순서를 설명하기 위한 예시이므로 기존 구성을 통째로 덮어쓰지 마세요. 첫 번째 줄은 일치하는 example.com 도메인 접미사에 DIRECT를 적용합니다. 두 번째 줄은 해당하는 사설 주소 범위를 매칭하며, no-resolve는 이 규칙을 위해 도메인 조회를 새로 실행하지 말라는 뜻입니다. 세 번째 줄은 주소의 지리 정보를 사용하고, 마지막으로 FINAL이 앞에서 일치하지 않은 요청을 처리합니다. 실제 정책은 구성에서 사용할 수 있는 정책과 일치해야 합니다.

순서대로 점검하기: 시간 초과, 빈 결과, 웹페이지 접속 실패

같은 네트워크에서 문제를 재현하고 도메인, 시간, 현재 구성, Global Routing을 기록하세요. 사용할 수 있는 연결 기록이나 로그를 확인해 먼저 조회 결과가 있었는지 살펴본 다음 연결 단계의 성공 여부를 판단합니다. 모든 실패를 DNS 문제로 단정하지 마세요.

  1. 네트워크 자체가 작동하는지 확인하세요.웹 인증이 필요한 Wi-Fi라면 먼저 인증을 완료하세요. Wi-Fi에서는 문제가 발생하지만 셀룰러에서는 정상이라면 두 네트워크에서 조회 서버에 연결할 수 있는지, 네트워크 제한이 있는지 우선 비교하세요.
  2. 구성이 실제로 적용되었는지 확인하세요.Config로 돌아가 활성화된 항목과 dns-server를 다시 확인하세요. 시스템이 자동으로 연결을 다시 설정한다면 Settings → On Demand에서 자동 연결 조건을 확인해 테스트 당시의 연결 상태를 잘못 판단하지 않도록 하세요.
  3. 조회 실패 유형을 구분하세요.시간 초과는 정해진 시간 안에 필요한 응답을 받지 못한 상태입니다. NXDOMAIN은 조회 서버가 해당 이름이 존재하지 않는다고 판단한 경우이고, SERVFAIL은 조회 서버가 처리를 완료하지 못한 경우입니다. 세 가지를 같은 원인으로 설명할 수는 없습니다.
  4. DoH의 HTTPS 연결을 별도로 점검하세요.전체 경로, 기기 시간, 엔드포인트 인증서, 연결 가능 여부를 확인하세요. 엔드포인트가 속한 웹사이트가 열려도 입력한 경로에서 DoH를 지원한다는 뜻은 아닙니다. 인증서 오류를 검증 완화로 감추려고 하지 마세요.
  5. 주소를 받았다면 연결 문제를 확인하세요.조회 결과로 A 또는 AAAA 주소를 받았는데 연결 시간이 초과된다면 조회 서버를 계속 바꾸기보다 대상 포트, IPv4/IPv6 연결 가능 여부, 적용된 정책, 사용자가 설정한 연결 매개변수를 확인하세요.
  6. 기준 설정으로 되돌려 비교하세요.저장해 둔 시스템 DNS 구성으로 복원하고 다시 연결한 다음 재테스트하세요. 복원 후에도 문제가 계속되면 DNS 설정을 연달아 추가 변경하지 말고 점검 범위를 넓히세요.

두 테스트 사이에 검증에 사용하는 앱을 종료했다가 다시 열고, 필요하다면 DNS 레코드의 TTL이 만료될 때까지 기다리세요. 다시 연결해도 모든 계층의 캐시가 지워지는 것은 아닙니다. 짧은 시간 안에 같은 도메인에서 같은 결과가 나왔다고 해서 변경 사항이 적용되지 않았다고 단정할 수는 없습니다.

테스트 결과에는 '주소를 받았는지', '어떤 유형의 주소가 반환되었는지', '어떤 정책이 매칭되었는지', '연결의 어느 단계에서 실패했는지'를 각각 기록하세요. '된다' 또는 '안 된다'라고만 적는 것보다 문제를 찾기 쉽습니다. 연결 과정에 대한 추가 점검은연결 문제 해결 안내를 참고하세요.

DNS 설정 관련 자주 묻는 질문

DoH로 바꾼 뒤에도 웹페이지가 열리지 않으면 무엇을 확인해야 하나요?

먼저 Config에서 활성화된 구성과 엔드포인트 전체 주소를 확인한 다음 다시 연결하고 실패한 단계를 살펴보세요. 대상 주소를 이미 받았다면 규칙 매칭과 대상 연결을 확인하세요. 엔드포인트에서 TLS 오류가 발생하면 기기 시간과 인증서를 점검하고, 검증을 끄는 방법을 일반적인 해결책으로 사용하지 마세요.

Wi-Fi에서는 정상인데 셀룰러로 전환하면 DNS 조회가 시간 초과될 때는 어떻게 하나요?

같은 구성과 도메인을 유지하고 두 네트워크에서 각각 결과를 기록하세요. 라우터의 사설 주소처럼 사용자 지정 주소가 로컬 네트워크에 속한다면 셀룰러에서는 보통 직접 연결할 수 없습니다. system 설정으로 되돌려 비교한 뒤 두 네트워크 모두에서 연결 가능한 조회 대상을 사용할지 결정하세요.

DoH를 설정하면 모든 DNS 조회가 암호화되나요?

설정 항목 하나만으로는 그렇게 판단할 수 없습니다. 해당 항목은 특정 조회 경로를 나타냅니다. 앱 자체에서 처리하는 조회, 엔드포인트의 최초 조회, 그 밖의 조회 경로는 각각 따로 확인해야 합니다. 현재 구성과 실제 조회 기록을 먼저 살펴보고 요청이 의도한 경로를 이용하는지 판단하세요.

구성을 업데이트한 뒤 직접 입력한 DNS 설정이 바뀌면 어떻게 하나요?

Config에서 업데이트 전후의 파일을 비교하고 원격 구성과 별도의 로컬 사본 중 무엇을 수정했는지 확인하세요. 개인 설정을 유지하려면 먼저 백업한 뒤 명확하게 활성화할 로컬 사본을 관리하세요. 이후 설정을 동기화할 때는 각 항목을 비교해 연결 매개변수와 DNS 변경 사항을 한데 섞지 마세요.

확인이 끝나면 정상 작동하는 기준 설정과 이번 변경 기록을 보관하세요. DNS는 조회 서버의 개수가 아니라 네트워크 연결 가능 여부, 내부 이름 사용 필요성, 조회 전송 방식에 따라 선택해야 합니다. 대상을 여러 개 입력한다고 반드시 적힌 순서대로 하나씩 전환되는 것은 아닙니다.

App Store 정식 앱 페이지개발자와 앱 ID 확인