Přímé formátování funguje, jen mu chybí na začátku souboru řádek "server:".
#!/bin/sh
echo "server:" > /mnt/ssd/etc/ad_servers.conf
curl -s "http://pgl.yoyo.org/as/serverlist.php?hostformat=unbound&mimetype=plaintext" | grep -vf /mnt/ssd/etc/ad_whitelist.txt >> /mnt/ssd/etc/ad_servers.conf
cat /mnt/ssd/etc/ad_blacklist.txt | sed 's/.*/local-zone: "&." redirect\nlocal-data: "&. IN A 127.0.0.1"/' >> /mnt/ssd/etc/ad_servers.conf
/etc/init.d/unbound reload
Chtěl bych upozornit na zajímavý aspekt výše popsaného řešení (blokace ad-serverů na úrovni DNS).
Udělal jsem to obdobně (tj. vracím na podobné dotazy adresu 127.0.0.1) a přestalo mi fungovat HbbTV České televize (televize využívá rovněž připojení přes Turris, včetně DNS resolveru).
Dlouhým hrabáním v tcpdumpech jsem zjistil, že ta HbbTV stránka, co si televize stahuje ze serveru ČT, volá následně skripty/data ze zablokovaných serverů:
www.google-analytics.com
spir.hit.gemius.pl
ls.hit.gemius.pl
Od Turrise se dozví, že uvedené servery mají adresu 127.0.0.1 a to, kupodivu, zablokuje/zhroutí celé další zpracování té HbbTV stránky - červený puntík prostě nefunguje. Už jsem se smiřoval s tím, že zrovna tyhle servery budu muset (velmi nerad) odblokovat. Následně jsem ale experimentálně ověřil, že blokovat lze ale jinak. Když televizi místo adresy 127.0.0.1, kde nejspíš při pokusu o http připojení dostane RST nebo skončí timeoutem, podstrčím adresu s běžícím http serverem (já vracím vnitřní adresu Turrise), kde dostane klasické 404 - Not found, tak HbbTV překvapivě začne fungovat.
Neodhadnu, jestli popsané chování souvisí více se způsobem jak je napsaná ta HbbTV stránka České televize, nebo tím jak ji televizní firmware zpracovává. Popsané chování jsem vyzkoušel na televizi LG 42LS570, s aktuální verzí firmware.
Vedlejším efektem (nastavením zpracování chyby 404 na Turrisu) může být navíc i statistika zablokovaných reklam.