2018年8月11日土曜日

DNSブロックスクリプトをルーターに入れてみた。

前回WT3020Hに新しいPadavanファームウェアを書き込んだので、wgetでhttpsが使えるようになったのをいいことにDNSブロック用のadblock scriptを入れてみた。広告関連のDNSをブロックするだけでも結構な悪質な広告が消えてくので便利。
curlで構成されているスクリプトが多いんだけど、Padavanファームウェアはwgetしか使えなかったのでwget用に少し書き換えてみた。
##Online Check##
for i in `seq 0 5`
do
nslookup google.com
result=$?
  if [ $result -eq 0 ]; then
    logger "Online"
    sleep 20
    online=1
    break
  else
    logger "Offline"
    online=0
fi
sleep 5
done
if [ $online -eq 0 ]; then
  exit
fi

##Adblock##
if test -s /tmp/hosts0
then
        rm /tmp/hosts0
fi
(wget -O -  https://winhelp2002.mvps.org/hosts.txt |
    sed '2,/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
wget -O -  https://280blocker.net/files/280blocker_domain_202406.txt |
    sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
wget -O -  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 ;
wget -O -  https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt |
    sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
wget -O -  https://warui.intaa.net/adhosts/hosts.txt |
    sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
echo 127.0.0.1 duckdns.org ) | tr ' ' '\t' |
    tr -s '\t' | tr -d '\015' | sed '/^$/d' | sort -u >/tmp/hosts0
sed '/vortex.data.microsoft.com/d' /tmp/hosts0 -i
sed '/imasdk.googleapis.com/d' /tmp/hosts0 -i
grep addn-hosts=/tmp/hosts0 /etc/dnsmasq.conf ||
    echo addn-hosts=/tmp/hosts0 >>/etc/dnsmasq.conf
killall dnsmasq
/usr/sbin/dnsmasq --addn-hosts=/tmp/hosts0

これをCustomizationの中のScriptsでRun After Router Started:の下に追記すればOK。

0 件のコメント:

コメントを投稿