Tropic Host

VPS에서 AdGuard Home 설치 및 광고 차단

읽는 데 12분
Tropic
VPS에서 AdGuard Home 설치 및 광고 차단

H1: VPS에 AdGuard Home을 설치하고 설정하는 방법

AdGuard Home은 광고 도메인, 추적기 및 기타 원치 않는 리소스에 대한 요청을 차단하는 무료 DNS 서버입니다. 컴퓨터, 휴대전화, TV 및 기타 기기의 DNS 요청을 이 서버로 보내 하나의 관리 패널에서 필터링을 관리할 수 있습니다. 아래에서는 Ubuntu 또는 Debian VPS에 설치하는 방법, 초기 설정, 클라이언트 연결 및 공개 서버 보호 방법을 살펴봅니다.

필요한 사항

개인 용도라면 일반적으로 1 vCPU, 512MB–1GB RAM, 몇 GB의 여유 저장 공간이면 충분합니다. 고정 IP 주소, SSH 접속 권한, 그리고 root 또는 sudo 권한도 필요합니다.

AdGuard Home은 다음 포트를 사용합니다.

  • 초기 설정 마법사용 3000/TCP;
  • 일반 DNS용 53/UDP53/TCP;
  • 관리 패널에 계속 접속하기 위해 선택한 포트.

53번 포트를 제한 없이 인터넷 전체에 공개하면 안 됩니다. 안전한 구성은 별도 항목에서 설명합니다.

Ubuntu 또는 Debian에 AdGuard Home 설치하기

SSH로 VPS에 접속하고 curl을 설치합니다.

sudo apt update
sudo apt install -y curl

공식 설치 스크립트를 실행합니다.

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sudo sh -s -- -v

스크립트는 서버 아키텍처를 감지하고 안정 버전을 다운로드한 다음 /opt/AdGuardHome에 설치하고 시스템 서비스를 생성합니다. 다음 명령으로 상태를 확인할 수 있습니다.

sudo /opt/AdGuardHome/AdGuardHome -s status

그런 다음 브라우저에서 다음 주소를 엽니다.

http://SERVER_IP:3000

페이지에 접속할 수 없다면 시스템 방화벽과 호스팅 업체 제어판의 규칙을 확인하세요.

초기 설정

설정 마법사에서 관리 패널과 DNS 서버의 주소 및 포트를 선택해야 합니다.

관리 패널은 포트 3000을 그대로 두고 인터페이스로 VPS의 IP 주소를 선택할 수 있습니다. 별도의 사용자 이름과 강력한 비밀번호를 만드세요. 관리 패널에서는 질의 로그, 필터 및 클라이언트 설정에 접근할 수 있습니다.

DNS는 서버 IP와 표준 포트 53을 선택합니다. 이미 사용 중이더라도 임의의 다른 포트로 바꾸지 마세요. 대부분의 기기는 일반 DNS가 53번 포트에서 동작한다고 가정합니다. 충돌 해결 방법은 아래에서 설명합니다.

마법사를 완료하면 메인 페이지에 질의 통계, 차단된 요청 수, 활성 클라이언트 및 자주 요청된 도메인이 표시됩니다.

DNS 필터링 작동 방식

기기는 웹사이트나 서비스에 연결하기 전에 도메인의 IP 주소를 요청합니다. AdGuard Home은 해당 도메인을 규칙 목록과 비교합니다. 광고 네트워크나 추적기에 대한 요청은 차단되고, 허용된 요청은 업스트림 DNS 서버로 전달됩니다.

이 방식은 네트워크 전체에 통합 필터링을 제공하며, 브라우저뿐 아니라 많은 모바일 앱과 스마트 TV에서도 작동합니다. 질의 로그, 기기별 규칙, 세이프 서치, 일정에 따른 서비스 차단 기능도 사용할 수 있습니다.

AdGuard Home은 HTTPS를 복호화하거나 페이지 코드를 변경하지 않습니다. 따라서 도메인 요청은 차단할 수 있지만 모든 광고 요소를 제거할 수는 없습니다.

설치 후 주요 설정

업스트림 DNS 서버

설정 → DNS 설정을 엽니다. 여기에서 AdGuard Home이 허용된 요청을 전달할 서버를 지정합니다. 처음에는 제안된 값을 그대로 사용하고, 이후 DNS-over-HTTPS 또는 DNS-over-TLS를 지원하는 신뢰할 수 있는 리졸버를 선택할 수 있습니다.

암호화된 업스트림 DNS는 VPS에서 외부 리졸버까지의 구간을 보호합니다. 기기에서 VPS까지의 연결은 DoH, DoT 또는 VPN으로 별도로 보호해야 합니다.

