Raspberry Piで広告ブロックDNSサーバーを立てる方法
1: dnsmasqをインストールする
1 |
sudo apt install dnsmasq |
2: dnsmasqを設定する
1 |
sudo echo 'conf-file=/etc/dnsmasq.adblock.conf' >> /etc/dnsmasq.conf |
3: DNSサーバーを設定する
1 2 |
# これを追記してDNSサーバーを指定する static domain_name_servers=8.8.8.8 8.8.4.4 |
もし固定IPアドレスにしていないならここで設定する必要あり。
4: 広告ブロックする設定ファイルを書き出すスクリプトを設定する
以下のスクリプトを/usr/local/bin/gen_adblock_conf
に置く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash HOSTS_SOURCES=( \ 'https://sites.google.com/site/hosts2ch/ja' \ 'https://warui.intaa.net/adhosts/hosts_lb.txt' \ 'http://winhelp2002.mvps.org/hosts.txt' \ 'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext' \ 'https://raw.githubusercontent.com/AdAway/adaway.github.io/master/hosts.txt' \ ) DNSMASQ_CONF='/etc/dnsmasq.adblock.conf' TMPFILE=$(mktemp) for source in ${HOSTS_SOURCES[@]}; do curl -s $source \ | sed -n -E 's|^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ ([^ \f\n\r\t]+).*$|address=/\1/0.0.0.0|gp' \ | grep -v localhost >> $TMPFILE done cat $TMPFILE | sort | uniq > "$DNSMASQ_CONF" rm -f $TMPFILE |
忘れずに実行権限を付与しておく。
1 |
sudo chmod +x /usr/local/bin/gen_adblock_conf |
定期的に更新するためにcronを設定する。
1 |
sudo crontab -e |
1 |
@daily /usr/local/bin/gen_adblock_conf |
初回は手動で実行しておく。
1 |
gen_adblock_conf |
5: 再起動する
1 |
reboot |
6: ルーターを設定する
ルーターのDHCPサーバーの設定を変更して、DNSサーバーをraspberry piにしておく。
これで自宅限定ながらスマホ広告をブロックすることができます。
パソコンもできるけど、ブラウザの拡張機能で間に合ってるから大したことないよね。