Zum Inhalt springen
GProxy
Registrierung
Гайды 6 Min. Lesezeit 30 Aufrufe

Linux Proxy Einrichtung

Eine umfassende Anleitung zur Einrichtung eines Linux-Proxys. Erkunden Sie die Umgebungskonfiguration, APT-Paketverwaltung und Systemd-Integration.

Linux Proxy Einrichtung

Die Konfiguration eines Proxys unter Linux umfasst das Setzen von Umgebungsvariablen für Benutzersitzungen, die Konfiguration von APT für die Paketverwaltung und die Angabe von Proxy-Einstellungen für Systemd-Dienste, um sicherzustellen, dass alle Systemkomponenten über den Proxy auf externe Netzwerke zugreifen können.

Viele Linux-Umgebungen arbeiten hinter Unternehmensfirewalls oder erfordern die Weiterleitung des Datenverkehrs über einen Proxyserver für Sicherheit, Protokollierung oder Zugriffskontrolle. Eine ordnungsgemäße Proxy-Konfiguration ist entscheidend für die Systemfunktionalität, einschließlich Software-Updates, Internetzugang für Benutzeranwendungen und die Kommunikation von Hintergrunddiensten. Dieser Artikel beschreibt die Methoden zur Konfiguration von Proxy-Einstellungen über gängige Linux-Komponenten hinweg.

Umgebungsvariablen

Shell-Umgebungen und Anwendungen, die von ihnen erben, verlassen sich oft auf Standard-Umgebungsvariablen für die Proxy-Konfiguration. Diese Variablen definieren die Proxyserver-Adresse für HTTP-, HTTPS- und FTP-Verkehr sowie Ausnahmen für direkte Verbindungen.

Standard-Proxy-Umgebungsvariablen

  • HTTP_PROXY: Proxy für HTTP-Verbindungen.
  • HTTPS_PROXY: Proxy für HTTPS-Verbindungen.
  • FTP_PROXY: Proxy für FTP-Verbindungen.
  • NO_PROXY: Eine durch Kommas getrennte Liste von Hostnamen, IP-Adressen oder CIDR-Bereichen, die den Proxy umgehen sollen. Beispiel: localhost,127.0.0.1,*.local,192.168.0.0/24.

Diese Variablen sind in einigen Kontexten groß-/kleinschreibungsempfindlich (z.B. verwendet wget oft das kleingeschriebene http_proxy, während andere das großgeschriebene HTTP_PROXY bevorzugen). Es ist üblich, sowohl die Groß- als auch die Kleinschreibung für eine breitere Kompatibilität zu setzen.

Temporäre Shell-Sitzungskonfiguration

Um Proxy-Variablen für die aktuelle Shell-Sitzung und alle von ihr gestarteten Prozesse zu setzen:

export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"

# Für Kompatibilität auch kleingeschriebene Versionen setzen
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Ersetzen Sie proxy.example.com:8080 durch die Adresse und den Port Ihres Proxyservers. Wenn eine Authentifizierung erforderlich ist, fügen Sie Anmeldeinformationen hinzu: http://user:password@proxy.example.com:8080.

Persistente benutzerspezifische Konfiguration

Damit Proxy-Einstellungen über Benutzeranmeldesitzungen hinweg bestehen bleiben, fügen Sie die export-Befehle zur Shell-Profildatei des Benutzers hinzu.

  • Bash: ~/.bashrc oder ~/.profile
  • Zsh: ~/.zshrc

Beispiel für ~/.bashrc:

# Proxy-Einstellungen
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Nach der Änderung die Datei neu laden oder ab- und wieder anmelden: source ~/.bashrc.

Persistente systemweite Konfiguration

Für systemweite Proxy-Einstellungen, die alle Benutzer und einige Systemprozesse betreffen (obwohl nicht alle Systemd-Dienste direkt), verwenden Sie /etc/environment oder Dateien in /etc/profile.d/.

/etc/environment

Diese Datei wird von PAM (Pluggable Authentication Modules) beim Login für alle Dienste und Anwendungen gelesen, die von einer Login-Shell gestartet werden. Sie unterstützt nur die Syntax KEY="value", ohne export.

HTTP_PROXY="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
FTP_PROXY="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,.example.com"
http_proxy="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
ftp_proxy="http://proxy.example.com:8080"
no_proxy="localhost,127.0.0.1,.example.com"

Änderungen an /etc/environment erfordern in der Regel einen Neustart oder eine erneute Anmeldung, damit neue Sitzungen sie übernehmen.

/etc/profile.d/

