6.2 KiB
Dokumentation: 3proxy Docker Container
Inhaltsverzeichnis
- Übersicht
- Voraussetzungen
- Schnellstart
- Umgebungsvariablen
- Ports
- Authentifizierung
- Mehrere Benutzer
- Docker Compose
- Erweiterte Konfiguration
- Logging
- Lizenz
Übersicht
Dieser Container stellt einen leichtgewichtigen Proxyserver auf Basis von 3proxy bereit. Er unterstützt sowohl HTTP-Proxy als auch SOCKS5-Proxy (inkl. IPv6) und lässt sich vollständig über Umgebungsvariablen konfigurieren.
Das Image basiert auf dem ursprünglichen Projekt von tarampampam/3proxy-docker und wurde in einem Fork weiterentwickelt.
Voraussetzungen
- Docker (>= 20.10) oder eine kompatible Container-Runtime
- Optional: Docker Compose oder Kubernetes/Helm für komplexere Setups
Schnellstart
docker run -d \
-p 3128:3128 \
-p 1080:1080 \
ghcr.io/tarampampam/3proxy:latest
Der Container startet sofort ohne Authentifizierung. HTTP-Proxy ist auf Port 3128, SOCKS5-Proxy auf Port 1080 erreichbar.
Umgebungsvariablen
Alle Konfigurationsparameter werden über Umgebungsvariablen gesteuert:
| Variable | Beschreibung | Standardwert | Beispiel |
|---|---|---|---|
PROXY_LOGIN |
Benutzername für die Proxy-Authentifizierung (leer = keine Authentifizierung) | (leer) | nutzer |
PROXY_PASSWORD |
Passwort für die Proxy-Authentifizierung (leer = keine Authentifizierung) | (leer) | geheim |
EXTRA_ACCOUNTS |
Zusätzliche Proxy-Benutzer im JSON-Format | {} |
{"nutzer2":"pass2","gast":"pw"} |
PRIMARY_RESOLVER |
Primärer DNS-Resolver | 1.0.0.1 |
8.8.8.8:5353/tcp |
SECONDARY_RESOLVER |
Sekundärer DNS-Resolver | 8.8.4.4 |
2001:4860:4860::8844 |
MAX_CONNECTIONS |
Maximale Anzahl gleichzeitiger Verbindungen | 1024 |
5000 |
PROXY_PORT |
Port des HTTP-Proxys | 3128 |
8080 |
SOCKS_PORT |
Port des SOCKS5-Proxys | 1080 |
8888 |
EXTRA_CONFIG |
Zusätzliche 3proxy-Konfigurationszeilen (werden ans Ende der Config, vor proxy und flush, angehängt) |
(leer) | # Kommentar\nnserver 1.1.1.1 |
LOG_OUTPUT |
Ausgabepfad für Logs (/dev/null deaktiviert das Logging) |
/dev/stdout |
/tmp/3proxy.log |
Ports
| Port | Protokoll | Beschreibung |
|---|---|---|
3128 |
TCP | HTTP-Proxy |
1080 |
TCP | SOCKS5-Proxy |
Beide Ports unterstützen IPv4 und IPv6.
Authentifizierung
Wird PROXY_LOGIN und PROXY_PASSWORD gesetzt, aktiviert der Container automatisch die Authentifizierung.
Verbindungen ohne gültige Zugangsdaten werden abgelehnt.
docker run -d \
-p 3128:3128 \
-p 1080:1080 \
-e PROXY_LOGIN=nutzer \
-e PROXY_PASSWORD=geheim \
ghcr.io/tarampampam/3proxy:latest
Mehrere Benutzer
Über EXTRA_ACCOUNTS können weitere Benutzer als JSON-Objekt hinterlegt werden.
PROXY_LOGIN/PROXY_PASSWORD definiert dabei den primären Benutzer, EXTRA_ACCOUNTS fügt weitere hinzu:
docker run -d \
-p 3128:3128 \
-e PROXY_LOGIN=admin \
-e PROXY_PASSWORD=adminpass \
-e EXTRA_ACCOUNTS='{"nutzer2":"pass2","gast":"gastpass"}' \
ghcr.io/tarampampam/3proxy:latest
Docker Compose
Empfohlene Methode für den produktiven Einsatz:
services:
3proxy:
image: ghcr.io/tarampampam/3proxy:latest
restart: unless-stopped
environment:
PROXY_LOGIN: nutzer
PROXY_PASSWORD: geheim
MAX_CONNECTIONS: 2048
PROXY_PORT: 8080
SOCKS_PORT: 8888
PRIMARY_RESOLVER: 1.1.1.1
ports:
- "8080:8080/tcp"
- "8888:8888/tcp"
Starten mit:
docker compose up -d
Erweiterte Konfiguration
Über EXTRA_CONFIG können beliebige 3proxy-Direktiven ergänzt werden.
Der Inhalt wird direkt in die Konfigurationsdatei eingefügt, bevor die proxy- und socks-Direktiven gesetzt werden.
Beispiel – benutzerdefinierten DNS-Server hinzufügen:
docker run -d \
-p 3128:3128 \
-e EXTRA_CONFIG="nserver 9.9.9.9" \
ghcr.io/tarampampam/3proxy:latest
Mehrere Zeilen können mit \n getrennt werden:
-e EXTRA_CONFIG="# eigene Regel\nnserver 9.9.9.9"
Logging
Standardmäßig werden Logs im JSON-Format auf stdout ausgegeben. Das Format enthält u. a.:
- Zeitstempel
- Proxy-Typ und Port
- Fehlercode
- Authentifizierter Benutzer
- Client-IP und Port
- Server-IP und Port
- Übertragene Bytes (gesendet/empfangen)
- Angeforderter Hostname
Logging deaktivieren:
-e LOG_OUTPUT=/dev/null
Logs in eine Datei schreiben (Bind-Mount erforderlich):
docker run -d \
-p 3128:3128 \
-e LOG_OUTPUT=/var/log/3proxy.log \
-v /host/pfad/logs:/var/log \
ghcr.io/tarampampam/3proxy:latest
Lizenz
Dieses Projekt steht unter der WTFPL – freie Nutzung ohne Einschränkungen.