Hemsida » hur » Så här tar du bort annonser med Pixelserv på DD-WRT

    Så här tar du bort annonser med Pixelserv på DD-WRT

    Det finns många sätt att blockera annonser i din webbläsare, men vad händer om du kan blockera dem på routern? Så här använder du DD-WRT-firmware och avsiktlig "DNS-förgiftning" för att blockera annonser för varje enhet i ditt nätverk.

    Översikt

    Uppdatering: Guide uppdaterad för att återspegla feedback från kommenterare och uppdaterade anti-annonspaketet med den nyare pixel-servern som körs och en changelog.

    Den första frågan om allas sinne just nu är "varför inte bara använda ad-block?"

    För många människor finns det helt enkelt ingen anledning, särskilt med Chromes nya förmåga att replikera de tillägg du använder till varje dator som du kör krom på.

    Svaret ligger någonstans mellan det reducerade priset på att inte behöva lära alla användare på ditt nätverk om ad-block (jag pratar med dig mamma, sis, granny och kontorsekreterare) och bekvämligheten att inte vara störd av den varje dator du installerar. Det förutsätter att det kommer att finnas vissa datorer i ditt nätverk som du inte kommer att konfigurera din personliga miljö på (till exempel "core servers" eller VMs).

    Notera: Även om jag använder metoden nedan på min hemrouter hittade jag ad-block för att vara ett utmärkt komplement till det, och jag rekommenderar att du använder båda metoderna i samband. även om du inte har en DD-WRT-router med ad-block, är det tillräckligt med dem. Faktum är att jag gillar programmet så mycket, jag donerade till sin utvecklare och jag uppmuntrar alla att göra det för att hålla det utvecklingsarbete.

    Hur fungerar det?

    I huvudsak fungerar detta genom att avsiktligt förgifta vår DNS för att returnera en specifik IP för domäner i en obehörig lista. Den här icke godkända listan innehåller domännamn på webbplatser som är ansvariga uteslutande för att leverera annonsinnehåll, så vi kommer inte att sakna dem mycket.

    Vi kommer att konfigurera en sekundär HTTP-server på routern för att servera en transparent en pixelbild, som svaret för eventuella URL-förfrågningar. I samband med DNS-lösningen "fel" kommer det att leda till att nätverksklienterna begär innehållet från vår interna pixelserver och får en blank bild som svar.

    För att generera den ej godkända listan skapar vi en personlig lista i samband med två dynamiskt nedladdade listor. De dynamiska listorna är MVPS-värdfilen och Yoyo-domänlistan, tillsammans har de en mycket omfattande lista över annonswebbplatser. Genom att utnyttja dessa listor är vi skyldiga att bara lägga till delta på webbplatser som inte redan finns i någon av dem, i vår personliga lista.

    Vi kommer också att ställa in en "vitlista" för domäner som vi inte vill bli blockerade av någon anledning.

    Förutsättningar och antaganden

    • Tålamod ung, det här är en lång läsning.
    • Denna procedur skapades och testades på DD-WRT (v24pre-sp2 10/12/10 mini r15437), som sådan bör du redan ha den här versionen eller senare installerad på din router för att kunna använda den. Mer information finns på DD-WRT-webbplatsen.
    • För att underlätta förklaringar skull antas att routern har återställts till "fabriksinställningar" eller att de inställningar som används inte har ändrats från sina förinställningar för "ut ur rutan" sedan dess.
    • Klientdatorn använder routern som DNS-servern (det här är standard).
    • Utrymme för JFFS (när det är tveksamt, rekommenderar jag att du använder mini version av DD-WRT).
    • Det antas att ditt nätverk är * redan inställt och att det är en klass C (en som har ett delnät på 255.255.255.0) som den sista IP på det klass C-nätverket (x.y.z.254) Kommer att tilldelas för pixel-server-programmet.
    • Viljan att installera winSCP.

    * Skriptet kommer inte att kunna justera blocklistorna efter första körningen till nästa uppdateringscykel (3 dagar).

    Credits

    Uppdatering: Särskilt tack till "mstombs" för den stora delen av C-koden utan hans arbete skulle allt detta inte vara möjligt, "Oki" för att sammanställa Atheros-kompatibla versionen och citatet ;-) och "Nate" för att hjälpa till med QA-ing.

    Medan det fanns mycket arbete för att perfekta denna procedur vid slutet, inspirerades den av killarna över på DD-WRT forumet och några av grunden till denna handbok finns på "ad blocking with DD- WRT revisited (simple) "," pixelserv utan Perl, utan några jffs / cifs / usb gratis "och" Flexion.Org Wiki på DNSmasq "liksom andra.

    Kan få sprickbildning

    Aktivera SSH för SCP-åtkomst

    Genom att aktivera SSH, ger vi oss själva möjligheten att ansluta till routern med hjälp av SCP-protokollet. med det aktiverat kan vi sedan använda winSCP-programmet för att visuellt navigera i routerns mappstruktur (som vi kommer se senare).

    För att göra detta, använd webGUI, gå till fliken "Tjänster". Hitta avsnittet "Säkert skal" och klicka på "Aktivera" -knappen för SSHd-inställningen.

    När det är klart borde webGUI se nedan och du kan klicka på "Spara" (inte gäller ännu).

    Aktivera JFFS

    För att göra denna inställning på ett sätt som skulle vara stabil, reproducerbar och * vara en "bra internet medborgare", kommer vi att använda JFFS för att lagra så mycket av konfigurationerna som möjligt. Det finns andra sätt att göra detta utan att aktivera JFFS, om du inte kan på grund av rymdbegränsningar, men de omfattas inte här.

    * Andra metoder har din router ladda ner pixel-servern körbara och dynamiska listor varje gång manuset körs. eftersom detta sätter på servrarna som håller listorna och körbar och det kostar pengar till någon, försöker denna metod att undvika det om det är möjligt.

    Om du inte redan vet vad JFFS är, bör den här förklaringen från DD-WRTs wiki-post om JFFS rensa upp saker:

    Journals Flash File System (JFFS) låter dig ha ett skrivbart Linux-filsystem på en DD-WRT-aktiverad router. Den används för att lagra användarprogram som Ipkg och data till annars otillgängligt flashminne. Detta gör att du kan spara anpassade konfigurationsfiler, värd anpassade webbsidor som är lagrade på routern och många andra saker som inte kan användas utan JFFS.

    För att aktivera JFFS på din router, gå till fliken "Administration" och hitta JFFS-avsnittet. bilden nedan visar var du skulle hitta det här avsnittet på fliken Administration.

    I JFFS2 Support-sektionen klickar du på "Aktivera" -knapparna för "JFFS2" och (när det visas) "Rensa JFFS2" -inställningarna. När du väl valt, klicka på "Spara".

    När inställningarna har sparats, fortfarande på fliken "Administration", starta om routern med hjälp av knappen "Reboot Router". Detta kommer att tillämpa inställningarna och utföra det nödvändiga "formatet" av JFFS "partitionen".

    När webGUI kommer tillbaka från omstart till fliken "Administration", vänta ytterligare en halv minut och uppdatera sidan.

    Om du lyckas bör du se att ditt JFFS-fäste har lite ledigt utrymme som på bilden.

    Pixelserverinställningar

    Hämta och extrahera anti-annonspaketet för dd-wrt zip-arkiv som innehåller pixel-serverns körbarhet (vi tar inte kredit, bara undviker "heta länkar"), ad blockeringsskriptet (skrivet av er verkligen) domänlista skapad av "Mithridates Vii Eupator" och I.

    Det är dags att hämta filerna i JFFS-monteringen på routern. För att göra detta, installera winSCP (det är en "nästa -> nästa -> finish" typ av en inställning) och öppna den.

    I huvudfönstret fyller du i informationen så här:

    Värdnamn: din routerens IP (standard är 192.168.1.1)

    Portnummer: lämnas oförändrat kl. 22

    Användarnamn: rot (även om du ändrade användarnamnet för webGUI, kommer SSH-användaren alltid att vara * root *)

    Privat nyckelfil: lämna blank (detta är bara nödvändigt när du skapar en nyckelparbaserad autentisering som vi inte har)

    Filprotokoll: SCP

    Vi måste också inaktivera "Lookup user group" som visas nedan (tack mstombs för att peka ut detta) eftersom winSCP förväntar sig en fullblåst Linux på andra sidan, som DD-WRTs utvecklare trots allt utmärkt arbete inte kunde tillhandahålla (främst för att det helt enkelt inte finns tillräckligt med utrymme). Om du lämnar det här kommer du att stöta på skrämmande meddelanden när du ansluter och sparar redigerade filer.

    Välj Advance och avmarkera sedan "Sök användargrupper".

    Medan det är valfritt kan du välja att spara inställningarna nu för senare användning. Om du väljer att spara inställningarna som rekommenderas, rekommenderas det också (trots de direkta skrik från den "säkerhetsparanoida" asyl som vi avskyr existensen av SSH) att du sparar lösenordet.

    Då ser ditt huvudfönster ut på bilden, och allt du behöver göra för att ansluta till routern är dubbelklick på posten.

    Eftersom detta är första gången du kommer att ansluta till routern frågar winSCP om du är villig att lita på fingeravtryck på andra sidan. Klicka på "Ja" för att fortsätta.

    DD-WRTs utvecklare har implementerat ett banner välkomstmeddelande med lite info om den fasta programvaran du har installerat. en gång röd, klicka på "Visa aldrig den här bannern igen" kryssrutan och "Fortsätt".

    När du är ansluten, navigera dig till mappen på toppnivå (AKA root "/") och gå tillbaka till "/ jffs" eftersom det är den enda permanent skrivbara platsen på routerns filsystem ("/ tmp" överlever inte omstart och resten är skrivskyddade).

    Skapa en ny mapp genom att trycka på F7 eller högerklicka på en tom plats, sväng över "Ny" och klicka på "Katalog".

    Namn den nya katalogen "dns". vi skapar den här katalogen för att hålla saker i jffs-katalogen organiserade för framtida bruk och eftersom vi för det mesta ändrar hur DNS-tjänsten fungerar.

    Kopiera "pixelserv" och "disable-adds.sh" -filerna från zip-arkivet anti-ads-pack-for-dd-wrt genom att markera dem (använd "insert" -knappen), trycka på "F5" och sedan "Kopiera ”.

    Obs! Om din router är Atheros-baserad (du kan kolla detta på DD-WRT-wiki) måste du använda pixelserv_AR71xx som tillhandahålls av Oki och ingår i paketet och byta namn på det till "pixelserv" innan du fortsätter.

    När filerna är på routern måste vi göra dem körbara genom att välja dem (använd igen "insert") högerklicka och sedan "egenskaper".

    På egenskapsfönstret klickar du på "X" för "Ägare" raden. som kommer att ge filerna exekveringsbehörigheter.

    Router inställningar

    Nu när scenen är inställd kan vi berätta för routern att köra adblockeringsskriptet vid start.
    För att göra detta, gå till webGUI på fliken "Administration" och sedan på "Kommandon" fliken.

    I textrutan "Kommandon" skriver du skriptets läge som "/jffs/dns/disable_adds.sh", som i bilden och klickar sedan på "Spara starta".

    Om du lyckas ska du se att skriptet har blivit en del av routerns uppstart som på bilden ovan.

    Ställa in listan Personliga blockerade domäner (Valfritt)

    Med den här listan kan du lägga till domäner till de ej godkända listorna, om du upptäcker att de två dynamiska listorna inte fångar något.
    För att göra detta finns det två alternativ, och de fungerar tillsammans så att du kan använda båda enligt vad som är mer bekvämt för dig.

    Notera: De syntax är viktigt, Eftersom vi faktiskt skapar konfigurationsdirektiv att DNSMasq daemon (processen som är ansvarig för DNS-namn till IP-översättningar) kommer att användas direkt. Som sådan kommer felaktig syntax här att få tjänsten att krascha och låta routern inte kunna lösa IP-adresser för domännamn (du har blivit uppmanad).

    För att hitta de förekommande domännamnen som blockerar kan du använda guiden "Hitta de hemliga meddelandena i webbplatshuvuden" som en primer. Stegen för att hitta namnen på annonsdomänerna är praktiskt taget desamma, bara att i det här fallet letar du efter en adress istället för ett meddelande.

    Den första och givetvis mer tillgängligt sätt är att sätta listan i konfigurationsrutan "DNSMasq" i vägGUI. Detta beror på att man kan lägga till den här listan genom att enkelt komma åt webGUI istället för att behöva gå "under huven" för att göra ändringar.

    Gå till fliken "Tjänster", hitta avsnittet "DNSMasq" och där hittar du "Ytterligare DNSMasq Options" textrutan.

    I den här textrutan anger du listorna med domäner som du vill blockera med syntaxen "adress = / domännamn-till-block / pixel-server-ip" som visas på bilden nedan:

    I det här exemplet är "192.168.1.254" den IP som genereras för pixel-servern baserat på nätverksadressen för ditt LAN. Om din nätverksadress är något annat än 192.168.1.x måste du justera adressen för pixel-servern i enlighet med detta.

    När du är klar klickar du på "Spara" längst ner på sidan (gäller inte ännu).

    Den andra Alternativet är att förena listan över domäner som du vill blockera, till den "personal-ads-list.conf" -filen som jag och Mithridates Vii Eupator har samlat. Den här filen är en del av zip-arkivet du hämtade tidigare och det är en bra start för båda metoderna.

    För att använda den, använd vid behov din favorittextredigerare för att justera pixel-serverns IP (samma begränsningar som ovan gäller här). Kopiera sedan det enkelt till katalogen "/ jffs / dns" som du har de andra filerna. När det är där kan du använda winSCP för att redigera det och lägga till domäner.

    Ställa in vitlistan

    Detta är listan över domäner som kommer att utelämnas från de dynamiska "värdarna" och "domänerna" listorna.

    Detta är nödvändigt för att helt enkelt blockera vissa domäner orsakar att webbplatser använder dem till funktionsfel. det mest anmärkningsvärda exemplet är "google-analytics.com".

    Om vi ​​blockerar domänen ändras inte det faktum att webbplatser som använder det, har din webbläsare hämta en JavaScript som körs på händelser som att lämna en sida. Det betyder att för en sådan webbplats kommer din webbläsare att försöka "ringa hem" genom att kontakta google-domänen, förstår inte svaret och du måste vänta tills skriptet går ut för att fortsätta till nästa sida. Det är knappast en trevlig surfupplevelse och det är därför som alla domäner som innehåller "google-analytics" och "googleadservices" är * hårdkodade undantagna från filtrering.

    Denna lista är skapad för dig med ovan nämnda nämna domäner, när man kör skriptet för första gången under katalogen "/ jffs / dns".

    För att använda vitlistan, öppna filen med winSCP och **perpend till listan domänerna du vill ha utesluten, samtidigt som du är försiktig med att inte lämna några tomma linjer (lämnar en tom linje raderar alla domäner från alla listor).

    * Medan manuset skapar vitlistan med domänerna inom den första loppet, insisterar det INTE på deras presenter för framtida körningar. så om du känner att Google ska blockeras trots de ovan nämnda problemen kan du ta bort domänerna från vitlistan.

    ** Du måste ange de nya domänerna du vill ha i början av listan. Det här beror på en bugg med hur bash tolkar nya linjer ... ledsen jag har inte ett jobb för det ännu.

    Avrättning

    Det här är det, det är äntligen dags att åberopa manuset och se resultaten genom att helt enkelt starta om routern.

    För att göra detta från webGUI, gå under "Administration" fliken tillbaka till "Management", längst ner på sidan klicka på "Starta om router" och vänta på att routern ska komma tillbaka.

    Det kan ta ett par minuter för manuset att utföra sina uppgifter för första gången.

    På WRT54Gx-typen av routrar kommer du att veta när manuset har slutförts, eftersom det kommer att blinka Cisco orange-LED på framsidan av routern (andra routrar ska ha ett liknande "tell tail" -tecken).

    Uppdatering: Den här delen avlägsnades efter det att det upptäcktes att det var en agnostisk funktion utan hårdvara.

    När vi försöker se frånvaron av element på webben, rekommenderar jag att du surfar på ett par webbplatser för att se påverkan.

    Men om du vill se till att proceduren har lyckats är det första felsökningssteget i felsökningssektionen ett bra ställe att börja med.

    * Det har faktiskt kommenterats så att du kan återställa det om du är säker på att det inte kommer att orsaka problem med installationen.

    Njut av!


    Felsökning

    Om du stöter på problem finns det ett par saker du kan göra för att kontrollera vad som gick fel.

    1. Testa att annonsdomänen är löst till Pixelserv IP.
      Du kan göra detta genom att utfärda kommandot nslookup mot domänen "kränkande". Till exempel är "ad-emea.dubleclick.com" en del av de blockerade värdarna från den personliga listan. Genom att utfärda "nslookup ad-emea.dubleclick.com" i en kommandotolk ska resultatet se ut:

      Där ett normalt obegränsat svar skulle se ut:

    2. Gör om.
      För att försäkra dig om att ingenting med routerns inställning bryter mot konfigurationen av annonsblocket, återställ routern till "Fabriksinställningar" och försök igen. När din framgångsrik lägger till dina anpassade ändringar i hopp om att de inte kolliderar igen.
    3. Kontrollera att din klient använder routern som DNS.
      Speciellt när du använder en VPN eller ett nätverk som är mer komplext än den normala routern till datorinstallation, är det möjligt att din klientdator helt enkelt inte använder routern som sin DNS. Det är mycket lätt att se i kommandot ovan vad är DNS-servern som klienten använder, om IP inte är samma som routern, har du hittat problemet.
    4. Rensa dina personliga maskiner DNS-cacheminne.
      Det beror på att annars kan du fortfarande se annonserna till den webbplats du prövar med, helt enkelt för att din dator redan vet hur man får annonsinnehållet på egen hand utan att konsultera DNS för den. I Windows skulle detta vara "ipconfig / flushdns".
    5. Stäng webbläsaren.
      Ibland håller webbläsaren informationen cachad, så att det inte hjälper att rensa DNS-cachen som visas ovan.
    6. När du är osäker på omstart.
      Ibland kan cacharna kvarstå och det bästa sättet att bli av med dem är att starta om. Börja med routern och om problemet kvarstår, klientdatorn.
    7. Använd syslog.
      Du kan aktivera routerns syslog-demon och sedan titta på meddelandena för att se om skriptet stöter på några problem genom att undersöka sina meddelanden. Även skriptet lägger till några kommandoalias för att göra felsökningen enklare.
      För att göra detta, gå till fliken "Tjänster" och aktivera syslog-demonen som på bilden nedan:

      Obs! "Fjärrserveren" används när du har en syslog-lyssningsserver på en annan maskin (som med kiwi) Om du inte har en, lämna det helt tomt.

      När du har aktiverat kan du se felsökningsmeddelandena genom att titta på / var / logs / meddelanden fil i en terminal.
      * För att se alla meddelanden från start-up kan du använda "more / var / log / messages".
      * För att bara se meddelandena från skriptet i loggen använd "clog" alias.
      * För att se meddelandena när de kommer in, använd realtid "tail -f / var / log / messages" eller med dess alias "tlog".
    8. Förstå manuset.
      Trots att jag har gjort denna YouTube-video för en äldre version av den här guiden och manuset, innehåller det fortfarande många sanningar och förklaringar som kan användas för hur den nya och förbättrade versionen fungerar.
    Ladda ner anti-annonser-paketet.

    Kan routerns gud vara till din fördel