Verbindungstest für Proxys hinzufügen
Neuer Befehl 'svc-proxy test [DIENST]' sowie Taste 't' in der Liste und Schaltfläche/F3 im Formular (testet ungespeicherte Werte). - prüft Erreichbarkeit, Handshake und Anmeldung für SOCKS5/SOCKS4/HTTP(S) mit klaren Meldungen (Kennwort falsch, Proxy-Typ vertauscht, Port gesperrt) - baut Tunnel zu Testzielen auf und liest die Begrüßung (SMTP, POP3, IMAP, HTTP), TLS für 443/465/993/995 - --target HOST:PORT, --mail (SMTP 25/587/465, POP3S, IMAPS), --timeout - im proxychains-Modus zusätzlicher Test über die proxychains-Bibliothek mit der Konfiguration des Dienstes - Ad-hoc-Test mit --proxy ohne root und ohne Speichern - Hilfe und README ergänzt, Version 1.2.0 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3968c1a7b8
commit
9270994e82
@@ -196,6 +196,7 @@ Markierungen: **G** = nutzt globalen Proxy, **E** = eigene Werte,
|
||||
| Entf / d | Proxy vom Dienst entfernen |
|
||||
| / | Filter (Name oder Beschreibung), Esc löscht den Filter |
|
||||
| c | nur konfigurierte Dienste anzeigen (an/aus) |
|
||||
| t | Verbindungstest für den gewählten Dienst (ohne Proxy: globaler Proxy) |
|
||||
| r | gewählten Dienst sofort neu starten |
|
||||
| F5 | Dienstliste neu einlesen |
|
||||
| F1 / ? | Hilfe |
|
||||
@@ -209,6 +210,7 @@ Markierungen: **G** = nutzt globalen Proxy, **E** = eigene Werte,
|
||||
| ← → / Leertaste | Modus bzw. Proxy-Typ wählen (beim Typ gibt es zusätzlich „global“) |
|
||||
| Enter | nächstes Feld bzw. Schaltfläche auslösen |
|
||||
| F2 | Speichern |
|
||||
| F3 / „Testen“ | Verbindungstest mit den eingegebenen, noch nicht gespeicherten Werten |
|
||||
| Strg+U | Feld leeren |
|
||||
| Esc | Abbrechen |
|
||||
|
||||
@@ -236,6 +238,7 @@ svc-proxy [BEFEHL] [OPTIONEN]
|
||||
| `set DIENST... [FELDER] [--reset]` | Proxy für Dienst(e) setzen/ändern |
|
||||
| `unset DIENST...` / `unset --all` | Proxy entfernen |
|
||||
| `apply` | alle Drop-ins aus der Konfiguration neu erzeugen |
|
||||
| `test [DIENST] [--target H:P] [--mail]` | Verbindungstest über den Proxy (siehe unten) |
|
||||
| `help`, `-h`, `--help` | Hilfe mit Beispielen |
|
||||
|
||||
### Felder
|
||||
@@ -287,6 +290,59 @@ praktisch zum Testen, z.B. zusammen mit `--no-reload`.
|
||||
|
||||
---
|
||||
|
||||
## Verbindungstest
|
||||
|
||||
```bash
|
||||
sudo svc-proxy test kerio-connect --mail
|
||||
```
|
||||
|
||||
```
|
||||
Verbindungstest: Dienst kerio-connect.service
|
||||
Proxy: socks5://max:****@192.168.1.50:1080 [proxychains]
|
||||
[ OK ] Proxy erreichbar: 192.168.1.50:1080 (1 ms)
|
||||
[FEHLER] gmail-smtp-in.l.google.com:25 → Proxy meldet: vom Regelwerk des Proxys nicht erlaubt (Port/Ziel gesperrt?)
|
||||
[ OK ] smtp.gmail.com:587 → Antwort: 220 smtp.gmail.com ESMTP ... (46 ms)
|
||||
[ OK ] smtp.gmail.com:465 → TLS ok, Antwort: 220 smtp.gmail.com ESMTP ... (61 ms)
|
||||
[ OK ] pop.gmail.com:995 → TLS ok, Antwort: +OK Gpop ready for requests ... (67 ms)
|
||||
[ OK ] imap.gmail.com:993 → TLS ok, Antwort: * OK Gimap ready for requests ... (105 ms)
|
||||
Test über proxychains (so verbindet der Dienst):
|
||||
[FEHLER] proxychains: gmail-smtp-in.l.google.com:25 → Verbindung abgelehnt
|
||||
[ OK ] proxychains: smtp.gmail.com:587 → Antwort: 220 smtp.gmail.com ESMTP ...
|
||||
...
|
||||
Ergebnis: 2 Test(s) fehlgeschlagen.
|
||||
```
|
||||
|
||||
Ablauf:
|
||||
|
||||
1. **Proxy erreichbar?** TCP-Verbindung zum Proxy.
|
||||
2. **Handshake und Anmeldung:** SOCKS5, SOCKS4 oder HTTP CONNECT (auch `https`-Proxy).
|
||||
Verständliche Meldungen z.B. bei falschem Kennwort, fehlender Anmeldung,
|
||||
falschem Proxy-Typ (socks/http vertauscht) oder einem vom Proxy gesperrten Port.
|
||||
3. **Ziele:** Tunnel zu jedem Ziel aufbauen und die Begrüßung lesen. Das zeigt,
|
||||
dass wirklich Daten fließen (SMTP `220`, POP3 `+OK`, IMAP `* OK`, HTTP-Status).
|
||||
Die Ports 443, 465, 993 und 995 werden per TLS angesprochen (ohne
|
||||
Zertifikatsprüfung, es geht nur um die Verbindung).
|
||||
4. **Nur im Modus proxychains:** Derselbe Test läuft noch einmal als normales
|
||||
Programm über die proxychains-Bibliothek mit der Konfiguration des Dienstes.
|
||||
Damit ist der komplette Weg geprüft, den auch der Dienst nimmt.
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `--target HOST:PORT` | Testziel, mehrfach möglich (Standard: `example.com:80`, `example.com:443`) |
|
||||
| `--mail` | Mail-Ziele: SMTP 25/587/465, POP3S 995, IMAPS 993 (Gmail) |
|
||||
| `--timeout SEK` | Zeitlimit pro Schritt (Standard 6 s) |
|
||||
| `--proxy`, `--host`, … | Werte nur für den Test überschreiben, nichts wird gespeichert |
|
||||
|
||||
Ohne `DIENST` wird der globale Proxy getestet. Mit `--proxy URL` (ohne DIENST)
|
||||
läuft der Test auch ohne root und ohne gespeicherte Konfiguration. So lässt sich
|
||||
ein Proxy prüfen, bevor man ihn einträgt. Rückgabewert: `0` = alles ok,
|
||||
`1` = mindestens ein Test fehlgeschlagen, praktisch für Monitoring-Skripte.
|
||||
|
||||
Hinweis zu Port 25: Viele Proxys und Provider sperren ausgehend Port 25. Der Test
|
||||
zeigt genau das. Abhilfe ist ein SMTP-Relay (Smarthost) auf Port 587 oder 465.
|
||||
|
||||
---
|
||||
|
||||
## Beispiele
|
||||
|
||||
```bash
|
||||
@@ -334,6 +390,12 @@ sudo svc-proxy set myapp --reset
|
||||
sudo svc-proxy unset myapp --restart
|
||||
sudo svc-proxy unset --all --no-restart
|
||||
|
||||
# Verbindungstests
|
||||
sudo svc-proxy test # globaler Proxy
|
||||
sudo svc-proxy test kerio-connect --mail # Mail-Ports über Kerios Proxy
|
||||
sudo svc-proxy test kerio-connect --target mx.example.com:25 --target pop.example.com:995
|
||||
svc-proxy test --proxy socks5://192.0.2.10:1080 --mail # ad hoc, ohne Speichern, ohne root
|
||||
|
||||
# Anzeigen
|
||||
sudo svc-proxy list
|
||||
sudo svc-proxy list --all
|
||||
|
||||
Reference in New Issue
Block a user