Sie werden sich sicher fragen, was dieser Aspekt hier im Buch zu
suchen hat. Wichtig wird das genau dann, wenn Sie hinter einem Proxy
Server sitzen und dieser ihnen den direkten Weg zum Paketmirror oder
auch zu dringend benötigten Informationsseiten versperrt. Dann wird die
Recherche und auch der nachfolgende Bezug passender deb
-Pakete nämlich
etwas hakelig. Mehrfach waren wir in dieser Lage, was uns erstmal etwas
ausgebremst hat. Wir fügen die Informationen dazu hier ein, damit Sie es
leichter haben, aus einer solchen Situation herauszukommen, falls Sie
unverhofft darin landen.
Das Werkzeug wget
aus dem gleichnamigen Debianpaket
[Debian-Paket-wget] agiert wie ein fensterloser Webbrowser und bezieht
die Daten von der im Aufruf angegebenen URL. wget
respektiert bereits
konfigurierte Proxy Server und wertet dazu die vier Umgebungsvariablen
http_proxy
, https_proxy
, ftp_proxy
und no_proxy
aus, falls diese
auf ihrem Linux-System vorhanden sind.
Der nachfolgende Aufruf demonstriert, wie Sie das Paket mc
[Debian-Paket-mc] via wget
vom Paketmirror ftp.de.debian.org
beziehen. Das heruntergeladene Paket finden Sie dann als Datei
mc_4.8.26-1.1_amd64.deb
in ihrem aktuellen Verzeichnis.
Bezug des Paketes mc vom Paketmirror ftp.de.debian.org
via wget
.
$ wget http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb --2023-06-12 22:07:02-- http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb Auflösen des Hostnamen »ftp.de.debian.org (ftp.de.debian.org)«... 141.76.2.4 Verbindungsaufbau zu ftp.de.debian.org (ftp.de.debian.org)|141.76.2.4|:80... verbunden. HTTP-Anforderung gesendet, warte auf Antwort... 200 OK Länge: 534020 (522K) [application/vnd.debian.binary-package] In »»mc_4.8.26-1.1_amd64.deb«« speichern. mc_4.8.26-1.1_amd64.deb 100%[==========================================>] 521,50K 488KB/s in 1,1s 2023-06-12 22:07:04 (488 KB/s) - »»mc_4.8.26-1.1_amd64.deb«« gespeichert [534020/534020] $
In Bezug auf Proxy Server verfügt wget
über weitere Schalter für die
Kommandozeile, die sich im Alltag als recht nützlich erweisen:
--no-proxy-server
http_proxy
, https_proxy
, ftp_proxy
und no_proxy
.
--proxy_user
--proxy_password
Bitte beachten Sie bei der Verwendung der beiden Schalter --proxy_user
und --proxy_password
im direkten Aufruf über die Kommandozeile, dass
die darüber angegebenen Authentifizierungsdaten in der Historie ihres
Kommandointerpreters landen. Abhilfe schaffen Sie, indem Sie die
Authentifizierungsdaten entweder in der lokalen Datei ~/.wgetrc
oder
systemweit in der Datei /etc/wgetrc
hinterlegen.
Was mit wget
gelingt, geht auch mit curl
(Debianpaket curl
[Debian-Paket-curl]) — curl
kann nur deutlich mehr. Nützlich ist
hier zunächst der Schalter -x
(Langversion: --proxy
), mit dem Sie
zunächst den Proxy Server benennen. Der darauffolgende Wert repräsentiert
das Login benutzer
mit dem Passwort passwort
und dem Proxy Server mit
der IP-Adresse 127.0.0.1 und dem Port 1234.
Bezug der Datei über einen Proxy mittels curl
.
curl --proxy "http://benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei" curl --proxy "benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei"
Bitte beachten Sie beim direkten Aufruf über die Kommandozeile, dass die
darüber angegebenen Authentifizierungsdaten in der Historie ihres
Kommandointerpreters landen. Abhilfe schaffen Sie auf drei möglichen
Wegen. In Variante 1 speichern Sie die benötigten
Authentifizierungsdaten in den Umgebungsvariablen. curl
wertet dazu
http_proxy
und https_proxy
aus. Dann vereinfacht sich obiger Aufruf
zu:
Bezug der Datei über einen Proxy mittels curl
(vereinfachter Aufruf).
curl "http://webseite.org/datei"
In Variante 2 speichern Sie die benötigten Authentifizierungsdaten
in einer lokalen Datei und geben diese curl
beim Aufruf als
zusätzlichen Parameter mit. Das gelingt über den Schalter -K
(Langform: --config
), gefolgt vom Namen der Konfigurationsdatei. Der
nachfolgende Aufruf benutzt die Datei proxy-config
mit diesem Inhalt:
Konfigurationsdatei für curl
zur Verwendung eines Proxy Servers.
--proxy "http://benutzer:passwort@127.0.0.1:1234"
Der Aufruf von curl
vereinfacht sich dann wie folgt:
Bezug der Datei über einen Proxy Server mittels Konfigurationsdatei für curl
.
$ curl -K proxy-config "http://webseite.org/datei"
Auch Variante 3 möchten wir Ihnen nicht vorenthalten. Dieser Weg führt
über die lokale Konfigurationsdatei ~/.curlrc
. Dort hinterlegen Sie
die Defaultparameter für curl
analog zu Variante 2. Rufen Sie nun
curl
auf, prüft es, ob diese Konfigurationsdatei vorhanden ist und
liest die voreingestellten Authentifizierungsdaten von dort. Der Aufruf
von curl
ist identisch zu Variante 1.
Weitere Schalter zum Thema Proxy Server entnehmen Sie bitte der
umfangreichen Manpage zu curl
oder dem Curl Developer Guide
[curl-developer].
Firefox kann ebenfalls mit Proxy Servern umgehen. Eine Konfiguration dazu erlaubt Firefox jedoch nicht über Kommandozeilenschalter, sondern ausschließlich über den Menüpunkt Einstellungen → Allgemein → Netzwerkeinstellungen (siehe Abbildung 27.1, „Proxy-Einstellungen bei Firefox“ für das entsprechende Dialogfenster).
Während frühe Versionen von Firefox Umgebungsvariablen mitunter noch ignorierten, haben Sie mittlerweile die freie Auswahl zwischen den Varianten „keinen Proxy Server verwenden“, „automatische Erkennung“, „Verwendung der Umgebungsvariablen“ , „manueller Konfiguration“ und ``Verwendung einer automatischen URL zur Konfiguration``. Sobald Sie die passenden Eintragungen im Dialogfenster durchgeführt haben, werden diese aktiv und Firefox kommuniziert mit dem von Ihnen angegebenen Proxy Server.
Chromium verhält sich in Bezug auf die Konfiguration für Proxy Server
entgegengesetzt zu Firefox. In den Systemeinstellungen finden Sie keinen
Eintrag, dafür geschieht alles über passende Schalter auf der
Kommandozeile. Zudem respektiert Chromium die lokalen Einstellungen, wie
es Ihnen freudig mitteilt, sobald Sie die lokale URL
chrome://linux-proxy-config/
ansurfen (siehe Abbildung 27.2, „Mitteilung von Chromium zu den Einstellungen für Proxy Server“).
Als Kommandozeilenparameter stehen Ihnen zur Verfügung:
--proxy-server
$ chromium --proxy-server="socks4://webserver:1234"
--no-proxy-server
--proxy-auto-detect
--proxy-pac-url