Skripte, die in /etc/profile.d/ platziert werden, werden von Login-Shells geladen. Dies ist geeignet, um Umgebungsvariablen zu setzen, die Logik oder export-Anweisungen erfordern. Erstellen Sie eine neue Datei, z.B. /etc/profile.d/proxy.sh:

#!/bin/bash
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Stellen Sie sicher, dass das Skript ausführbar ist: sudo chmod +x /etc/profile.d/proxy.sh.

sudo und Proxy-Variablen

Bei der Verwendung von sudo werden Umgebungsvariablen aus Sicherheitsgründen oft zurückgesetzt. Um Proxy-Einstellungen für Befehle, die mit sudo ausgeführt werden, beizubehalten:

  1. Verwenden Sie sudo -E: Dies bewahrt die aktuellen Umgebungsvariablen.
    bash sudo -E apt update
  2. Konfigurieren Sie sudoers: Bearbeiten Sie /etc/sudoers mit sudo visudo und fügen Sie env_keep hinzu/ändern Sie es.
    Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY http_proxy https_proxy ftp_proxy no_proxy"
    Dieser Ansatz ist im Allgemeinen sicherer als sudo -E für persistente Systemkonfigurationen.

APT (Advanced Package Tool)

APT, der Paketmanager, der von Debian-basierten Distributionen (z.B. Ubuntu) verwendet wird, erfordert eine eigene Proxy-Konfiguration, getrennt von den Shell-Umgebungsvariablen.

APT Proxy-Konfigurationsdatei

Die Proxy-Einstellungen von APT werden in Konfigurationsdateien innerhalb von /etc/apt/apt.conf.d/ definiert. Erstellen Sie eine neue Datei, z.B. /etc/apt/apt.conf.d/01proxy, mit folgendem Inhalt:

Acquire::http::Proxy "http://proxy.example.com:8080/";
Acquire::https::Proxy "http://proxy.example.com:8080/";
# Acquire::ftp::Proxy "ftp://proxy.example.com:8080/"; # Auskommentierung entfernen, falls benötigt

Ersetzen Sie proxy.example.com:8080 durch die Adresse und den Port Ihres Proxyservers.

Wenn der Proxy eine Authentifizierung erfordert:

Acquire::http::Proxy "http://user:password@proxy.example.com:8080/";
Acquire::https::Proxy "http://user:password@proxy.example.com:8080/";

Für Hosts, die den APT-Proxy umgehen sollen, verwenden Sie Acquire::NoProxy:

Acquire::NoProxy "localhost,127.0.0.1,archive.ubuntu.com";

Dies wird seltener verwendet als das globale NO_PROXY, kann aber spezifisch für APT sein.

Nach dem Erstellen oder Ändern der Datei verwendet APT diese Einstellungen automatisch für nachfolgende Operationen (z.B. apt update, apt install). Es ist kein Dienstneustart erforderlich.

Systemd-Dienste

Systemd verwaltet Systemdienste und Anwendungen. Von Systemd gestartete Dienste erben Proxy-Umgebungsvariablen, die in Shell-Profilen oder /etc/environment gesetzt wurden, nicht automatisch. Jede Systemd-Einheit, die Proxy-Zugriff benötigt, muss explizit konfiguriert werden.

Proxy für einen spezifischen Systemd-Dienst