차단 목록

기본 필터는 이미 활성화되어 있습니다. 대규모 목록을 한꺼번에 수십 개 추가하지 마세요. 서로 중복되고 오탐 가능성이 높아집니다. 구체적인 목적에 맞춰 한 번에 하나씩 추가하고 질의 로그를 확인하세요.

변경 후 웹사이트나 앱이 작동하지 않으면 로그에서 차단된 도메인을 찾아 해당 항목만 예외로 추가하세요.

사용자 지정 규칙

사용자 지정 규칙에서 개별 도메인을 차단하거나 허용할 수 있습니다.

||ads.example.com^
@@||needed.example.com^

첫 번째 줄은 도메인을 차단하고 두 번째 줄은 예외를 추가합니다.

서비스, 일정 및 클라이언트

AdGuard Home은 개별 서비스를 완전히 차단하고 일정을 적용할 수 있습니다. 기기를 고정 클라이언트로 추가하면 컴퓨터, 자녀용 태블릿 및 TV에 서로 다른 규칙을 지정할 수 있습니다.

기기 연결 방법

서버를 설치하는 것만으로는 기기의 DNS 설정이 바뀌지 않습니다. 라우터 또는 각 클라이언트에서 AdGuard Home 주소를 지정해야 합니다.

라우터를 통해 연결

라우터 설정을 열고 DHCP, LAN 또는 DNS 항목을 찾습니다. AdGuard Home IP 주소를 DNS 서버로 지정하고 설정을 저장한 다음 기기를 네트워크에 다시 연결합니다.

필터링을 반드시 적용해야 한다면 공개 DNS를 두 번째 주소로 추가하지 마세요. 일부 기기는 두 주소를 모두 사용해 AdGuard Home을 우회할 수 있습니다. 장애 대응이 필요하다면 두 번째 인스턴스를 배포하는 편이 좋습니다.

한 기기에서 설정

테스트를 위해 한 대의 컴퓨터나 휴대전화에서만 DNS를 변경할 수 있습니다.

  • Windows — 네트워크 어댑터 속성과 IPv4/IPv6 설정;
  • macOS — 활성 연결 설정;
  • Android 및 iOS — 현재 Wi-Fi 네트워크 설정;
  • 스마트 TV — 수동 네트워크 설정.

일반 Wi-Fi 설정은 모바일 데이터 사용 중에는 적용되지 않습니다. 어떤 네트워크에서든 작동하게 하려면 DoH, DoT 또는 VPN이 필요합니다.

다음 명령으로 서버를 확인할 수 있습니다.

nslookup example.org SERVER_IP

요청이 AdGuard Home 질의 로그에 나타나야 합니다.

공개 VPS에서 안전하게 설정하기

자동 스캐너는 개방형 DNS 리졸버를 빠르게 찾아냅니다. 허가받지 않은 클라이언트가 사용하거나 DNS 공격에 악용할 수 있으며, 그 결과 부하가 증가하고 IP 주소에 대한 신고 위험이 생깁니다.

테스트할 때는 자신의 공인 IP 주소에서만 접속을 허용하세요. UFW가 설치되어 있지 않다면 먼저 sudo apt install -y ufw 명령으로 설치합니다.

sudo ufw allow OpenSSH
sudo ufw allow from YOUR_IP to any port 3000 proto tcp
sudo ufw allow from YOUR_IP to any port 53 proto udp
sudo ufw allow from YOUR_IP to any port 53 proto tcp
sudo ufw enable

SSH를 먼저 허용해야 합니다. 그렇지 않으면 VPS 접속 권한을 잃을 수 있습니다. IP 주소가 자주 바뀐다면 WireGuard, Tailscale 또는 다른 VPN을 통해 기기를 연결하세요.

서로 다른 네트워크에서 계속 사용하려면 도메인, TLS 인증서 및 보안 DNS를 설정하는 것이 좋습니다.

  • DNS-over-HTTPS용 443/TCP;
  • DNS-over-TLS용 853/TCP;
  • AdGuard Home 설정에서 클라이언트 및 질의 빈도 제한.

관리 패널도 방화벽이나 VPN으로 보호해야 합니다. 로그에는 기기가 접속한 도메인이 포함되므로 필요한 기간 동안만 보관하세요.

“53번 포트가 이미 사용 중입니다” 오류

Ubuntu에서는 systemd-resolved가 53번 포트를 사용하는 경우가 많습니다. 다음 명령으로 수신 중인 프로세스를 확인할 수 있습니다.

sudo ss -lntup | grep ':53'

