- Registriert
- 21.07.07
- Beiträge
- 348
Ich hatte keine Lust mehr, mich bei verschiedenen Browsern um verschiedene Adblocker-Plugins mit verschiedenen Listenformaten und so weiter zu kümmern.
Es geht auch viel, viel einfacher: Einfach alle Werbedomains systemweit unerreichbar machen.
Was braucht man?:
-Curl (Ist aber schon installiert.)
-Rootrechte.
Vorteile:
-Sehr schnelles Blocking. Egal, wie lang die Liste ist.
-Gilt für das ganze System. Kein Programm kann mehr Werbung von den eingetragenen Servern empfangen, wenn es die entsprechende Domain anfragt.
Nachteile:
-Wenn meine Lieblingsnewsseite www.news.de ist und dort Werbebanner von www.news.de/werbung eingeblendet werden, dann kann ich die Banner mit dieser Methode nicht getrennt vom Rest der Seite blockieren.
Diese Methode ist also nur gut, um NUR-Werbeserver, auf denen es sonst nichts interessantes gibt aus seiner persönlichen Surfwelt zu verbannen.
Wie funktioniert das hier beschriebene Prinzip allgemein?
Alle DNS-Anfragen an Werbehosts, die beispielsweise entstehen, wenn ein Werbebanner geladen werden soll, werden einfach zu einem Dead-End geleitet. Keine Werbung mehr anzeigbar.
Die Umleitung erfolgt geregelt von Einträgen der Serverdomains in der Datei /etc/hosts.
Wenn eine Domain im Browser eingegeben wird, dann holt sich jener erst einmal die IP-Adresse des Servers und übergibt dabei einem sogenannten Domain Name Server den Domainnamen, für den eine IP-Adresse hinterlegt ist.
Wenn allerdings die geforderte Domain bereits in der Datei /etc/hosts steht (Was unter allen möglichen UNIX-artigen Betriebssystemen so ist - d.h. dieses Tutorial ist auch ohne Änderungen für GNU/Linux und *BSD-Systeme nutzbar), dann wird keine DNS-Anfrage mehr aufgegeben und sofort die vorhandene Adresse genutzt. In unserem Fall: "localhost". Das ist der eigene Rechner, unter dem die Werbung schlichtweg nicht erreichbar ist.
Dazu holen wir uns eine Liste bekannter Werbeserver aus dem Internet.
Was muss getan werden?
Wir öffnen das Terminal. Nun geben wir ein:
Hierbei holt das Progrämmchen Curl uns nun eine Liste aus einem Werbeserververzeichnis im richtigen Format und die Bash leitet die Ausgabe so um, dass die Ergebnisse einfach an die Datei /etc/hosts angehängt werden.
Die Originaldatei /etc/hosts geht dabei nicht kaputt, solange man ZWEI MAL das ">" Zeichen verwendet. Wie beschrieben. Wenn es nur einmal angegeben wird bei dem Terminalaufruf, dann ist der bisherige Inhalt verloren. Es kann mal passieren, dass man müde oder besoffen das Zeichen nur einmal angibt, daher lohnt sich vorher ein kurzes
immer.
Wenn alles richtig gemacht wurde, dann können Werbeserver, die in der Liste enthalten sind, jetzt schon nicht mehr erreicht werden. Einfach so, als gäbe es sie nicht.
Die Liste ist allerdings nicht von Deutschen Usern zusammengetragen worden, weswegen ein jetzt gerade erfundener, aber angenommenerweise typischer und bekannter Werbeserver von Wegen www.werbeserver.de nicht darin aufgelistet ist.
Das können wir einfach nachholen:
Und schon ist der auch nicht mehr zu erreichen.
Allerdings habe ich ihn hier in diesem Beispiel einmal mit "www." und einmal ohne angegeben, weil manche Anfragen mal mit "www." und manche ohne sein werden und das beides unterschiedlich gehandhabt wird.
Kann ich einfach wild alle möglichen Domains angeben?
Ja. Wenn man Pokémon hasst und einfach ganz frech allen Mitbenutzern des Computers verbieten will, www.pokemon.de anzusurfen, dann trägt man die Domain ein und gut ist. Wer die IP-Adresse der Domain kennt, kommt trotzdem drauf, aber das ist meistens nicht der Fall.
Die Liste muss in dem Format sein:
Und schon wird es richtig interpretiert.
Problemlösungen:
Curl ist nicht installiert! Einfach mal schauen, woher man das bekommt.
Die Rootrechte fehlen. Vorher einfach mal eben "sudo su" eingeben und schon ist man Root.
Es geht auch viel, viel einfacher: Einfach alle Werbedomains systemweit unerreichbar machen.
Was braucht man?:
-Curl (Ist aber schon installiert.)
-Rootrechte.
Vorteile:
-Sehr schnelles Blocking. Egal, wie lang die Liste ist.
-Gilt für das ganze System. Kein Programm kann mehr Werbung von den eingetragenen Servern empfangen, wenn es die entsprechende Domain anfragt.
Nachteile:
-Wenn meine Lieblingsnewsseite www.news.de ist und dort Werbebanner von www.news.de/werbung eingeblendet werden, dann kann ich die Banner mit dieser Methode nicht getrennt vom Rest der Seite blockieren.
Diese Methode ist also nur gut, um NUR-Werbeserver, auf denen es sonst nichts interessantes gibt aus seiner persönlichen Surfwelt zu verbannen.
Wie funktioniert das hier beschriebene Prinzip allgemein?
Alle DNS-Anfragen an Werbehosts, die beispielsweise entstehen, wenn ein Werbebanner geladen werden soll, werden einfach zu einem Dead-End geleitet. Keine Werbung mehr anzeigbar.
Die Umleitung erfolgt geregelt von Einträgen der Serverdomains in der Datei /etc/hosts.
Wenn eine Domain im Browser eingegeben wird, dann holt sich jener erst einmal die IP-Adresse des Servers und übergibt dabei einem sogenannten Domain Name Server den Domainnamen, für den eine IP-Adresse hinterlegt ist.
Wenn allerdings die geforderte Domain bereits in der Datei /etc/hosts steht (Was unter allen möglichen UNIX-artigen Betriebssystemen so ist - d.h. dieses Tutorial ist auch ohne Änderungen für GNU/Linux und *BSD-Systeme nutzbar), dann wird keine DNS-Anfrage mehr aufgegeben und sofort die vorhandene Adresse genutzt. In unserem Fall: "localhost". Das ist der eigene Rechner, unter dem die Werbung schlichtweg nicht erreichbar ist.
Dazu holen wir uns eine Liste bekannter Werbeserver aus dem Internet.
Was muss getan werden?
Wir öffnen das Terminal. Nun geben wir ein:
Code:
curl "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=&mimetype=plaintext" >> /etc/hosts
Hierbei holt das Progrämmchen Curl uns nun eine Liste aus einem Werbeserververzeichnis im richtigen Format und die Bash leitet die Ausgabe so um, dass die Ergebnisse einfach an die Datei /etc/hosts angehängt werden.
Die Originaldatei /etc/hosts geht dabei nicht kaputt, solange man ZWEI MAL das ">" Zeichen verwendet. Wie beschrieben. Wenn es nur einmal angegeben wird bei dem Terminalaufruf, dann ist der bisherige Inhalt verloren. Es kann mal passieren, dass man müde oder besoffen das Zeichen nur einmal angibt, daher lohnt sich vorher ein kurzes
Code:
cp /etc/hosts /etc/hosts.bak
Wenn alles richtig gemacht wurde, dann können Werbeserver, die in der Liste enthalten sind, jetzt schon nicht mehr erreicht werden. Einfach so, als gäbe es sie nicht.
Die Liste ist allerdings nicht von Deutschen Usern zusammengetragen worden, weswegen ein jetzt gerade erfundener, aber angenommenerweise typischer und bekannter Werbeserver von Wegen www.werbeserver.de nicht darin aufgelistet ist.
Das können wir einfach nachholen:
Code:
echo "127.0.0.1 werbeserver.de www.werbeserver.de" >> /etc/hosts
Allerdings habe ich ihn hier in diesem Beispiel einmal mit "www." und einmal ohne angegeben, weil manche Anfragen mal mit "www." und manche ohne sein werden und das beides unterschiedlich gehandhabt wird.
Kann ich einfach wild alle möglichen Domains angeben?
Ja. Wenn man Pokémon hasst und einfach ganz frech allen Mitbenutzern des Computers verbieten will, www.pokemon.de anzusurfen, dann trägt man die Domain ein und gut ist. Wer die IP-Adresse der Domain kennt, kommt trotzdem drauf, aber das ist meistens nicht der Fall.
Die Liste muss in dem Format sein:
Code:
127.0.0.1 www.domain.de domain.de a.domain.de b.domain.de c.domain.de [I]was.man.will.de[/I]
Problemlösungen:
Code:
user@maschine ~ $ curl
-bash: curl: command not found
Curl ist nicht installiert! Einfach mal schauen, woher man das bekommt.
Code:
user@maschine ~ $ echo blabla >> /etc/hosts
-bash: /etc/hosts: Permission denied
Die Rootrechte fehlen. Vorher einfach mal eben "sudo su" eingeben und schon ist man Root.
Zuletzt bearbeitet: