Zum Inhalt springen

3Proxy: Ein einfacher und leistungsstarker Proxyserver für den persönlichen Gebrauch

Инструменты
3Proxy: Ein einfacher und leistungsstarker Proxyserver für den persönlichen Gebrauch

3Proxy ist eine leichtgewichtige, plattformübergreifende Proxy-Server-Suite, die auf hohe Performance und minimalen Ressourcenverbrauch ausgelegt ist und Protokolle wie HTTP/HTTPS, SOCKS4/5 und POP3 unterstützt. Sie dient als ideale Lösung für persönliche Anwendungsfälle, in denen ein Benutzer den lokalen Datenverkehr verwalten, mehrere Upstream-Anbieter verketten oder ein sicheres Gateway mit einem Speicherbedarf von oft unter 5 MB erstellen möchte.

Die Architektur und Philosophie von 3Proxy

Im Gegensatz zu monolithischen Proxy-Servern wie Squid, die für massives Enterprise-Caching und komplexe Inhaltsfilterung konzipiert sind, folgt 3Proxy der Unix-Philosophie, eine Sache besonders gut zu machen. Es ist in C geschrieben und wird als kleiner Satz von ausführbaren Dateien verteilt. Dieses Design macht es einzigartig geeignet für Umgebungen mit geringen Ressourcen, wie z. B. einen 5 $/Monat VPS oder einen Raspberry Pi, wo jedes Megabyte RAM entscheidend ist.

Die Suite ist modular aufgebaut. Während die meisten Benutzer sie als eine einzige "3proxy"-Datei ausführen, die eine Konfigurationsdatei liest, enthält sie auch eigenständige Mini-Server wie proxy (HTTP), socks (SOCKS4/5) und ftppr (FTP). Diese Modularität ermöglicht eine granulare Kontrolle darüber, welche Dienste aktiv sind, was die Angriffsfläche und den Overhead reduziert. Für Privatanwender bedeutet dies, dass Sie in Sekundenschnelle ein SOCKS5-Gateway für Ihren Browser oder ein Scraping-Skript bereitstellen können, ohne den Ballast eines Web-Caches der Enterprise-Klasse.

Eines der herausragenden Merkmale von 3Proxy ist seine Portabilität. Es läuft nativ auf Windows, Linux und verschiedenen BSD-Varianten. Für Entwickler, die in unterschiedlichen Umgebungen arbeiten, vereinfacht eine konsistente Konfigurationssyntax über Betriebssystemgrenzen hinweg die Bereitstellung von lokalen Entwicklungs-Proxys oder Testumgebungen.

3Proxy: Ein einfacher und leistungsstarker Proxy-Server für den persönlichen Gebrauch

Installation und Ersteinrichtung

Die Installation von 3Proxy auf einer Linux-Distribution (wie Ubuntu oder Debian) erfolgt in der Regel über die Quellcode-Kompilierung, um sicherzustellen, dass Sie über die neuesten Funktionen und Sicherheits-Patches verfügen. Der Prozess ist unkompliziert und erfordert keine umfangreichen Abhängigkeiten.

  1. System aktualisieren: sudo apt update && sudo apt install build-essential git -y
  2. Repository klonen: git clone https://github.com/3proxy/3proxy.git
  3. Quelle kompilieren: Navigieren Sie in das Verzeichnis und führen Sie make -f Makefile.Linux aus.
  4. Installieren: sudo make -f Makefile.Linux install.

Unter Windows besteht der Prozess darin, die vorkompilierten Binärdateien herunterzuladen und sie als Dienst auszuführen. Unabhängig vom Betriebssystem liegt das Herzstück des Betriebs in der Datei 3proxy.cfg. Diese Datei legt fest, wie der Server auf Verbindungen wartet, wer darauf zugreifen darf und wohin der Datenverkehr geleitet wird.

Die grundlegende Konfigurationsstruktur

Eine minimale Konfigurationsdatei erfordert einige globale Direktiven, gefolgt von den spezifischen Proxy-Dienstdefinitionen. Unten finden Sie ein Beispiel für eine einfache SOCKS5- und HTTP-Proxy-Konfiguration mit einfacher Authentifizierung.

# Globale Einstellungen
daemon
nscache 65536
timeouts 1 5 30 60 180 1800 15 60

# Authentifizierung
users gproxy_user:CL:mein_sicheres_passwort
auth strong

# Dienstdefinitionen
proxy -p8080 -n -a
socks -p1080 -n -a

In diesem Beispiel weist der Befehl daemon 3Proxy an, im Hintergrund zu laufen. Die Zeile users definiert einen Benutzernamen und ein Passwort unter Verwendung von "Cleartext" (CL) Speicherung. Die Befehle proxy und socks starten einen HTTP-Proxy auf Port 8080 bzw. einen SOCKS5-Proxy auf Port 1080. Das Flag -n deaktiviert die interne Hostnamen-Auflösung von 3Proxy (stattdessen wird das OS verwendet), und -a aktiviert den anonymen Modus, um die ursprüngliche IP des Clients vor dem Zielserver zu verbergen.

