소개
DNS Proxy는 AdGuard가 GitHub에서 공개한 Go 기반의 DNS 프록시 서버로, DNS-over-TLS, DNS-over-HTTPS, DNS-over-QUIC, DNSCrypt 등 모든 주요 DNS 암호화 프로토콜을 지원합니다. 로컬에서 실행되는 프록시 또는 DoH/DoT/DoQ/DNSCrypt 서버로 동작하며, 사용자가 직접 업스트림을 지정하고 캐시·레이트리밋·DN64 같은 부가 기능을 켜는 방식으로 운용됩니다. winget 패키지명은 AdGuard.dnsproxy이며, 라이선스는 Apache-2.0입니다.
상세정보
다양한 DNS 프로토콜 지원
업스트림으로 일반 DNS(UDP/TCP), DNS-over-TLS(tls://), DNS-over-HTTPS(https://), DNS-over-QUIC(quic://), DNS-over-HTTP/3(h3://), DNSCrypt(sdns://)를 모두 지정할 수 있습니다. 또한 DoH/DoT/DoQ/DNSCrypt 서버로 동작시키거나, HTTP/3 활성화(--http3), 인증서 검증 비활성화(--insecure) 같은 옵션도 지원합니다.
업스트림 제어와 폴백
업스트림은 여러 개 등록할 수 있으며, --upstream-mode로 load_balance, parallel, fastest_addr 중 선택합니다. 주 업스트림이 응답하지 않을 때 사용할 폴백 서버를 -f로 지정하거나, --dnsmasq 스타일의 도메인 지정 문법([/domain/]upstream)으로 특정 도메인만 별도 네임서버로 보낼 수 있습니다. 파일에서 업스트림 목록을 불러오는 것도 가능합니다.
DNS 캐시와 성능 옵션
--cache로 DNS 캐시를 켜고 캐시 크기, 최소/최대 TTL, 옵티미스틱 캐시(--cache-optimistic)와 만료 엔트리의 기본 TTL을 조정할 수 있습니다. 네트워크 상태가 좋지 않은 환경을 위해 가장 빠른 IP 주소를 골라 반환하는 fastest_addr 모드와 --cache-min-ttl 조합을 제공합니다.
DNS64 및 부가 기능
--dns64로 DNS64 서버로 동작시킬 수 있으며, 기본 Well-Known Prefix(64:ff9b::) 외에 사용자 지정 프리픽스를 여러 개 등록할 수 있습니다. 그 외 레이트 리밋(-r), ANY 요청 거부(--refuse-any), EDNS Client Subnet(--edns), Bogus NXDomain 변환(--bogus-nxdomain), private rDNS 업스트림(--use-private-rdns) 같은 세부 기능을 제공합니다.
암호화 DNS 서버 모드
DoH/DoT/DoQ/DNSCrypt 서버로 동작시킬 때는 각각 --https-port, --tls-port, --quic-port, --dnscrypt-port와 인증서(--tls-crt, --tls-key) 또는 DNSCrypt 설정 파일을 지정해야 합니다. DoH 서버에는 --https-userinfo로 Basic Auth를 요구하거나 --doh-insecure-enabled로 TLS 검증을 건너뛰는 옵션도 마련되어 있습니다.
Q. 어떤 DNS 프로토콜을 사용할 수 있나요?
DNS-over-TLS, DNS-over-HTTPS, DNS-over-QUIC, DNSCrypt, 그리고 일반 DNS(UDP/TCP)를 모두 지원합니다.
Q. 설치 방법은 무엇이 있나요?
Windows에서는 winget install --id AdGuard.dnsproxy --exact로, 그 외 환경에서는 GitHub Releases의 바이너리, 공식 Docker 이미지, 또는 Go 1.26 이상 환경의 직접 빌드 중 하나를 선택할 수 있습니다.
Q. 암호화 DNS 서버로도 사용할 수 있나요?
DoH/DoT/DoQ/DNSCrypt 서버로 동작시키는 옵션이 README에 명시되어 있으며, 각각 --https-port, --tls-port, --quic-port, --dnscrypt-port와 함께 인증서 또는 DNSCrypt 설정 파일을 지정해야 합니다.
시스템 요구사항
- Windows에서 winget을 통해 설치할 경우: winget install --id AdGuard.dnsproxy --exact
- GitHub Releases 페이지에서 OS별 바이너리를 내려받아 직접 실행 가능
- 공식 Docker 이미지(adguard/dnsproxy) 사용 가능
- 직접 빌드할 경우 Go 1.26 이상이 필요하며 make build 명령으로 빌드