서비스가 127.0.0.53에서만 수신 중이라면 먼저 AdGuard Home을 모든 인터페이스가 아닌 VPS의 특정 IP 주소에 바인딩해 보세요.

충돌이 계속되면 로컬 DNS 스텁 리스너를 비활성화합니다.

sudo mkdir -p /etc/systemd/resolved.conf.d

printf '[Resolve]\nDNS=127.0.0.1\nDNSStubListener=no\n' | \
sudo tee /etc/systemd/resolved.conf.d/adguardhome.conf

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved
sudo /opt/AdGuardHome/AdGuardHome -s restart

서버가 다시 도메인 이름을 해석하고 AdGuard Home이 작동하는지 확인할 때까지 SSH 세션을 닫지 마세요.

업데이트 및 백업

관리 패널 또는 다음 명령으로 업데이트할 수 있습니다.

cd /opt/AdGuardHome
sudo ./AdGuardHome --update

큰 변경을 적용하기 전에 /opt/AdGuardHome/AdGuardHome.yaml 파일과 /opt/AdGuardHome/data/ 디렉터리를 저장하세요. 여기에는 설정, 클라이언트, 필터 및 운영 데이터가 들어 있습니다.

AdGuard Home용 VPS 선택 방법

가족이나 소규모 팀이라면 일반적으로 1 vCPU와 1GB RAM이면 충분합니다. AdGuard Home과 함께 VPN, 모니터링 시스템 또는 다른 애플리케이션도 실행할 예정이라면 추가 메모리를 확보하세요.

이 용도에는 tropic.host의 VPS가 적합합니다. Ubuntu 또는 Debian을 설치하고 전용 IP 주소를 받아 가정용 컴퓨터에 의존하지 않고 DNS 서버를 24시간 운영할 수 있습니다. 인터넷에 배치할 때는 반드시 방화벽, 보안 DNS 또는 VPN을 사용하세요.

AdGuard Home의 한계

DNS 필터링은 브라우저 광고 차단기, 백신 또는 방화벽을 대체하지 않습니다. 주요 콘텐츠와 같은 도메인에서 전달되는 광고는 안정적으로 제거할 수 없습니다. 따라서 서비스 자체의 작동을 방해하지 않고 DNS 수준에서 YouTube와 Twitch의 동영상 광고나 소셜 네트워크 내부의 광고 게시물을 안정적으로 제거할 수는 없습니다.

차단 후에도 페이지에 빈 공간이 남을 수 있습니다. 브라우저 확장 프로그램은 페이지 요소를 숨길 수 있으므로 AdGuard Home과 함께 사용할 수 있습니다. 일부 앱은 자체 암호화 DNS를 사용해 시스템 설정을 우회하기도 합니다.

요약

AdGuard Home은 컴퓨터, 휴대전화 및 기타 기기에서 상당수의 광고와 추적기를 중앙에서 차단합니다. 몇 분 안에 VPS에 설치할 수 있으며 많은 자원을 필요로 하지 않습니다.

설치 후에는 클라이언트와 필터를 설정하고 관리 패널을 보호하며 53번 포트를 인터넷 전체에 열어 두지 마세요. 모바일 및 외부 네트워크에서 접속하려면 VPN, DNS-over-HTTPS 또는 DNS-over-TLS를 사용하세요.

FAQ

AdGuard Home은 무료인가요?

네. AdGuard Home은 무료로 배포되며 구독이 필요하지 않습니다. 실행하는 기기 또는 VPS 비용만 지불하면 됩니다.

AdGuard Home이 YouTube 광고를 차단하나요?

아니요. 광고와 동영상이 같은 도메인에서 전달될 수 있으므로 DNS 차단을 적용하면 YouTube 자체의 작동에 문제가 생깁니다.

모바일 데이터에서도 필터링이 작동하나요?

네. DNS-over-TLS, DNS-over-HTTPS, 호환 프로필 또는 VPN을 설정하면 작동합니다. Wi-Fi 설정에서 DNS를 변경하면 해당 네트워크에만 적용됩니다.

RAM은 얼마나 필요한가요?

개인 용도라면 일반적으로 512MB–1GB RAM이면 충분합니다. 클라이언트가 많거나 필터가 크거나 다른 서비스를 함께 실행한다면 추가 메모리가 필요할 수 있습니다.

필터를 켠 후 웹사이트가 열리지 않으면 어떻게 해야 하나요?

질의 로그를 열고 문제가 발생한 작업을 다시 수행한 다음 차단된 도메인을 찾으세요. 필터링 전체를 끄는 대신 해당 도메인만 예외로 추가하세요.