Erweitertes Routing und Parent-Proxys

Für Privatanwender, die hochwertige Residential Proxys von Diensten wie GProxy nutzen, ist die "parent"-Direktive von 3Proxy ein echter Game-Changer. Diese Funktion ermöglicht es Ihnen, 3Proxy als lokalen Einstiegspunkt zu verwenden, der alle Anfragen an einen entfernten Upstream-Anbieter weiterleitet. Dies ist besonders nützlich für Anwendungen, die nativ keine SOCKS5-Authentifizierung unterstützen, oder für Benutzer, die ihr Proxy-Management zentralisieren möchten.

Wenn Sie 3Proxy mit GProxy verketten, erhalten Sie die Möglichkeit, lokale Zugriffskontrolllisten (ACLs) und Protokollierung anzuwenden, bevor der Datenverkehr Ihr Netzwerk überhaupt verlässt. Dies fügt Ihren Web-Scraping- oder Browsing-Aktivitäten eine Ebene der Sicherheit und Transparenz hinzu.

Konfigurieren von Upstream-Chaining

Um Datenverkehr an einen externen Anbieter weiterzuleiten, verwenden Sie den Befehl parent. Dieser Befehl spezifiziert die Gewichtung (für Lastverteilung), das Protokoll, die Remote-IP, den Port und die Zugangsdaten.

# Definition des Parent-Proxys (z. B. GProxy Residential Endpunkt)
# Format: parent [Gewichtung] [Typ] [IP] [Port] [Benutzer] [Passwort]
parent 1000 socks5 1.2.3.4 5678 gproxy_id gproxy_pass

# Start des lokalen SOCKS5-Servers, der den Parent verwendet
socks -p1080

Mit diesem Setup wird der gesamte Datenverkehr jeder Anwendung, die sich mit localhost:1080 verbindet, über das Residential-Netzwerk von GProxy geleitet. Dies ist wesentlich effizienter, als jede einzelne Anwendung mit Remote-Zugangsdaten zu konfigurieren, insbesondere wenn sich diese Zugangsdaten oder Endpunkte häufig ändern.

Vergleich von 3Proxy mit Alternativen

Um zu verstehen, wo 3Proxy in das Ökosystem passt, ist es hilfreich, es mit anderen populären Proxy-Lösungen wie Squid und Dante zu vergleichen. Während Squid der Industriestandard für Caching ist und Dante für seine robuste SOCKS-Implementierung bekannt ist, besetzt 3Proxy die einzigartige Nische der "minimalistischen Flexibilität".

Feature 3Proxy Squid Dante
Speichernutzung < 5MB 100MB+ 20MB - 50MB
Protokolle HTTP, SOCKS4/5, POP3, FTP HTTP, HTTPS, FTP SOCKS4/5
Einrichtung Einfach (Eine Konfig-Datei) Schwer (Komplexe Syntax) Mittel
Chaining Exzellent (Parent-Proxys) Mäßig (Cache Peers) Begrenzt
OS-Support Windows, Linux, BSD Primär Linux/Unix Linux/Unix
3Proxy: Ein einfacher und leistungsstarker Proxy-Server für den persönlichen Gebrauch

Zugriffskontrolle und Sicherheit

Sicherheit ist ein primäres Anliegen für jeden Benutzer, der einen Proxy-Server im Internet bereitstellt. 3Proxy bietet einen robusten Satz von ACLs, mit denen Sie den Zugriff basierend auf der Quell-IP, der Ziel-IP oder der Tageszeit einschränken können. Dies ist unerlässlich, wenn Sie 3Proxy auf einem öffentlichen VPS ausführen, um aus der Ferne auf Ihr GProxy-Abonnement zuzugreifen.

Die Direktiven allow und deny werden nacheinander verarbeitet. Das bedeutet, dass die Reihenfolge Ihrer Regeln entscheidend ist. Ein häufiger Fehler besteht darin, eine allgemeine "allow"-Regel vor eine spezifische "deny"-Regel zu setzen, wodurch die Einschränkung nutzlos wird.

Beispiel für IP-basierte Filterung

Wenn Sie sicherstellen möchten, dass nur Ihre Heim-IP-Adresse Ihre 3Proxy-Instanz nutzen kann, würden Sie Ihre Konfiguration wie folgt strukturieren:

# Benutzer definieren
users admin:CL:geheim123

# Zugriffskontrollliste (ACL)
auth strong
allow admin 1.2.3.4 * * *
deny * * * * *

# Proxy starten
proxy -p8888

In diesem Szenario darf nur der Benutzer "admin", der sich von der IP 1.2.3.4 aus verbindet, auf jedes Ziel (*) an jedem Port (*) zu jeder Zeit (*) zugreifen. Alle anderen Verbindungsversuche werden explizit abgelehnt. Diese "Default-Deny"-Haltung ist der Goldstandard für die Absicherung persönlicher Proxy-Server.

