この前ルーターが壊れて更新したので、前のルータでやっていたことを思い出しながら元に戻してくことに。壊れたルータにはアクセスできないし…
その一つがDNSブロッカー。広告をブロックするためにDNSをブロックしてしまうやつ。仕組み的にはhostsファイルにブロックしたいDNSを127.0.0.1に飛ばすように設定するやつ。
元々シェルスクリプトで定期実行していたので記憶を頼りに探してみたところ、DD-WRTのフォーラムにそれっぽいスクリプトが。今回はこれをベースにカスタマイズして見ることに。
WZR-1750DHP2はフラッシュ領域がたくさんあるので、JFFS2 SupportとSSHを有効にしてWinSCPなどを使ってSCPでアクセス。
/jffs/にadblock.shというファイルを作って、パーミッションを755に設定。
#!/bin/sh logger WAN up script executing if test -s /tmp/hosts0 then rm /tmp/hosts0 fi logger Downloading http://www.mvps.org/winhelp2002/hosts.txt (curl -k -s https://winhelp2002.mvps.org/hosts.txt | sed '2,$s/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' | grep -v localhost ; curl -k -s https://280blocker.net/files/280blocker_domain_$(date +"%Y%m").txt | sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' | grep -v localhost ; #curl -k -s https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardDNS.txt | # sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' | # grep -v localhost ; #curl -k -s https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt | # grep "^||" | grep -v "*" | sed 's/||/127.0.0.1 /g'| tr -d '^'; curl -k -s https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardMobileAds.txt | sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' | grep -v localhost ; #curl -k -s https://raw.githubusercontent.com/multiverse2011/adawaylist-jp/master/hosts | # sed 's/127.0.0.1/127.0.0.1/g; s/[[:space:]]*#.*$//g;' | # grep -v localhost ; curl -k -s https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt | sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' | grep -v localhost ; curl -k -s https://warui.intaa.net/adhosts/hosts.txt | sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' | grep -v localhost ; ### Extra blocking dns ### echo 127.0.0.1 adm.shinobi.jp ) | tr ' ' '\t' |
tr -s '\t' | tr -d '\015' | sed '/^$/d' | sort -u >/tmp/hosts0 ### Extra blocking dns end ### ### White List ### sed '/vortex.data.microsoft.com/d' /tmp/hosts0 -i ### White List end ### grep addn-hosts /tmp/dnsmasq.conf || echo "addn-hosts=/tmp/hosts0" >>/tmp/dnsmasq.conf logger Restarting dnsmasq killall dnsmasq dnsmasq --conf-file=/tmp/dnsmasq.conf
こんな感じに設定して保存。
いろんなDNSブロックリストを使えるようにしてみた。追加でDNSを手動でも入れられる。ここにローカルのサーバのIPとかを入れると外部向けのドメイン名でローカル鯖にアクセスしたりもできるので便利かも。
あとはcronでこのスクリプトを定期的に実行するだけ。
使ってないような時間帯に毎日更新するようにしてみた。とりあえずこれを設定しておくとFireTV StickのTVerの広告も消え去るんだよなぁ。
あとはスマホ向けのヤヴァい広告が消えるのでスッキリ。スマホとかタブレットをWiFiで使うときはすごく見やすくなる。
追記:Xbox Liveの実績解除のためにWhite Listも実装しました。
0 件のコメント:
コメントを投稿