광고 없는 쾌적함! 나만의 사설 DNS 서버 구축으로 광고를 영원히 차단하는 방법
혹시 인터넷 서핑을 하다가 끊임없이 튀어나오는 광고 때문에 짜증 나셨던 경험 있으신가요? 팝업, 배너, 동영상 광고... 때로는 보고 싶은 콘텐츠를 가로막기까지 합니다. 시중에 많은 광고 차단 앱이나 브라우저 확장 기능이 있지만, 완벽하게 차단하지 못하거나 시스템 전반에 적용되지 않는다는 한계가 있습니다.
오늘 저는 이 모든 문제를 해결하고, 여러분의 모든 기기에서 광고를 영구적으로 차단할 수 있는 궁극적인 방법을 알려드리고자 합니다. 바로 나만의 사설 DNS 서버를 구축하는 것입니다!
이 블로그 게시물에서는 광고 차단용 사설 DNS 서버가 무엇인지, 왜 필요한지, 그리고 가장 인기 있고 효과적인 솔루션 중 하나인 Pi-hole을 이용하여 직접 구축하는 방법을 단계별로 자세히 설명해 드릴 것입니다. 이제 더 이상 광고의 노예가 되지 마세요!
1. 광고 차단용 사설 DNS, 왜 필요할까요?
인터넷에 접속할 때 우리는 도메인 이름(예: google.com)을 입력합니다. 하지만 컴퓨터는 이 도메인 이름을 이해하지 못하고, IP 주소(예: 172.217.161.46)로 변환해야만 해당 서버에 접속할 수 있습니다. 이 역할을 하는 것이 바로 DNS(Domain Name System) 서버입니다.
일반적으로 우리는 통신사에서 제공하는 DNS 서버를 사용합니다. 하지만 이 통신사 DNS 서버는 광고 서버의 IP 주소를 그대로 알려줍니다. 즉, "여기에 광고가 있으니 접속하세요"라고 안내하는 셈이죠.
사설 DNS 서버는 이 과정에서 개입하여 광고 서버의 IP 주소를 알려주지 않거나, 존재하지 않는 주소로 바꿔버립니다. 마치 "여기는 아무것도 없으니 돌아가세요"라고 말하는 것과 같습니다. 이렇게 되면 광고 서버에 접속 자체가 불가능해지므로 광고가 로드되지 않는 것이죠.
사설 DNS의 장점은 다음과 같습니다.
- 시스템 전반의 광고 차단: 특정 브라우저나 앱에 국한되지 않고, 네트워크에 연결된 모든 기기(PC, 스마트폰, 태블릿, 스마트 TV 등)에서 광고가 차단됩니다.
- 성능 향상: 광고 로딩에 필요한 대역폭과 시간을 절약하여 웹 페이지 로딩 속도가 빨라집니다.
- 개인 정보 보호: 일부 추적 광고 및 악성 도메인을 차단하여 개인 정보 유출 위험을 줄여줍니다.
- 유연한 제어: 차단 목록을 직접 관리하거나 추가하여 원하는 도메인을 차단하거나 허용할 수 있습니다.
- 악성 코드 및 피싱 방지: 알려진 악성 도메인을 차단하여 보안 위협으로부터 보호합니다.
2. Pi-hole: 우리의 광고 차단 영웅
수많은 사설 DNS 솔루션 중에서, 우리는 Pi-hole을 선택할 것입니다. Pi-hole은 가볍고 강력하며, 사용자 친화적인 웹 인터페이스를 제공하여 초보자도 쉽게 사용할 수 있습니다. 이름에서 알 수 있듯이, 라즈베리 파이(Raspberry Pi)와 같은 저전력 장치에 설치하여 운영하는 것이 일반적입니다.
Pi-hole의 주요 특징:
- 무료 오픈소스: 누구나 자유롭게 사용하고 기여할 수 있습니다.
- 시스템 리소스 효율적: 라즈베리 파이 0W와 같은 저전력 장치에서도 원활하게 작동합니다.
- 광범위한 차단 목록: 기본적으로 수많은 광고 및 추적 도메인 목록을 제공하며, 쉽게 추가 및 제거할 수 있습니다.
- 직관적인 웹 인터페이스: 차단 통계 확인, 목록 관리, 설정 변경 등을 웹 브라우저에서 편리하게 할 수 있습니다.
- DNS 쿼리 로깅: 어떤 도메인에 접근했는지, 무엇이 차단되었는지 상세하게 확인할 수 있습니다.
3. Pi-hole 구축 준비물
Pi-hole을 구축하기 위해 다음 준비물들이 필요합니다.
- 라즈베리 파이 (Raspberry Pi): Pi-hole을 설치할 본체입니다.
- 권장 모델: Raspberry Pi 3B+, 4B (성능 및 확장성 고려)
- 최소 모델: Raspberry Pi Zero W (가장 저렴하고 작지만, 성능은 다소 제한될 수 있습니다.)
- 대체 가능: 오래된 PC, 가상 머신(VMware, VirtualBox), Docker 등 Linux 기반 운영체제를 실행할 수 있는 모든 장치
- Micro SD 카드 (8GB 이상): 라즈베리 파이의 운영체제와 Pi-hole 데이터를 저장합니다. 클래스 10 이상의 빠른 속도 권장.
- Micro SD 카드 리더기: PC에 Micro SD 카드를 연결하여 이미지를 굽는 데 사용합니다.
- 라즈베리 파이 전원 어댑터: 각 모델에 맞는 정격 전원 어댑터를 사용해야 안정적으로 작동합니다.
- 이더넷 케이블 (선택 사항): 무선 LAN으로도 가능하지만, 유선 연결이 더 안정적입니다.
- PC (Windows, macOS, Linux): 라즈베리 파이 이미지 굽기, SSH 접속 등에 사용합니다.
- PuTTY 또는 SSH 클라이언트 (Windows 사용자): 라즈베리 파이에 원격으로 접속하여 명령을 입력합니다. macOS 및 Linux는 터미널 기본 지원.
- 네트워크 지식 (기본): IP 주소, 게이트웨이, DNS 개념 이해.
4. Pi-hole 구축 단계별 가이드
이제 본격적으로 Pi-hole을 구축해 봅시다!
4.1. 라즈베리 파이 OS 설치 (Raspberry Pi OS Lite 권장)
최신 Raspberry Pi OS를 Micro SD 카드에 설치해야 합니다. GUI(그래픽 사용자 인터페이스)가 필요 없으므로, 경량 버전인 Raspberry Pi OS Lite (64-bit)를 추천합니다.
- Raspberry Pi Imager 다운로드: https://www.raspberrypi.com/software/ 에서 운영체제에 맞는 Imager를 다운로드하여 설치합니다.
- Micro SD 카드 준비: Micro SD 카드를 PC에 삽입합니다.
- Imager 실행: Raspberry Pi Imager를 실행합니다.
CHOOSE OS클릭 ->Raspberry Pi OS (other)->Raspberry Pi OS Lite (64-bit)선택CHOOSE STORAGE클릭 -> Micro SD 카드 선택
- 고급 옵션 설정 (매우 중요!):
- 톱니바퀴 아이콘(⚙️)을 클릭하여 고급 옵션을 엽니다.
Set hostname:pihole(원하는 이름으로 설정)Enable SSH:Use password authentication선택Set username and password: 기본 사용자pi와 원하는 비밀번호 설정 (나중에 SSH 접속에 사용)Configure wireless LAN: Wi-Fi 네트워크 이름(SSID)과 비밀번호 입력 (유선 연결 시 생략 가능)Set locale settings: Time zone 및 Keyboard layout 설정 (선택 사항)Persist telemetry disabled: 체크 해제
WRITE클릭: 경고 메시지를 확인하고YES를 클릭하여 OS 설치를 시작합니다.
- 설치가 완료될 때까지 기다립니다.
- 설치 완료 후, Micro SD 카드를 PC에서 안전하게 분리합니다.
4.2. 라즈베리 파이 첫 부팅 및 SSH 접속
이제 Micro SD 카드를 라즈베리 파이에 삽입하고 전원을 연결하여 부팅합니다.
- 전원 연결: 라즈베리 파이에 전원 케이블을 연결하여 부팅합니다.
- IP 주소 확인: 라즈베리 파이가 부팅된 후, 공유기의 관리자 페이지에 접속하여 라즈베리 파이의 IP 주소를 확인합니다. (
pihole또는 설정한 호스트 이름으로 표시될 것입니다.)
- 팁: 만약 IP 주소를 찾기 어렵다면, Nmap 등의 네트워크 스캔 도구를 사용하거나, Pi-hole이 SSH에 성공할 때까지 기다려볼 수 있습니다.
- SSH 접속: PC에서 SSH 클라이언트를 이용하여 라즈베리 파이에 접속합니다.
- Windows: PuTTY 실행 ->
Host Name (or IP address)에 라즈베리 파이 IP 주소 입력 ->Open - macOS/Linux: 터미널 실행 ->
ssh pi@<라즈베리 파이 IP 주소>입력 - 로그인: 첫 접속 시 보안 경고가 나타나면
yes를 입력하고, 이전에 설정한 사용자 이름(pi)과 비밀번호를 입력하여 로그인합니다.
- 시스템 업데이트: 로그인 성공 후, 최신 상태를 유지하기 위해 다음 명령어를 실행합니다.
sudo apt update sudo apt upgrade -y
4.3. 라즈베리 파이 고정 IP 설정 (매우 중요!)
Pi-hole은 항상 같은 IP 주소를 가지고 있어야 합니다. 그래야 다른 기기들이 이 Pi-hole을 DNS 서버로 정확하게 지정할 수 있습니다. 가장 좋은 방법은 공유기 설정에서 Pi-hole에 할당된 IP 주소를 DHCP 예약(고정 할당)하는 것입니다.
공유기에서 DHCP 예약 설정:
- 공유기 관리자 페이지 접속: 웹 브라우저를 열고 공유기 관리자 페이지 IP 주소(보통 192.168.0.1 또는 192.168.1.1)를 입력하여 접속합니다.
- 로그인: 공유기 관리자 계정으로 로그인합니다.
- DHCP 설정으로 이동:
네트워크 설정,LAN 설정,DHCP 서버등 공유기마다 메뉴 이름이 다를 수 있습니다. - DHCP 예약/고정 할당: 라즈베리 파이의 MAC 주소와 현재 할당된 IP 주소를 이용하여 고정 IP로 설정합니다.
- 라즈베리 파이의 MAC 주소는
ip a또는ifconfig명령으로 확인 가능합니다. (예:ether b8:27:eb:xx:xx:xx) - 팁: 공유기 관리자 페이지에서
현재 접속된 기기 목록등에서 라즈베리 파이를 찾아 MAC 주소와 IP 주소를 쉽게 확인할 수 있습니다.
만약 공유기에서 DHCP 예약이 불가능하거나, Pi-hole 자체에서 고정 IP를 설정하고 싶다면 (권장하지 않음, 네트워크 설정 복잡성 증가):
sudo nano /etc/dhcpcd.conf파일을 열어 다음 내용을 추가합니다. (예시는 192.168.0.100으로 설정하는 경우)
저장 후interface eth0 # 유선 연결 시, 무선 연결 시 wlan0 static ip_address=192.168.0.100/24 static routers=192.168.0.1 # 공유기(게이트웨이) IP 주소 static domain_name_servers=127.0.0.1 # 자신을 DNS로 지정 (재귀적인 DNS 설정)sudo reboot명령으로 재부팅합니다.
4.4. Pi-hole 설치
이제 Pi-hole을 설치할 차례입니다! Pi-hole 설치는 매우 간단합니다.
- Pi-hole 설치 스크립트 실행: SSH로 접속한 라즈베리 파이 터미널에서 다음 명령어를 실행합니다.
curl -sSL https://install.pi-hole.net | bash - 설치 과정 안내: 설치 스크립트가 실행되면 화면에 나타나는 지시를 따릅니다.
- Initial Setup:
Enter를 눌러 계속합니다. - Static IP address needed:
Enter를 눌러 계속합니다. - Upstream DNS Provider: 사용할 상위 DNS 서버를 선택합니다. (예: Google, Cloudflare, Quad9 등) 개인 정보 보호에 더 신경 쓴다면 Cloudflare나 Quad9를 추천합니다.
- Blocklists: 기본 차단 목록을 사용할 것인지 묻습니다.
Enter를 눌러 기본 목록을 사용합니다. - Web Admin Interface: 웹 인터페이스 설치 여부.
Yes를 선택합니다. - Web server (lighttpd): 웹 서버 설치 여부.
Yes를 선택합니다. - Log queries: DNS 쿼리 로깅 여부.
Yes를 선택하면 어떤 도메인이 차단되었는지 확인할 수 있습니다. - Show queries in FTLDNS: 쿼리 로깅 상세 설정.
Enter를 눌러 기본값을 사용합니다.
- 설치 완료: 설치가 완료되면 Pi-hole의 IP 주소와 웹 관리 페이지 접속 정보, 그리고 초기 비밀번호가 표시됩니다. 이 비밀번호를 반드시 기록해 두세요!
5. Pi-hole 설정 및 관리
설치가 완료되면 이제 Pi-hole을 설정하고 관리해야 합니다.
5.1. Pi-hole 웹 관리 페이지 접속
웹 브라우저를 열고 다음 주소로 접속합니다.http://<라즈베리 파이 IP 주소>/admin
(예: http://192.168.0.100/admin)
접속 후, 설치 완료 시 기록해 둔 비밀번호로 로그인합니다.
5.2. 클라이언트 DNS 설정 변경
이제 네트워크의 각 기기 또는 공유기에서 DNS 서버를 Pi-hole의 IP 주소로 변경해야 합니다.
방법 1: 공유기에서 DNS 서버 변경 (권장!)
이 방법이 가장 편리하고 효율적입니다. 공유기에서 DNS 서버를 변경하면, 공유기에 연결된 모든 기기(유선, 무선)가 자동으로 Pi-hole을 DNS 서버로 사용하게 됩니다.
- 공유기 관리자 페이지 접속: 공유기 관리자 페이지에 로그인합니다.
- DNS 설정 메뉴 찾기:
인터넷 설정,WAN 설정,네트워크 설정,DNS 서버등 공유기마다 메뉴 이름이 다릅니다. - 기본 DNS 서버 변경: 공유기에서 제공하는 DNS 서버 주소를 Pi-hole의 IP 주소로 변경합니다.
- Primary DNS:
<Pi-hole IP 주소>(예: 192.168.0.100) - Secondary DNS:
<Pi-hole IP 주소>또는 0.0.0.0 (혹은 Cloudflare, Google과 같은 다른 공용 DNS 서버를 보조로 지정할 수 있으나, 이렇게 하면 Pi-hole이 제대로 작동하지 않을 수 있으므로, Pi-hole IP 주소를 한 번 더 입력하거나 비워두는 것이 좋습니다.)
- 설정 저장 및 공유기 재부팅: 설정을 저장하고 공유기를 재부팅해야 변경 사항이 적용됩니다.
방법 2: 각 기기에서 DNS 서버 변경
공유기 설정 변경이 어렵거나, 특정 기기만 Pi-hole을 사용하고 싶을 때 이 방법을 사용합니다.
- Windows: 제어판 -> 네트워크 및 공유 센터 -> 어댑터 설정 변경 -> 사용하는 네트워크 어댑터 우클릭 -> 속성 ->
인터넷 프로토콜 버전 4 (TCP/IPv4)선택 -> 속성 ->다음 DNS 서버 주소 사용선택 -> 기본 설정 DNS 서버에 Pi-hole IP 주소 입력. - macOS: 시스템 설정 -> 네트워크 -> Wi-Fi 또는 이더넷 선택 -> 세부 정보 -> DNS 탭 ->
+버튼 클릭 후 Pi-hole IP 주소 추가. - Android: Wi-Fi 설정 -> 연결된 네트워크 길게 누르기 -> 네트워크 설정 관리 -> IP 설정:
고정선택 -> DNS 1에 Pi-hole IP 주소 입력. - iOS: 설정 -> Wi-Fi -> 연결된 네트워크
i아이콘 클릭 -> DNS 구성:수동선택 -> 서버 추가 -> Pi-hole IP 주소 입력.
DNS 설정 변경 후, 반드시 기기를 재부팅하거나 네트워크 연결을 다시 시작하여 변경 사항을 적용합니다.
5.3. 추가 차단 목록 (Blocklists) 설정
Pi-hole은 기본적으로 좋은 차단 목록을 제공하지만, 더 강력한 광고 차단을 위해 추가 차단 목록을 설정할 수 있습니다.
- Pi-hole 웹 관리 페이지 로그인:
Group Management->Adlists클릭:Add a new adlist섹션:
- Address: 추가할 차단 목록의 URL을 입력합니다. (아래 추천 목록 참고)
- Comment: 해당 목록에 대한 설명을 입력합니다.
Add버튼 클릭.
Tools->Update Gravity클릭:
Update버튼을 클릭하여 추가된 차단 목록을 Pi-hole에 적용합니다. 이 과정은 시간이 다소 소요될 수 있습니다.
추천 추가 차단 목록 (Adlists):
- StevenBlack/hosts (기본 포함):
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts - OISD Basic:
https://big.oisd.nl/ - Anudeep's AdAway List:
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt - Perflyst and DOHzero's SmartTV blocklist:
https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt - HaGeZi's Multi DNS: https://github.com/hagezi/mirror (다양한 수준의 목록 제공, 필요에 따라 선택)
주의: 너무 많은 차단 목록을 추가하면 오차단(false positive)이 발생하여 일부 웹사이트가 제대로 작동하지 않을 수 있습니다. 필요한 만큼만 추가하고, 문제가 발생하면 해당 목록을 제거하거나 화이트리스트에 추가해야 합니다.
5.4. White/Black List 관리
- Whitelist (허용 목록): 특정 도메인이 오차단되어 웹사이트 접속에 문제가 생길 경우, 해당 도메인을 화이트리스트에 추가하여 차단을 해제할 수 있습니다.
Whitelist탭 ->Domain입력 ->Add to Whitelist- Blacklist (차단 목록): Pi-hole이 차단하지 못하는 특정 광고나 추적 도메인이 있다면, 블랙리스트에 직접 추가하여 차단할 수 있습니다.
Blacklist탭 ->Domain입력 ->Add to Blacklist
5.5. 기타 유용한 설정
- DNS Settings:
Settings->DNS탭에서 상위 DNS 서버를 변경하거나, DNSSEC (DNS 보안 확장)를 활성화할 수 있습니다. - Privacy:
Settings->Privacy탭에서 쿼리 로깅 수준을 조절하여 개인 정보 보호 수준을 높일 수 있습니다. - Password Change:
Settings->Web interface탭에서 Pi-hole 웹 관리 페이지 비밀번호를 변경할 수 있습니다.pihole -a -p명령어를 터미널에서 실행하여 변경할 수도 있습니다.
6. 문제 해결 및 팁
- 광고가 여전히 보인다면:
- DNS 설정이 제대로 변경되었는지 확인합니다.
- 브라우저 캐시 및 DNS 캐시를 지웁니다.
pihole -t명령을 통해 Pi-hole의 로그를 실시간으로 확인하여 해당 광고 도메인이 차단되고 있는지 확인합니다. 차단되지 않았다면 블랙리스트에 추가합니다.- 너무 많은 차단 목록을 추가하지 않았는지 확인하고, 충돌하는 목록이 없는지 확인합니다.
- 웹사이트 접속 오류 (오차단):
- Pi-hole 웹 관리 페이지의
Query Log에서 접속 실패한 웹사이트 관련 도메인을 찾습니다.Status가Blocked (gravity)로 되어 있다면, 해당 도메인을 화이트리스트에 추가합니다. - Pi-hole 업데이트:
명령으로 Pi-hole 소프트웨어를 최신 버전으로 업데이트할 수 있습니다.pihole -up - 라즈베리 파이 백업:
- Micro SD 카드는 수명이 있으므로, 주기적으로 라즈베리 파이 OS와 Pi-hole 설정을 백업해두는 것이 좋습니다. Imager의
Backup OS기능을 사용하거나,pihole -a -t명령으로 teleporter 백업을 생성할 수 있습니다.
7. 마무리하며
이제 여러분은 자신만의 강력한 광고 차단 시스템인 사설 DNS 서버, Pi-hole을 성공적으로 구축했습니다! 앞으로 인터넷을 사용하면서 훨씬 더 쾌적하고 안전한 환경을 경험하게 될 것입니다.
Pi-hole은 단순히 광고를 차단하는 것을 넘어, 여러분의 네트워크 트래픽을 이해하고 제어할 수 있는 강력한 도구입니다. 이 블로그 게시물에서 다룬 내용을 바탕으로 Pi-hole의 다양한 기능을 탐색하고, 여러분의 네트워크 환경에 최적화된 설정을 찾아보세요.
광고 없는 세상을 즐기세요!