Praktischer Anwendungsfall: Testen Ihres Setups mit Python

Sobald Ihr 3Proxy-Server läuft, insbesondere wenn er mit einem Upstream-Anbieter wie GProxy verkettet ist, sollten Sie überprüfen, ob er Ihre IP korrekt maskiert und die Authentifizierung handhabt. Die requests-Bibliothek von Python ist das perfekte Werkzeug für diese Überprüfung.

import requests

# Definieren Sie Ihre lokale 3Proxy-Adresse
proxy_url = "http://admin:[email protected]:8888"

proxies = {
    "http": proxy_url,
    "https": proxy_url,
}

try:
    # Überprüfen Sie die IP, wie sie vom Ziel gesehen wird
    response = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=10)
    data = response.json()
    print(f"Proxy-Verbindung erfolgreich!")
    print(f"Erkannte IP: {data['ip']}")
except Exception as e:
    print(f"Verbindung fehlgeschlagen: {e}")

Dieses Skript versucht, über Ihre 3Proxy-Instanz eine Verbindung zu einer öffentlichen IP-Erkennungs-API herzustellen. Wenn Sie einen GProxy Residential Parent konfiguriert haben, sollte die "Erkannte IP" eine Residential-Adresse widerspiegeln und nicht Ihre lokale oder VPS-IP. Dies bestätigt, dass die gesamte Kette – von Ihrem Skript über 3Proxy bis hin zu GProxy – korrekt funktioniert.

Protokollierung und Verkehrsüberwachung

Für die langfristige persönliche Nutzung ist die Überwachung Ihres Datenverkehrs unerlässlich, um Fehler zu beheben und unbefugte Zugriffsversuche zu identifizieren. 3Proxy bietet ein flexibles Protokollierungssystem, das in Dateien oder an einen Syslog-Server ausgeben kann. Sie können das Log-Format anpassen, um spezifische Datenpunkte wie Byte-Zahlen, Verbindungsdauer und Ziel-Hostnamen aufzunehmen.

Eine typische Protokollierungskonfiguration könnte so aussehen:

log /var/log/3proxy/3proxy.log D
logformat "L%Y-%m-%d %H:%M:%S %U %C:%c %R:%r %O %I %h %T"

Das Flag D weist 3Proxy an, die Protokolle täglich zu rotieren, um zu verhindern, dass eine einzelne Datei den gesamten verfügbaren Festplattenspeicher verbraucht. Der logformat-String verwendet Platzhalter, um den Zeitstempel, den Benutzernamen (%U), die Client-IP/Port (%C:%c), die Remote-IP/Port (%R:%r) und das Datenvolumen (%O für ausgehend, %I für eingehend) aufzuzeichnen. Die Analyse dieser Protokolle kann Ihnen helfen, Ihre GProxy-Nutzung zu optimieren, indem Sie identifizieren, welche Anwendungen die meisten Daten verbrauchen.

Wichtige Erkenntnisse

  • 3Proxy ist der Effizienzkönig: Es ist die beste Wahl für Benutzer, die einen funktionalen Proxy-Server benötigen, ohne Systemressourcen zu opfern. Die RAM-Nutzung von unter 5 MB ist von Squid oder Dante unerreicht.
  • Chaining ist mächtig: Nutzen Sie 3Proxy als lokales Gateway für GProxy Residential Proxys. Dies ermöglicht es Ihnen, die Authentifizierung zu zentralisieren und lokale Sicherheitsregeln anzuwenden, bevor der Datenverkehr das Residential-Netzwerk erreicht.
  • Reihenfolge ist wichtig bei ACLs: Folgen Sie immer einer "Default-Deny"-Strategie. Platzieren Sie Ihre allow-Regeln für spezifische IPs und Benutzer ganz oben und beenden Sie die Liste mit deny * * * * *, um den Server abzusperren.
  • Plattformübergreifende Konsistenz: Da die Konfigurationssyntax unter Windows und Linux identisch ist, können Sie Ihre Skripte lokal unter Windows entwickeln und ohne Änderungen an Ihrem 3Proxy-Setup auf einem Linux-VPS bereitstellen.

Praktischer Tipp 1: Wenn Sie 3Proxy unter Linux ausführen, verwenden Sie immer die nserver-Direktive, um einen schnellen DNS-Anbieter (wie 1.1.1.1 oder 8.8.8.8) anzugeben. Dies verhindert, dass DNS-Engpässe Ihre Proxy-Anfragen verlangsamen.

Praktischer Tipp 2: Verwenden Sie den Befehl stacksize in Ihrer Konfiguration, wenn Sie 3Proxy in einer extrem eingeschränkten Umgebung (wie einem 128 MB RAM VPS) ausführen, um den Speicher-Overhead pro Thread weiter zu begrenzen.

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