Zum Inhalt springen
Guides 7 Min. Lesezeit 835 Aufrufe

SSH-Tunnel als Proxy

Erfahren Sie, wie Sie SSH-Tunnel für einen sicheren SOCKS-Proxy nutzen, Ihre Daten verschlüsseln und privates, uneingeschränktes

Security
SSH-Tunnel als Proxy

Ein SSH-Tunnel kann als SOCKS-Proxy verwendet werden, indem die dynamische Portweiterleitungsfunktion des SSH-Clients genutzt wird. Dies ermöglicht es, den Datenverkehr von einem lokalen Port über den SSH-Server an beliebige Ziele im Netzwerk weiterzuleiten, die für den SSH-Server zugänglich sind.

SOCKS über SSH verstehen

SOCKS (Socket Secure) ist ein Internetprotokoll, das Netzwerkpakete zwischen einem Client und einem Server über einen Proxy-Server leitet. In Kombination mit der dynamischen Portweiterleitung von SSH erstellt der SSH-Client einen lokalen SOCKS-Proxy-Server. Jede Anwendung, die für die Verwendung dieses lokalen SOCKS-Proxys konfiguriert ist, lässt ihren Datenverkehr verschlüsseln und über die SSH-Verbindung zum entfernten SSH-Server leiten. Der SSH-Server fungiert dann als SOCKS-Proxy und stellt im Auftrag des Clients Verbindungen zum endgültigen Ziel her.

Dieser Mechanismus erweitert effektiv die Netzwerkreichweite des Clients auf die des SSH-Servers und verschlüsselt gleichzeitig alle Daten, die zwischen dem Client und dem SSH-Server übertragen werden.

Wie dynamische Portweiterleitung funktioniert

Die dynamische Portweiterleitung, die durch die Option -D in SSH angegeben wird, weist den SSH-Client an, Folgendes zu tun:
1. Auf einem angegebenen lokalen Port auf eingehende Verbindungen zu lauschen.
2. Wenn eine Verbindung auf diesem lokalen Port empfangen wird, fungiert der SSH-Client als SOCKS-Server.
3. Er verhandelt das SOCKS-Protokoll mit der Client-Anwendung (z. B. einem Webbrowser).
4. Basierend auf der SOCKS-Anfrage (die den Zielhost und -port enthält) leitet der SSH-Client diese Anfrage über den verschlüsselten SSH-Tunnel an den SSH-Server weiter.
5. Der SSH-Server initiiert dann eine Verbindung zum Zielhost und -port aus seinem eigenen Netzwerkkontext.
6. Alle nachfolgenden Daten, die zwischen der Client-Anwendung und dem Zielhost ausgetauscht werden, werden über den SSH-Tunnel weitergeleitet und zwischen dem Client und dem SSH-Server verschlüsselt.

Einrichten eines SSH SOCKS-Proxys

Um einen SSH SOCKS-Proxy einzurichten, wird ein SSH-Client verwendet, um eine Verbindung zu einem entfernten SSH-Server herzustellen. Der Server muss so konfiguriert sein, dass er TCP-Weiterleitung zulässt (was normalerweise standardmäßig über AllowTcpForwarding yes in sshd_config aktiviert ist).

Der grundlegende Befehl zum Einrichten einer dynamischen Portweiterleitung lautet:

ssh -D [LOKALER_PORT] [BENUTZER]@[SSH_SERVER_IP] -N -f

Erläuterung der Befehlsoptionen:

  • -D [LOKALER_PORT]: Gibt die dynamische Portweiterleitung an. Der SSH-Client lauscht auf dem LOKALEN_PORT auf dem lokalen Rechner. Dieser Port fungiert als SOCKS-Proxy. Gängige Wahlmöglichkeiten für LOKALER_PORT sind 1080, 8080, 9050 oder jeder unprivilegierte Port über 1024.
  • [BENUTZER]: Der Benutzername für die Authentifizierung auf dem entfernten SSH-Server.
  • [SSH_SERVER_IP]: Die IP-Adresse oder der Hostname des entfernten SSH-Servers.
  • -N: Verhindert die Ausführung entfernter Befehle. Diese Option wird verwendet, wenn nur Portweiterleitung gewünscht ist, ohne eine interaktive Shell.
  • -f: Sendet ssh vor der Befehlsausführung in den Hintergrund. Dies ermöglicht es dem SSH-Tunnel, als Hintergrundprozess zu laufen. Wenn weggelassen, bleibt die SSH-Verbindung im Vordergrund.
  • -q: Unterdrückt die meisten Warn- und Diagnosemeldungen.
  • -C: Fordert die Komprimierung aller Daten an (einschließlich stdin, stdout, stderr sowie weitergeleiteter X11- und TCP-Daten). Nützlich bei langsamen Verbindungen.

