Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Polipo ist ein HTTP-Webproxy ähnlich wie Privoxy. Im Vergleich zu diesem ist Polipo kleiner und schneller, besitzt aber nicht die selben Fähigkeiten, wenn es um das Blocken von Werbung, Cookies oder generelle Header-Manipulation geht.
Wer diese Aufgaben aber sowieso über einen Werbeblocker im Browser regelt und ausschließlich einen Webproxy braucht, der zum Beispiel als Schnittstelle für Tor dient, für den stellt Polipo eine schlanke Alternative dar.
Die Weiterentwicklung wurde zwischenzeitlich eingestellt, da laut Programmautor heute die meisten Datenströme verschlüsselt sind, was die Filterung über einen einfachen Webproxy wie polipo unmöglich macht.
Das Programm kann aus den offiziellen Paketquellen installiert [1] werden:
polipo (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install polipo
sudo aptitude install polipo
Nach der Installation wird Polipo als Dienst automatisch gestartet.
Damit man über Polipo surfen kann, muss man im Browser Polipo als Proxy eintragen (siehe auch Proxyserver). Als Server- oder Hostadresse gibt man localhost
bzw. 127.0.0.1
an. Der Port, an welchem Polipo lauscht, ist standardmäßig 8123
.
Die Konfigurationsdatei von Polipo liegt in /etc/polipo/config und kann mit einem Editor [2] mit Root-Rechten [3] verändert werden. Wenn man Änderungen vorgenommen hat, muss man den Dienst neu starten, damit die Einstellungen aktiviert werden:
sudo /etc/init.d/polipo restart
Möchte man Polipo auf einen Socks-Proxy wie zum Beispiel Tor weiterleiten lassen, muss man in der Konfigurationsdatei das Kommentar-Zeichen (#
) vor zwei Zeilen entfernen und die Kombination IP-ADRESSE:PORT
und die Art des Socks-Proxys ergänzen. Wenn die Zeilen nicht existieren, kann man sie einfach hinzufügen. Für einen Socks5-Proxy, der am lokalen Rechner an Port 9050
lauscht, sehen sie so aus:
socksParentProxy = "127.0.0.1:9050" socksProxyType = socks5
Zu Beachten: localhost
funktioniert hierbei als socksParentProxy nicht, Polipo reagiert mit der Fehlermeldung "Host not Found", die statt der gewünschten URL im Browser auftaucht.
Soll Polipo Webinhalte zum schnelleren Zugriff auf der Festplatte zwischenspeichern, muss man in der Konfigurationsdatei das Kommentar-Zeichen (#
) vor dieser Zeile entfernen:
# diskCacheRoot = ""
und den entsprechenden Pfad eintragen.
Einige der wenigen Optionen, die Polipo zum Schutz der Privatsphäre bietet, erfolgen über folgende Zeile:
censoredHeaders = OPTION1,OPTION2,OPTION3,...
Mögliche Optionen sind: from
, Accept-Language
oder User-Agent
, um den jeweiligen Abschnitt aus den Headern der HTTP-Requests zu löschen. Außerdem kann man die Zeile:
censorReferer = true|false|maybe
erstellen, wobei true
bedeutet, dass kein Referrer gesendet wird, false
, dass einer versandt wird und maybe
, dass ein Referrer nur versandt wird, wenn er von der gleichen Seite stammt, die man besucht. Will man zum Beispiel den Accept-Language- und den User-Agent-Header entfernen und den Referrer permanent unterdrücken, würden die beiden Zeilen so aussehen:
censoredHeaders = Accept-Language,User-Agent censorReferer = true
Polio bietet eine rudimentäre Funktion zum Blocken von Webseiten an (ganz oder gar nicht), unterstützt dabei aber auch reguläre Ausdrücke. Welche Webseiten blockiert werden, steht in der Datei /etc/polipo/forbidden. Diese kann mit einem Editor und Root-Rechten angepasst werden. Standardmäßig enthält die Datei schon einige auskommentierte Beispiele, die die Funktionsweise verdeutlichen.
Das Ubuntu-/Debian-Paket von Polipo so vorkonfiguriert, dass ein Protokoll erstellt wird, in dem bisweilen (bei Fehlern) auch URLs gespeichert werden. Der Standardpfad für die Logdateien ist /var/log/polipo/. Um das Loggen zu deaktivieren, öffnet man mit einem Editor mit Root-Rechten die Datei /usr/lib/polipo/polipo-control und entfernt in Zeile 19:
DAEMON_OPTS="-c $CONFIG_FILE pidFile=$PIDFILE daemonise=true LogFile=$LOGFILE"
am Ende die Option LogFile=$LOGFILE
. Anschließend muss man in der Datei /etc/polipo/config die folgenden zwei Zeilen einfügen:
logSyslog = false logFile = "/dev/null"
Nach einem Neustart wird Polipo nun keine Logfiles mehr anlegen.
Erhält man diese oder eine ähnliche Meldung im Browser, wenn man versucht, über Polipo zu surfen, sollte man mal im Terminal den folgenden Befehl ausführen:
ps aux | grep polipo | grep -v "grep"
Die Ausgabe kann z.B. so aussehen:
proxy 6001 0.0 0.3 4852 3520 ? Ss 17:55 0:00 /usr/bin/polipo -c /etc/polipo/config pidFile=/var/run/polipo/polipo.pid daemonise=true logFile=/var/log/polipo/polipo.log forbiddenFile=/etc/polipo/forbidden proxyOffline=true
Entscheidend ist die letzte Option proxyOffline
. Steht diese auf true
, bedeutet dies, dass Polipo nur im Offline-Betrieb arbeitet. Das kann zwei Ursachen haben. Entweder hat man in der Datei /etc/polipo/config die Option proxyOffline = true
gesetzt oder man leidet unter einem Fehler in Polipo.
Das Problem entsteht, weil Polipo unter Umständen gestartet wird, bevor eine Netzwerkverbindung besteht und deswegen automatisch den Offline-Modus aktiviert. Um das Problem zu beheben, fügt man zuerst in der Datei /etc/polipo/config die Zeile:
proxyOffline = false
ein. Danach öffnet man die Datei /usr/lib/polipo/polipo-control und ersetzt ungefähr in Zeile 24 den folgenden Text:
if /sbin/route -n | grep ^0.0.0.0 > /dev/null; then
durch diesen:
if [ `grep -v "#" /etc/polipo/config | grep proxyOffline | sed s/" "//g | sed s/proxyOffline=//` = "false" ] || /sbin/route -n | grep ^0.0.0.0 > /dev/null; then
Nach einem Neustart des Rechners sollte das Problem behoben sein.
Das Paket von Polipo unter Ubuntu 12.04 ist zu alt, um HTTPS-Anfragen an einen Proxy mit Authentifizierung weiterzureichen. Es lässt sich aber ein Fremdpaket nutzen.
Herunterladen und Installieren des einzelnen Pakets reicht aus, sodass es nicht nötig ist, eine (weitere) Fremdquelle als PPA einzubinden.
Fremdpakete können das System gefährden.
Diese Revision wurde am 17. Januar 2017 12:40 von unbekannt1984 erstellt.