Files
3proxy-docker/docs/verwendung.md
Patrick Asmus (scriptos) f2562747d7
All checks were successful
Release Docker Image / Build & Push Docker Image (release) Successful in 3m25s
chore: Repo umstrukturiert – Doku, Gitea-Workflow und Bereinigung
2026-04-06 15:58:57 +02:00

6.2 KiB
Raw Permalink Blame History

Dokumentation: 3proxy Docker Container

Inhaltsverzeichnis


Ü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.