Um Proxy-Einstellungen für einen einzelnen Systemd-Dienst zu konfigurieren, erstellen Sie eine Override-Datei. Dies ist die empfohlene Methode, um eine direkte Änderung der ursprünglichen Unit-Dateien zu vermeiden, die bei Paketaktualisierungen überschrieben werden können.

  1. Erstellen Sie ein Override-Verzeichnis:
    bash sudo systemctl edit <service_name>
    Dieser Befehl öffnet einen Editor für /etc/systemd/system/<service_name>.service.d/override.conf.

  2. Fügen Sie Proxy-Umgebungsvariablen hinzu:
    Fügen Sie im Editor den Abschnitt [Service] und die Environment-Direktiven hinzu:

    ini [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" \ "HTTPS_PROXY=http://proxy.example.com:8080" \ "NO_PROXY=localhost,127.0.0.1" Environment="http_proxy=http://proxy.example.com:8080" \ "https_proxy=http://proxy.example.com:8080" \ "no_proxy=localhost,127.0.0.1"
    Jede Environment-Direktive kann mehrere Variablen enthalten, die durch Leerzeichen innerhalb der Anführungszeichen getrennt sind, oder Sie können mehrere Environment-Zeilen verwenden. Der \ dient zur Zeilenfortsetzung in der Override-Datei.

  3. Speichern und beenden: Speichern Sie die Datei. Systemd lädt den Daemon automatisch neu und fordert Sie auf, den Dienst neu zu starten. Bestätigen Sie den Neustart. Wenn Sie nicht dazu aufgefordert werden, laden Sie manuell neu und starten Sie neu:
    bash sudo systemctl daemon-reload sudo systemctl restart <service_name>

Globale Systemd-Proxy-Konfiguration

Für Dienste, die keine spezifischen Proxy-Einstellungen haben, oder für eine systemweite Standardeinstellung, konfigurieren Sie Proxy-Einstellungen in der globalen Umgebung von Systemd. Dies betrifft alle Dienste, die diese Variablen nicht explizit überschreiben.

  1. Erstellen Sie ein Verzeichnis für Drop-in-Konfigurationen:
    bash sudo mkdir -p /etc/systemd/system.conf.d/

  2. Erstellen Sie eine Proxy-Konfigurationsdatei:
    bash sudo nano /etc/systemd/system.conf.d/proxy.conf

  3. Fügen Sie Proxy-Umgebungsvariablen hinzu:
    ini [Manager] DefaultEnvironment="HTTP_PROXY=http://proxy.example.com:8080" DefaultEnvironment="HTTPS_PROXY=http://proxy.example.com:8080" DefaultEnvironment="NO_PROXY=localhost,127.0.0.1" DefaultEnvironment="http_proxy=http://proxy.example.com:8080" DefaultEnvironment="https_proxy=http://proxy.example.com:8080" DefaultEnvironment="no_proxy=localhost,127.0.0.1"

  4. Systemd-Daemon neu laden und Dienste neu starten:
    bash sudo systemctl daemon-reload sudo systemctl restart --all # Mit Vorsicht verwenden, startet alle Benutzer- und Systemdienste neu
    Ein vollständiger Systemneustart ist oft der sicherste Weg, um sicherzustellen, dass alle Dienste diese globalen Änderungen übernehmen.

Überprüfung

Nach der Konfiguration der Proxy-Einstellungen überprüfen Sie deren Wirksamkeit:

  • Umgebungsvariablen:
    bash env | grep -i proxy
  • APT:
    bash apt config dump | grep -i proxy
    Versuchen Sie ein Update: sudo apt update.
  • Allgemeiner Netzwerkzugriff:
    bash curl -v http://ifconfig.me
    Die Ausgabe sollte die IP-Adresse des Proxyservers anzeigen, wenn der Datenverkehr über diesen geleitet wird, oder Ihre externe IP, wenn NO_PROXY wirksam ist.
  • Systemd-Dienst: Überprüfen Sie den Dienststatus und die Protokolle auf Konnektivitätsprobleme.
    bash sudo systemctl status <service_name> sudo journalctl -u <service_name>
    Sie können auch die Umgebung eines laufenden Dienstprozesses inspizieren. Finden Sie die PID des Dienstes, dann:
    bash sudo cat /proc/<PID>/environ | tr '\0' '\n' | grep -i proxy

Vergleich der Proxy-Konfigurationsmethoden

Methode Geltungsbereich Persistenz Betroffene Komponenten Konfigurationsbeispiel
Shell-Umgebung (Temporär) Aktuelle Shell-Sitzung Nein Befehle, die von der aktuellen Shell gestartet werden export HTTP_PROXY="..."
Benutzerprofil (~/.bashrc) Anmeldesitzungen des Benutzers Ja Benutzeranwendungen, Shell-Befehle export-Zeilen zu ~/.bashrc hinzufügen
Systemweit (/etc/environment) Alle Anmeldesitzungen, einige Systemprozesse Ja Login-Shells, einige Anwendungen (nicht-Systemd) HTTP_PROXY="..." in /etc/environment
Systemweit (/etc/profile.d/) Alle Login-Shells Ja Login-Shells, von ihnen gestartete Anwendungen Skript mit export-Zeilen in /etc/profile.d/
APT (/etc/apt/apt.conf.d/) Nur APT-Paketmanager Ja apt, apt-get, aptitude Acquire::http::Proxy "..."; in 01proxy
Systemd-Dienst-Override (override.conf) Spezifische Systemd-Einheit Ja Ein Systemd-Dienst Environment="..." in /etc/systemd/system/<service>.service.d/override.conf
Global Systemd (system.conf.d/) Alle Systemd-Dienste (Standard) Ja Alle Systemd-Dienste, sofern nicht überschrieben DefaultEnvironment="..." in /etc/systemd/system.conf.d/proxy.conf
Aktualisiert: 03.03.2026
Zurück zur Kategorie

Testen Sie unsere Proxys

20.000+ Proxys in über 100 Ländern weltweit

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.