.env (enthält Admin-Passwort) und data/ (Datenbank) werden ignoriert. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Proxy Manager
Ein Proxy-Server im Docker-Container, ähnlich wie Squid, aber mit WebUI und REST-API.
- HTTP/HTTPS-Proxy (Port 3128) für Browser, Systemproxy, Outlook/Exchange (EWS, MAPI over HTTP, OWA, ActiveSync)
- SOCKS5-Proxy (Port 1080) mit TCP und UDP. Darüber läuft jedes TCP-Protokoll, z. B. SMTP (25/465/587), IMAP (143/993), POP3 (110/995), SSH, RDP oder FTP-Steuerverbindungen.
- Portweiterleitungen TCP/UDP für Programme ohne Proxy-Unterstützung, z. B. WireGuard, Outlook-Mailkonten oder Geräte
- Beide Proxy-Ports verstehen HTTP und SOCKS5, das Protokoll wird automatisch erkannt.
- Benutzerverwaltung mit Login am Proxy (Basic-Auth bzw. SOCKS5-Login)
- Black-/Whitelist für Domains, Wildcards, Regex, IPs/Netze und Ports, global oder pro Benutzer
- Verlauf: Wer hat wann was aufgerufen, mit Datenmenge, Dauer und Status, als CSV exportierbar
- Live-Verbindungen ansehen und trennen
- Dashboard mit Statistik
- REST-API mit API-Tokens und Swagger-Doku unter
/api/docs - PAC-Datei für automatische Browser-Konfiguration unter
/proxy.pac - Daten liegen in einer SQLite-Datei im Bind Mount
./data, es gibt keine Docker-Volumes.
Start
cp .env.example .env # ADMIN_PASSWORD setzen (sonst wird eins generiert, siehe Log)
docker-compose up -d --build
docker-compose logs proxy # zeigt ggf. das generierte Admin-Passwort
WebUI: http://<host>:8080 (Host-Ports in .env änderbar: HTTP_PORT_HOST, SOCKS_PORT_HOST, WEB_PORT_HOST)
Ports
| Port | Zweck |
|---|---|
| 3128/tcp | HTTP/HTTPS-Proxy (+ SOCKS5) |
| 1080/tcp | SOCKS5 (+ HTTP) |
| 8080/tcp | WebUI + API |
| 10800-10819/udp | SOCKS5 UDP ASSOCIATE (ein Port pro aktiver UDP-Sitzung) |
| 40000-40019/tcp+udp | Frei für Portweiterleitungen |
Die Bereiche sind in docker-compose.yml einstellbar (SOCKS_UDP_PORTS, FORWARD_PORTS plus das Port-Mapping).
Mit network_mode: host entfällt das Mapping. Dann ist jeder Port für Weiterleitungen nutzbar.
Für SOCKS5-UDP muss SOCKS_UDP_ADVERTISE in .env die IP des Docker-Hosts enthalten, wie sie die Clients erreichen.
Im Host-Netzwerk-Modus ist das nicht nötig.
Clients einrichten
| Client | Einstellung |
|---|---|
| Browser | HTTP-Proxy host:3128 oder PAC-URL http://host:8080/proxy.pac |
| Windows-Systemproxy / Outlook (Exchange) | HTTP-Proxy host:3128 |
| Thunderbird (SMTP/IMAP/POP3) | SOCKS5 host:1080, „DNS über SOCKS“ aktivieren |
| Kommandozeile | export https_proxy=http://user:pass@host:3128 |
| WireGuard | Weiterleitung UDP 40000 → vpn.example.com:51820, im Client Endpoint = host:40000 |
| Outlook IMAP/SMTP-Konto | Weiterleitungen, z. B. TCP 40001 → imap.example.com:993 und 40002 → smtp.example.com:587. Achtung: Das TLS-Zertifikat lautet auf den echten Servernamen, ggf. per hosts-Eintrag auf den Proxy zeigen lassen. |
| Programme ohne Proxy-Support | Proxifier/proxychains mit SOCKS5 oder eine Weiterleitung |
Regeln
Auswertung in dieser Reihenfolge:
- Loopback-Schutz (127.0.0.0/8, ::1), abschaltbar
- Sperr-Regeln des Benutzers
- Erlaubt-Regeln des Benutzers
- Globale Sperr-Regeln
- Globale Erlaubt-Regeln
- Standardrichtlinie des Benutzers bzw. die globale Standardrichtlinie
| Host-Muster | Bedeutung |
|---|---|
leer / * |
alle Ziele |
example.com |
Domain inkl. aller Subdomains |
*.example.com |
Platzhalter |
10.0.0.0/8, 1.2.3.4 |
IP/Netz, wird gegen die aufgelöste Ziel-IP geprüft |
re:^ads?\. |
regulärer Ausdruck |
Ports: leer = alle, sonst z. B. 25, 8000-9000 oder 25,465,587.
Whitelist für einen Benutzer: Standardrichtlinie des Benutzers auf „Alles sperren“ stellen und Erlaubt-Regeln anlegen.
Blocklisten importieren: „Liste importieren“ versteht eine Domain pro Zeile und das Hosts-Datei-Format (0.0.0.0 ads.example.com).
Hinweise
- Bei HTTPS sieht der Proxy nur Host und Port, nicht die komplette URL, weil es kein SSL-Aufbrechen gibt. Bei unverschlüsseltem HTTP wird die volle URL protokolliert.
- Bei SOCKS5 mit lokaler DNS-Auflösung (
socks5://stattsocks5h://) kennt der Proxy nur die IP. Dann greifen nur IP-Regeln, Domain-Regeln nicht. In den Clients deshalb „DNS über Proxy“ aktivieren. - Der Verlauf wird nach
log_retention_days(Standard 90 Tage) automatisch bereinigt. Rechtliche Vorgaben (DSGVO, Betriebsrat) beachten. - Backup: Ordner
./datasichern.
API
Interaktive Doku: http://host:8080/api/docs. Token in der WebUI unter „API“ erzeugen.
TOKEN=...
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-X POST http://host:8080/api/users -d '{"username":"max","password":"geheim123"}'
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-X POST http://host:8080/api/rules -d '{"action":"deny","host":"tiktok.com"}'
curl -H "Authorization: Bearer $TOKEN" "http://host:8080/api/history?username=max&limit=50"
Wichtige Endpunkte: /api/users, /api/rules (+ /bulk, /test), /api/forwards, /api/history (+ /export.csv),
/api/stats, /api/connections, /api/settings, /api/tokens.