---
title: "Proxy-Nutzung mit wget: Befehle und Beispiele"
description: "Sie können wget einen Proxy per Umgebungsvariable, .wgetrc-Datei oder -e-Option zuweisen. Authentifizierung, HTTPS und häufige Fehler mit Beispielen."
url: https://proxynet.io/de/blog/wget-proxy
date: 2026-09-13
author: "Acar Diveroli"
category: "Anleitungen, Integration"
lang: de
---

# Proxy-Nutzung mit wget: Befehle und Beispiele

**wget** ist ein unter Linux und macOS meist vorinstalliertes Kommandozeilenwerkzeug zum Herunterladen von Dateien und Abrufen von Webseiten. Es wird häufig genutzt, um auf Servern per Skript Dateien herunterzuladen, eine Website zu spiegeln oder einen einfachen Erreichbarkeitstest durchzuführen. In diesem Beitrag erklären wir drei Wege, wget über einen Proxy laufen zu lassen, die Authentifizierung, HTTPS-Details, worauf bei Massendownloads zu achten ist, und häufig auftretende Fehler mit Beispielbefehlen.

Alle beschriebenen Optionen sind im [GNU-Wget-Handbuch](https://www.gnu.org/software/wget/manual/wget.html) dokumentiert.

> **Hinweis: Kurz gesagt**
>
> Für einen schnellen Test geben Sie `export https_proxy="http://benutzer:passwort@server:port"` ein und führen wget normal aus. Für einmalige Nutzung im Skript bevorzugen Sie die Optionen `-e use_proxy=yes -e https_proxy=...`, für dauerhafte Nutzung die Datei `~/.wgetrc`. wget unterstützt nur HTTP/HTTPS-Proxy; brauchen Sie SOCKS5, nutzen Sie cURL.

## Vor dem Start: ist wget installiert?

Prüfen Sie die Version im Terminal:

```bash
wget --version
```

Wird der Befehl nicht gefunden, können Sie unter Debian und Ubuntu `sudo apt install wget`, unter macOS mit Homebrew `brew install wget` nutzen. Unter Windows ist wget nicht vorinstalliert; für dieselben Aufgaben können Sie das ab Windows 10 mitgelieferte `curl.exe` verwenden. Die `wget`-Schreibweise in PowerShell ist dagegen kein echtes wget, sondern ein Alias für den Befehl `Invoke-WebRequest`, und akzeptiert die in diesem Beitrag genannten Optionen nicht.

Bei Tests erleichtert eine Testadresse, die Ihre IP-Adresse zurückgibt, die Arbeit. Funktioniert der Proxy, zeigt diese Adresse nicht Ihre eigene, sondern die IP des Proxys:

```bash
wget -qO- https://httpbin.org/ip
```

`-q` unterdrückt hier die Ausgabe, `-O-` gibt den heruntergeladenen Inhalt statt in eine Datei auf dem Bildschirm aus. Führen Sie den Befehl einmal ohne Proxy aus und notieren Sie Ihre eigene IP; bei folgenden Versuchen sehen Sie den Unterschied sofort.

## Das Format der Proxy-Adresse

In allen drei Methoden wird der Proxy im gleichen Format angegeben:

```text
http://benutzer:passwort@server:port
```

- Das Schema `http://` ist das Protokoll der Verbindung zum Proxy. Auch bei HTTPS-Websites wird dieses Schema verwendet; warum, erklären wir weiter unten.
- Der Teil `benutzer:passwort@` ist optional. Haben Sie über Ihr Proxy-Panel die IP Ihres Servers autorisiert, können Sie diesen Teil ganz weglassen.
- Die Angabe `server:port` hängt von Ihrem Paket ab; die richtigen Werte finden Sie in Ihrem Kundenpanel.

## Methode 1: mit Umgebungsvariablen

wget liest die üblichen Proxy-Umgebungsvariablen des Systems: `http_proxy`, `https_proxy`, `ftp_proxy` und `no_proxy`. Das ist die schnellste Methode, und viele andere im selben Terminal laufende Tools nutzen dieselben Variablen.

```bash
export http_proxy="http://benutzer:passwort@pr.proxynet.io:8000"
export https_proxy="http://benutzer:passwort@pr.proxynet.io:8000"

wget -qO- https://httpbin.org/ip
```

Drei Punkte sind zu beachten:

- **Auch der Wert von `https_proxy` beginnt mit `http://`.** Diese Variable gibt den beim Zugriff auf HTTPS-Websites zu nutzenden Proxy an; die Verbindung zum Proxy selbst ist HTTP, und der HTTPS-Traffic wird innerhalb dieser Verbindung getunnelt.
- **Die Variablen gelten nur in dieser Terminalsitzung.** Sollen sie dauerhaft gelten, fügen Sie sie zu `~/.bashrc` oder `~/.zshrc` hinzu.
- **Bevorzugen Sie Kleinschreibung.** wget liest die kleingeschriebenen Variablen; auf manchen Systemen kann auch großgeschriebenes `HTTP_PROXY` definiert sein, und widersprechen sich beide Definitionen, stiftet das Verwirrung. Am sichersten ist es, beide auf denselben Wert zu setzen.

Sollen bestimmte Adressen nicht über den Proxy gehen, nutzen Sie `no_proxy`:

```bash
export no_proxy="localhost,127.0.0.1,.ihrefirma.local"
```

Diese Variable verhindert, dass Dienste im internen Netz oder lokale Entwicklungsserver über den Proxy laufen. Ein mit einem Punkt beginnender Domainname umfasst alle Subdomains dieser Domain.

## Methode 2: in der Befehlszeile, einmalig

Um ohne Änderung der Umgebungsvariablen nur einen einzelnen Befehl über den Proxy zu leiten, können Sie mit der Option `-e` (`--execute`) wget-Einstellungen direkt im Befehl übergeben:

```bash
wget -e use_proxy=yes \
     -e https_proxy=http://pr.proxynet.io:8000 \
     --proxy-user=benutzer \
     --proxy-password=passwort \
     https://httpbin.org/ip -O -
```

Diese Methode ist besonders in Skripten nützlich: Die Proxy-Einstellung beeinflusst keine anderen Befehle, und Sie können bei jedem Aufruf einen anderen Proxy angeben. Wollen Sie zum Beispiel in einer Schleife jeden Download über einen anderen Ausgangspunkt laufen lassen, beziehen Sie den Wert für `-e https_proxy=` aus der Schleifenvariable.

Jede mit `-e` angegebene Zeile ist eine Einstellung, die auch in die Datei `.wgetrc` geschrieben werden kann. Das heißt, jeder Schlüssel, den Sie in der folgenden Methode sehen, gilt auch hier.

> **Achtung**
>
> Das Passwort in die Befehlszeile zu schreiben, legt es im Shell-Verlauf und in der Prozessliste des Systems offen. Lesen Sie Zugangsdaten auf gemeinsam genutzten Servern aus einer Umgebungsvariable oder einer Konfigurationsdatei mit eingeschränkten Rechten ein. Wo möglich, autorisieren Sie über Ihr Panel die IP-Adresse Ihres Servers und wechseln zur passwortlosen Nutzung.

## Methode 3: dauerhaft mit der Datei .wgetrc

Nutzen Sie wget auf derselben Maschine dauerhaft mit einem Proxy, können Sie die Einstellungen in die Datei `~/.wgetrc` in Ihrem Nutzerverzeichnis schreiben:

```ini
use_proxy = on
http_proxy = http://pr.proxynet.io:8000
https_proxy = http://pr.proxynet.io:8000
proxy_user = benutzer
proxy_password = passwort
```

Da die Datei ein Passwort enthält, schränken Sie die Rechte so ein, dass nur Sie sie lesen können:

```bash
chmod 600 ~/.wgetrc
```

Ist eine systemweite Einstellung nötig, können dieselben Zeilen in die Datei `/etc/wgetrc` geschrieben werden; die Datei im Nutzerverzeichnis überschreibt dabei die Werte der Systemdatei.

Wollen Sie den Proxy bei bestehender Datei vorübergehend deaktivieren, fügen Sie für einen einzelnen Befehl die Option `--no-proxy` hinzu:

```bash
wget --no-proxy https://httpbin.org/ip -O -
```

## Welche Methode sollte man wählen?

| Situation | Empfohlene Methode |
|---|---|
| Schneller Test im Terminal | Umgebungsvariable |
| Im Skript, bei jedem Aufruf ein anderer Proxy | Befehlszeile mit `-e` |
| Dauerhafte Proxy-Nutzung auf dem Server | `.wgetrc` |
| Bestimmte Adressen vom Proxy ausnehmen | `no_proxy` |
| Geplanter Download per Cron | `.wgetrc` (Cron überträgt keine Umgebungsvariablen) |
| Innerhalb eines Docker-Containers | Umgebungsvariable (über `ENV`) |

Sind alle drei Methoden gleichzeitig definiert, gilt folgende Rangfolge: Befehlszeilenoptionen überschreiben Umgebungsvariablen, Umgebungsvariablen überschreiben die Datei `.wgetrc`.

## Wie funktioniert der Proxy bei HTTPS-Websites?

Beim Zugriff auf eine HTTPS-Adresse über einen Proxy sendet wget dem Proxy zunächst eine `CONNECT ziel:443`-Anfrage. Der Proxy öffnet eine TCP-Verbindung zum Ziel und überträgt danach nur noch verschlüsselte Bytes. Der Proxy sieht also nicht den Inhalt der Website, sondern nur, mit welchem Domainnamen sich verbunden wird.

Die praktische Folge: Auch wenn die Proxy-Adresse mit `http://` beginnt, können Sie sicher HTTPS-Websites ansteuern. Die Zertifikatsprüfung erfolgt zwischen Ihrer Maschine und der Zielseite, der Proxy ist daran nicht beteiligt. Dieses Verhalten des Proxys und den Unterschied zu SOCKS haben wir in unserem Beitrag [SOCKS und HTTP Proxy im Vergleich](/de/blog/socks-vs-http-proxy) verglichen.

## In Kombination mit häufig genutzten Optionen

Die Proxy-Einstellung allein reicht in der Praxis selten aus; für echte Aufgaben braucht es meist einige Optionen mehr. Das folgende Beispiel lädt eine Datei über den Proxy mit Wiederholungs- und Timeout-Einstellungen herunter:

```bash
wget --timeout=30 --tries=3 --waitretry=5 \
     --user-agent="Mozilla/5.0 (X11; Linux x86_64)" \
     -O bericht.pdf https://example.com/bericht.pdf
```

- `--timeout` begrenzt die Wartezeit für jeden Netzwerkvorgang.
- `--tries` legt fest, wie oft ein fehlgeschlagener Download wiederholt wird; `--waitretry` fügt zwischen den Versuchen eine Wartezeit ein.
- `--user-agent` ändert die Browserkennung. wgets Standardkennung wird auf manchen Websites direkt blockiert; ein aussagekräftiger Wert ist sowohl transparenter als auch weniger problematisch.
- `-O` benennt die Ausgabedatei; mit `-c` wird ein unterbrochener Download an der Stelle fortgesetzt, an der er abgebrochen wurde.

Brauchen Sie beim Abrufen der Seite Cookies, halten die Optionen `--load-cookies` und `--save-cookies` die Sitzung in einer Datei fest; so lässt sich eine angemeldete Sitzung zusammen mit dem Proxy fortsetzen.

## Unterstützt wget SOCKS-Proxy?

GNU Wget hat keine eingebaute SOCKS-Unterstützung; alle oben genannten Methoden sind für HTTP- und HTTPS-Proxy gedacht. Brauchen Sie SOCKS5, haben Sie zwei Optionen:

- **cURL nutzen.** cURL unterstützt die Schemata `socks5://` und `socks5h://` direkt und kann fast alles, was wget kann. Details in unserem Beitrag [Wie nutzt man einen Proxy mit cURL?](/de/blog/curl-proxy).
- **Ein Umleitungstool nutzen.** Unter Linux können Tools wie `proxychains` die Verbindungen von Programmen ohne SOCKS-Unterstützung zum SOCKS-Proxy umleiten. Unter Windows erledigt das [Proxifier](/de/blog/proxifier).

Für mit wget direkt funktionierende Pakete lohnt sich ein Blick auf die Seite [HTTPS-Proxy](https://proxynet.io/de/https-proxy).

## Häufige Fehler und ihre Lösungen

### "407 Proxy Authentication Required"

Die Proxy-Zugangsdaten fehlen oder sind falsch. Prüfen Sie Benutzername und Passwort. Enthält das Passwort Sonderzeichen wie `@`, `:` oder `#`, kodieren Sie diese in der Adresse mit Prozentkodierung (`@` wird zu `%40`), oder nutzen Sie die Optionen `--proxy-user` und `--proxy-password`; diese Optionen erfordern keine Kodierung.

### Der Befehl nutzt den Proxy überhaupt nicht

- Stellen Sie sicher, dass Sie die Variable mit `export` definiert haben; nur `http_proxy=...` zu schreiben, überträgt sie nicht an Unterprozesse.
- Gehen Sie an eine HTTPS-Adresse, muss nicht `http_proxy`, sondern `https_proxy` definiert sein.
- Prüfen Sie, ob in `.wgetrc` eine Zeile `use_proxy = off` steht.
- Führen Sie `sudo wget` aus, überträgt `sudo` standardmäßig möglicherweise nicht Ihre Umgebungsvariablen; nutzen Sie `sudo -E`, um sie zu übertragen, oder schreiben Sie die Einstellung in `/etc/wgetrc`.
- Die Zieladresse könnte mit einer Domain in der `no_proxy`-Liste übereinstimmen.

### "Unable to establish SSL connection"

Prüfen Sie zunächst, ob sich die Zieladresse ohne Proxy öffnen lässt. Liegt das Problem am Zertifikat, überspringt die Option `--no-check-certificate` die Prüfung; diese Option schwächt jedoch die Sicherheit der Verbindung und sollte nur zu Testzwecken genutzt werden. Denken Sie daran, dass der Proxy an der Zertifikatsprüfung nicht beteiligt ist: Dieser Fehler stammt meist von einem veralteten Root-Zertifikatsspeicher im System oder von der Konfiguration der Zielseite.

### Die Verbindung läuft in ein Timeout

Prüfen Sie Proxy-Adresse und Port erneut. Stellen Sie sicher, dass die Firewall Traffic zum Proxy-Port zulässt. Bei langen Downloads verhindert es, dass Skripte hängen bleiben, wenn Sie Timeout und Wiederholungsanzahl explizit festlegen:

```bash
wget --timeout=30 --tries=3 https://httpbin.org/ip -O -
```

### "ERROR 403: Forbidden"

Die Zielseite lehnt die Anfrage ab. Die Ursache muss nicht der Proxy sein; wgets Standard-User-Agent wird auf manchen Websites direkt blockiert. Geben Sie mit `--user-agent` einen aussagekräftigen Wert an. Besteht das Problem weiter, könnte sich die Zielseite je nach IP-Typ des Proxys unterschiedlich verhalten; warum Rechenzentrumsadressen häufiger abgelehnt werden, haben wir in [Residential- und Datacenter-Proxy im Vergleich](/de/blog/residential-vs-datacenter-proxy) erklärt.

## Worauf bei Massendownloads zu achten ist

Die Option `-r` (rekursiver Download) von wget kann eine ganze Website mit einem einzigen Befehl herunterladen. Diese Kraft kann den Zielserver stark belasten. Bei Massendownloads sind folgende Optionen sowohl für Sie als auch für das Ziel von Vorteil:

```bash
wget -r -l 2 --wait=2 --random-wait --limit-rate=500k \
     --no-parent -A pdf https://example.com/dokumente/
```

- `-l 2` begrenzt die Tiefe auf zwei Ebenen; unbegrenzte Tiefe lädt die gesamte Website herunter.
- `--wait=2` fügt zwischen Anfragen zwei Sekunden ein, `--random-wait` variiert diese Zeit zufällig.
- `--limit-rate=500k` begrenzt die Downloadgeschwindigkeit.
- `--no-parent` verhindert das Aufsteigen in übergeordnete Verzeichnisse, `-A pdf` lädt nur die angegebene Dateiendung.

wget folgt standardmäßig den Regeln der `robots.txt`; deaktivieren Sie dieses Verhalten nicht. Welche Daten unter welchen Bedingungen erfasst werden dürfen, haben wir in [Ist Web Scraping legal?](/de/blog/is-data-web-scraping-legal) erklärt. Brauchen Sie nur die Bilder einer einzelnen Seite, kommen Sie ohne Terminal aus; die Wege ohne Code finden Sie in [Alle Bilder von einer Website herunterladen](/de/blog/download-all-images-from-website).

Bei Projekten mit vielen Anfragen senkt es sowohl das Sperrungsrisiko als auch die Last der Zielseite, statt den Traffic auf eine einzige IP zu häufen, mit [Rotierender Proxy](https://proxynet.io/de/rotating-proxy) die Adressen zu verteilen. Für umfangreichere Bedürfnisse können Sie sich unsere [Datenerfassungslösungen](/de/data-scraping) ansehen.

## Häufig gestellte Fragen

### wget oder cURL?

Für Dateidownload, Spiegelung und rekursiven Abruf ist wget praktischer; für API-Anfragen, spezielle HTTP-Methoden und SOCKS-Proxy ist cURL leistungsfähiger. Beide lesen HTTP-Proxy aus denselben Umgebungsvariablen; eine einmal definierte Einstellung funktioniert also in beiden Tools.

### Beeinflusst die Proxy-Einstellung andere Programme?

Ein per Umgebungsvariable definierter Proxy beeinflusst jedes Programm, das aus derselben Shell gestartet wird und diese Variablen liest (cURL, pip, git und andere). Die Methoden `.wgetrc` und `-e` beeinflussen nur wget.

### Kann ich einen Proxy nutzen, ohne mein Passwort zu speichern?

Ja. Autorisieren Sie über das Panel Ihres Proxy-Anbieters die IP-Adresse Ihres Servers, sind Benutzername und Passwort nicht nötig; die Adresse wird dann nur im Format `http://server:port` geschrieben. Für Server mit fester IP ist das der sauberste Weg.

### Kann ich mit wget bei jeder Anfrage eine andere IP erhalten?

wget selbst rotiert nicht. Es gibt zwei Wege: einen Rotating-Proxy nutzen (eine Adresse, bei jeder Verbindung eine andere ausgehende IP) oder in einem Skript bei jedem Aufruf mit `-e https_proxy=` einen anderen Proxy angeben.

### Kann ich per Proxy per FTP herunterladen?

Ist die Variable `ftp_proxy` definiert, ruft wget FTP-Adressen über den HTTP-Proxy ab; der Proxy muss diese Nutzung unterstützen. Da FTP-Quellen heute seltener werden, konzentrieren sich die meisten Proxy-Pakete auf HTTP und HTTPS.

## Fazit

Es gibt drei Wege, wget mit einem Proxy zu nutzen: Umgebungsvariablen für schnelle Tests, die Option `-e` für einmalige Nutzung in Skripten und die Datei `.wgetrc` für dauerhafte Nutzung. Vergessen Sie nicht, für HTTPS-Adressen `https_proxy` zu definieren, Zugangsdaten sicher aufzubewahren, bei Massendownloads die Geschwindigkeit zu begrenzen und bei Bedarf für SOCKS zu cURL zu wechseln.
