요즘 웹사이트의 광고 내용이 너무 심하다는 생각이 들어 광고 차단 프로그램을 설치했다.
환경
공유기: ipTIME A8004ITL
라즈베리파이 4: OSMC 2023.06-1
광고 차단 프로그램: Pi-Hole
OSMC 설치
Disney Plus + OSMC + 라즈베리파이 4 에서 OSMC 설치부분만 따라한다. 이미지는 항상 최신.
도커 설치
찾아보니 pihole 의 도커 이미지가 있길래 도커 이미지를 사용한다.
도커가 아니고 직접 설치하려면 참고의 사이트를 보고 한다.
도커는 패키지로 설치한다. (같은 페이지에 다른 방법도 있으니 참고한다.)
https://docs.docker.com/engine/install/debian/#install-from-a-package
각 패키지 별로 최신 버전을 다운 받아 설치한다.
$ wget https://download.docker.com/linux/debian/dists/bullseye/pool/stable/armhf/containerd.io_1.6.21-1_armhf.deb
$ wget https://download.docker.com/linux/debian/dists/bullseye/pool/stable/armhf/docker-ce_24.0.2-1~debian.11~bullseye_armhf.deb
$ wget https://download.docker.com/linux/debian/dists/bullseye/pool/stable/armhf/docker-ce-cli_24.0.2-1~debian.11~bullseye_armhf.deb
$ wget https://download.docker.com/linux/debian/dists/bullseye/pool/stable/armhf/docker-compose-plugin_2.18.1-1~debian.11~bullseye_armhf.deb
$ sudo dpkg -i *.deb
$ sudo usermod -aG docker $USER
# 재로그인
|
Pi-hole 설치
설치는 https://hub.docker.com/r/pihole/pihole 를 따라 docker-compose.yml 파일만 생성하면 된다.
필요 없어 보이는 부분은 삭제하고 포트 등은 수정했다. 윈래 내용은 위 페이지를 참고한다.
$ mkdir ~/pihole
$ cd ~/pihole
$ cat << EOF > docker-compose.yml
version: "3"
services:
pihole:
container_name: pihole
image: pihole/pihole
ports:
- "53:53/tcp"
- "53:53/udp"
- "8080:80/tcp"
environment:
TZ: "Asia/Seoul" # WEBPASSWORD: 'set a secure password here or it will be random'
volumes:
- "./etc/pihole:/etc/pihole" - "./etc/dnsmasq.d:/etc/dnsmasq.d" restart: unless-stopped
EOF
$ docker compose up -d |
문제 해결 1.
53 번 포트가 이미 사용 중이라고 나온다.
확인해보니 connman 서비스가 사용 중이다.
$ sudo netstat -ntpl | grep 53
|
connman 은 네트워크 연결을 관리해주는 서비스라 없애긴 그렇고 dns 프록시 기능만 끄도록 한다.
$ sudo sed -i 's/dnsproxy=yes/dnsproxy=no/' /etc/connman.prefs
$ sudo systemctl restart connman
$ docker restart pihole |
일단 Pi-Hole 의 dns 동작확인
OSMC 를 대상으로 다음과 같이 표시되면 문제 없다. ({} 부분은 각자에 맞게 치환)
$ nslookup www.google.com {OSMC IP 주소}
Server: {OSMC IP 주소}
Address: {OSMC IP 주소}#53
Non-authoritative answer:
Name: www.google.com
Address: 172.217.161.228
Name: www.google.com
Address: 2404:6800:400a:80b::2004
|
Pi-Hole 웹 로그인
http://{OSMC IP 주소}:8080/admin
암호 확인
$ docker compose logs pihole | grep
# 암호를 잊어버렸을 때는 docker-compose.yml 에 WEBPASSWORD 를 설정
# 또는 새로 생성
$ docker compose exec pihole pihole -a -p
|
여기부턴 잘못 설정하면 집안 전체의 인터넷이 안될 수도 있다.
바꾸기 전의 값을 잘 기록해 뒀다가 문제가 생기면 되돌리던가,
강제 리셋 시키는 방법을 알아 두는게 좋다.
Pi-Hole 설정
기본적으로는 아무 것도 안해도 동작한다.
DNS 서버가 기본으로 google 로 되어 있는데 이걸 KT 로 바꿔 줬다.
http://{OSMC IP 주소}:8080/admin/settings.php?tab=dns
Google 쪽 체크는 없애고 커스텀 쪽에 값을 추가했다. KT 의 주소는 공유기에서 복사.
Custom 1 (IPv4) Custom 1 (IPv4)
[v] [v]
[168.126.63.1] [168.126.63.2]
|
공유기의 DNS 설정 변경
공유기 관리 페이지 > 고급 설정 > 네트워크 관리 > 인터넷 설정 정보 > 다음 설정 > 설정 버튼 클릭
[v] DNS 주소 수동 입력 에 체크
기본 DNS 주소 [].[].[].[] <= {OSMC IP 주소}
보조 DNS 주소 [].[].[].[] <= 비워둔다
|
참고로 OSMC 는 서버로 동작하기 때문에 늘 IP 가 같아야 한다.
고정 IP 로 설정하거나 공유기의 DHCP 서버 설정에서 수동 주소를 설정한다.
블랙리스트 추가
https://yorublog.tistory.com/16 에서 Tip 광고가 나오나요? 부분을 따라 추가한다.
광고를 오른 클릭 > 링크 주소 복사 > https://이 사이 부분만 복사/...
http://{OSMC IP 주소}:8080/admin/groups-domains.php 에서 다음 부분에 복사해 넣고 Add to Blacklist 버튼 추가
Domain:
[aaa.bbb.ccc.com]
|
문제 해결 2.
이게 문제인지는 잘 모르겠다. 블랙리스트를 추가해도 광고가 떴다.
어디선가 설정하고 몇 분 있어야 동작한다고 했던 것 같긴한데 다음 동작을 했다.
http://192.168.192.123:8081/admin/gravity.php 에서 Update 클릭
시간이 지나서 된 건지 블록리스트를 업데이트해서 된 건지는 확실치 않다.
PS. 몇 개 더 해보니 시간이 걸리는게 맞는 것 같다.
보조 DNS 설정 추가
OSMC 는 항상 켜두기는 하는데 혹시 동작이 안되 집안의 인터넷이 안되는
사태가 발생하면 안될 것 같아 보조 DNS 는 원래 값으로 설정해 뒀다.
공유기 관리 페이지 > 고급 설정 > 네트워크 관리 > 인터넷 설정 정보 > 다음 설정 > 설정 버튼 클릭
[v] DNS 주소 수동 입력 에 체크
기본 DNS 주소 [].[].[].[] <= {OSMC IP 주소}
보조 DNS 주소 [168].[126].[63].[1] <= 기존의 기본 DNS 주소 |
참고
- https://yorublog.tistory.com/16
- https://github.com/pi-hole/pi-hole/#one-step-automated-install
- https://docs.docker.com/engine/install/debian/#install-from-a-package
- https://www.techkhoji.com/pi-hole-blocking-not-working-fix/