Beispiel-Einrichtung:

Um einen SOCKS-Proxy zu erstellen, der auf dem lokalen Port 8080 lauscht und sich mit [email protected] verbindet:

ssh -D 8080 [email protected] -N -f

Nach Ausführung dieses Befehls läuft der SSH-Client-Prozess im Hintergrund und lauscht auf localhost:8080.

Konfigurieren von Clients zur Verwendung des SOCKS-Proxys

Sobald der SSH SOCKS-Proxy aktiv ist, müssen Anwendungen so konfiguriert werden, dass sie ihren Datenverkehr über localhost:[LOKALER_PORT] leiten.

Webbrowser

Firefox:
  1. Öffnen Sie die Firefox-Einstellungen.
  2. Suchen Sie nach "Proxy" oder navigieren Sie zu "Netzwerk-Einstellungen" (normalerweise about:preferences#general -> Netzwerk-Einstellungen).
  3. Wählen Sie "Manuelle Proxy-Konfiguration".
  4. Geben Sie im Feld "SOCKS-Host" localhost und den PORT (z. B. 8080) ein.
  5. Wählen Sie "SOCKS v5".
  6. Stellen Sie sicher, dass "DNS über SOCKS v5" aktiviert ist, um DNS-Lecks zu verhindern.
  7. Klicken Sie auf OK.
Chrome/Chromium:

Chrome verfügt nicht über integrierte SOCKS-Proxy-Einstellungen. Es verlässt sich typischerweise auf System-Proxy-Einstellungen oder erfordert Befehlszeilen-Flags oder Erweiterungen.

Verwendung von Befehlszeilen-Flags (temporär):

google-chrome --proxy-server="socks5://localhost:8080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

Das Flag --host-resolver-rules stellt sicher, dass DNS-Anfragen ebenfalls über den SOCKS5-Proxy geleitet werden, wodurch DNS-Lecks verhindert werden.

Verwendung von Proxy-Switcher-Erweiterungen:
Installieren Sie eine Browser-Erweiterung wie "Proxy SwitchyOmega" und konfigurieren Sie diese für die Verwendung eines SOCKS5-Proxys unter localhost:[LOKALER_PORT].

Systemweite Proxy-Einstellungen (macOS/Windows/Linux Desktop-Umgebungen)

Viele Betriebssysteme ermöglichen die Einrichtung eines systemweiten SOCKS-Proxys. Dies wirkt sich auf die meisten Anwendungen aus, die die System-Proxy-Einstellungen respektieren.

  • macOS: Systemeinstellungen -> Netzwerk -> Netzwerkdienst auswählen -> Details -> Proxies -> "SOCKS-Proxy" aktivieren -> localhost und PORT eingeben.
  • Windows: Einstellungen -> Netzwerk und Internet -> Proxy -> Manuelle Proxy-Einrichtung -> "Proxyserver verwenden" aktivieren -> "SOCKS-Proxy" auf localhost und PORT setzen.
  • Linux (GNOME/KDE): Typischerweise in den Netzwerk- oder Proxy-Einstellungen innerhalb der Systemeinstellungen zu finden, ähnlich wie bei macOS/Windows.

Befehlszeilen-Tools

curl:
curl --socks5-hostname localhost:8080 http://example.com

Die Verwendung von --socks5-hostname stellt sicher, dass die DNS-Auflösung ebenfalls über den SOCKS-Proxy-Server erfolgt, wodurch potenzielle DNS-Lecks verhindert werden.

git:

Konfigurieren Sie Git, um den SOCKS-Proxy für HTTPS/HTTP- oder SSH-Verbindungen zu verwenden.

Für HTTPS/HTTP:

git config --global http.proxy socks5://localhost:8080
git config --global https.proxy socks5://localhost:8080

Für SSH (wenn Git SSH zum Klonen/Pushen verwendet):
Bearbeiten Sie ~/.ssh/config:

Host github.com
    ProxyCommand nc -X 5 -x localhost:8080 %h %p

Dies weist SSH an, sich über den lokalen SOCKS5-Proxy mit github.com zu verbinden.

proxychains-ng:

Für Anwendungen, die SOCKS-Proxys nicht direkt unterstützen, kann proxychains-ng sie dazu zwingen, einen zu verwenden.
1. proxychains-ng installieren: Typischerweise über Paketmanager verfügbar (z. B. sudo apt install proxychains4).
2. Konfigurieren: Bearbeiten Sie /etc/proxychains.conf oder ~/.proxychains/proxychains.conf (falls erstellt) und fügen Sie hinzu:
socks5 127.0.0.1 8080
3. Anwendung ausführen:
bash proxychains4 [ihre_anwendung]

Anwendungsfälle

SSH SOCKS-Proxys bieten mehrere praktische Vorteile:

  • Umgehen von Netzwerkbeschränkungen: Zugriff auf Dienste oder Websites, die durch lokale Firewalls oder geografische Beschränkungen blockiert sind, indem der Datenverkehr über einen SSH-Server in einem uneingeschränkten Netzwerk geleitet wird.
  • Verschlüsseln von unverschlüsseltem Datenverkehr: Der gesamte Datenverkehr zwischen dem Client und dem SSH-Server ist verschlüsselt, wodurch Daten vor Abhören in lokalen Netzwerken, insbesondere in öffentlichen WLANs, geschützt werden.
  • Zugriff auf private Netzwerkressourcen: Wenn sich der SSH-Server in einem privaten Netzwerk (z. B. einem Unternehmens-LAN) befindet, kann der SOCKS-Proxy einen sicheren Zugriff auf Ressourcen in diesem Netzwerk von einem externen Standort aus ermöglichen.
  • Maskieren der Client-IP-Adresse: Für den Zielserver scheint die Verbindung von der IP-Adresse des SSH-Servers zu stammen, was dem Client eine Schicht Anonymität bietet.
  • Sichere Fernverwaltung: Zugriff auf entfernte Dienste (z. B. Datenbanken, Webserver) über einen verschlüsselten Tunnel, auch wenn die Dienste selbst keine Verschlüsselung unterstützen.

SSH-Tunnel vs. VPN

Obwohl sowohl SSH-Tunnel als auch VPNs (Virtual Private Networks) verschlüsselten Netzwerkzugriff bieten, unterscheiden sie sich in Umfang und Implementierung.

Merkmal SSH SOCKS-Proxy (Tunnel) VPN (z. B. OpenVPN, WireGuard)
Umfang Anwendungsspezifisch (SOCKS-fähige Apps) oder manuelle Konfiguration. Systemweiter Netzwerkverkehr.
Einrichtungskomplexität Relativ einfach (einzelner SSH-Befehl). Erfordert Server-Setup, Client-Konfiguration, Zertifikate.
Protokoll SOCKS über SSH (TCP). Verschiedene (OpenVPN: TCP/UDP, WireGuard: UDP).
Verschlüsselung Robuste SSH-Verschlüsselung. Verschlüsselung des VPN-Protokolls (z. B. AES-256).
Netzwerkschicht Anwendungsschicht (SOCKS) über Transportschicht (SSH). Netzwerkschicht (IP-Pakete gekapselt).
Datenverkehrstyp Primär TCP, SOCKS5 kann UDP proxen. Gesamter IP-Verkehr (TCP, UDP, ICMP).
DNS-Auflösung SOCKS5 kann DNS proxen; SOCKS4 nicht. Manuelle Konfiguration oft nötig. Proxed typischerweise alle DNS-Anfragen automatisch.
Overhead SSH-Protokoll-Overhead, TCP-über-TCP kann Leistung beeinträchtigen. VPN-Protokoll-Overhead, generell für Leistung optimiert.
Anwendungsfälle Umgehen spezifischer Blockaden, Proxy für einzelne Apps, temporärer Zugriff. Allgemeiner sicherer Browserzugriff, Fernzugriff auf Büros, vollständige Netzwerkanonymität.

Sicherheitsaspekte

Die Verwendung eines SSH SOCKS-Proxys bringt spezifische Sicherheitsaspekte mit sich:

  • Vertrauen in den SSH-Server: Der SSH-Server wird zu einem kritischen Punkt in der Vertrauenskette. Der gesamte Datenverkehr läuft über ihn, sodass der Serverbetreiber theoretisch unverschlüsselten Datenverkehr inspizieren kann, nachdem er den SSH-Tunnel verlassen hat, falls der Zieldienst kein TLS/SSL verwendet.
  • SSH-Server-Sicherheit: Der SSH-Server selbst muss sicher sein. Dazu gehören die Verwendung starker Authentifizierung (SSH-Schlüssel gegenüber Passwörtern bevorzugt), die Aktualisierung des SSH-Daemons und die Anwendung geeigneter Firewall-Regeln. Ein kompromittierter SSH-Server gefährdet die Sicherheit des Tunnels.
  • Exposition des lokalen Ports: Der lokale SOCKS-Proxy-Port (LOKALER_PORT) ist typischerweise an localhost (127.0.0.1) gebunden, was bedeutet, dass nur Anwendungen auf dem lokalen Rechner eine Verbindung herstellen können. Wenn 0.0.0.0 verwendet wird (z. B. ssh -D 0.0.0.0:8080 ...), wird der Proxy von anderen Rechnern im lokalen Netzwerk zugänglich, was ein Sicherheitsrisiko darstellen kann, wenn dies nicht beabsichtigt ist.
  • DNS-Leckage: Wenn der SOCKS-Proxy nicht korrekt konfiguriert ist (z. B. bei Verwendung von SOCKS4 oder wenn "DNS über Proxy" in Browsern nicht aktiviert ist), könnten DNS-Anfragen direkt an den Standard-DNS-Server gesendet werden, wodurch die Browseraktivität auch dann offengelegt wird, wenn der Anwendungsdatenverkehr getunnelt wird. SOCKS5 unterstützt die Remote-DNS-Auflösung; stellen Sie sicher, dass diese genutzt wird.

Leistungsaspekte

Leistungseinbußen bei Verwendung eines SSH SOCKS-Proxys:

  • Latenz: Jede Verbindung beinhaltet einen zusätzlichen Hop über den SSH-Server. Dies erhöht die Latenz, was bei latenzempfindlichen Anwendungen spürbar sein kann.
  • Bandbreite: Der maximale Durchsatz wird durch die Bandbreite der Verbindung des Clients zum SSH-Server und der Verbindung des SSH-Servers zum endgültigen Ziel begrenzt.
  • Verschlüsselungs-Overhead: SSH-Verschlüsselung und -Entschlüsselung verbrauchen CPU-Ressourcen sowohl auf dem Client als auch auf dem Server, was die effektive Bandbreite potenziell reduzieren kann.
  • TCP über TCP: Wenn TCP-Verkehr über eine bestehende TCP-basierte SSH-Verbindung getunnelt wird, kann dies aufgrund des Phänomens des "TCP-Meltdowns" zu einer Leistungsverschlechterung führen. Dies tritt auf, wenn Paketverluste auf der zugrunde liegenden TCP-Verbindung zu Neuübertragungen führen, die dann von der inneren TCP-Verbindung erneut übertragen werden, was zu exponentiellem Backoff und reduziertem Durchsatz führt. Die Verwendung von UDP-basierten Tunneln (wie WireGuard) oder SSH über UDP (sshovudp) kann dies mindern, ist aber für SOCKS über SSH nicht Standard.
Aktualisiert: 04.03.2026
Zurück zur Kategorie

Lesen Sie auch

Guides 2 Min.

Proxy für Nike SNKRS: Limitierte Drops ergattern & mehrere Teilnahmen sichern

Nutze Residential- oder Mobile-Proxies für Nike SNKRS, um mit mehreren Accounts an Draws teilzunehmen, IP-Limits zu umgehen und limitierte Drops ohne Bans zu coppen. Welcher Typ zu wählen ist und wie man das Setup einrichtet.

Guides 2 Min.

So richten Sie einen Proxy auf dem iPhone ein (WLAN & SOCKS5)

Richten Sie einen Proxy auf dem iPhone über die nativen Wi-Fi-Einstellungen (HTTP/HTTPS) oder eine Proxy-App wie Shadowrocket für SOCKS5 und Mobilfunkabdeckung ein. Schritt-für-Schritt-iOS-Setup und die zu beachtenden Einschränkungen.

Guides 3 Min.

Proxy für Tinder: Mehrere Accounts & Sperren vermeiden

Nutze Mobile- oder Residential-Proxies für Tinder, um mehrere Profile zu betreiben und IP-Shadowbans zu vermeiden. Warum Mobile gewinnt, wie man es einrichtet und warum ein Proxy allein nicht deinen Standort ändert.

Guides 2 Min.

Proxy für StockX: Preise überwachen & Accounts verwalten

Nutzen Sie Residential-, ISP- oder Mobile-Proxys für StockX, um Preise zu überwachen, mehrere Accounts zu verwalten und Drops ohne Bans zu coppen. Hier erfahren Sie, welchen Typ Sie wählen sollten und wie Sie GProxy einrichten.

Guides 3 Min.

Proxy für OpenAI API: Zugriff, Rate Limits & Setup

Leite die OpenAI API über einen Residential- oder ISP-Proxy (GProxy +) weiter, um auf unterstützte Regionen zuzugreifen, 429-Rate-Limits zu umgehen und Accounts zu isolieren. Welcher Proxy zu verwenden ist, plus Python-Setup-Beispiele.

Guides 1 Min.

Einrichten eines Proxys in Cypress für E2E-Tests

Einrichten eines Proxys in Cypress: HTTP_PROXY-Variablen, cy-proxy-middleware und das Testen standortabhängiger Inhalte.

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.