Wenn der Frontport nach dem Beenden von SSH weiterhin Verbindungen annimmt, prüfe alle drei Units. Der Aktivierungssocket, der systemd-socket-proxyd-Helfer und der von SSH erzeugte SOCKS-Listener haben unterschiedliche Lebensdauern:

SocketHelferSSHDeutung
LauschtInaktivInaktivWartet möglicherweise normal auf Nachfrage
LauschtAktivAktivProzesse existieren; die Gesundheit des Ziels dahinter bleibt unbewiesen
LauschtAktivInaktivDas Frontend kann Arbeit ohne sein Backend annehmen

Helfer und SSH gemeinsam zu starten, legt den späteren Stopp-Übergang nicht fest. Für einen Helfer, der ohne seinen Tunnel nicht aktiv bleiben darf, dokumentiert systemd die stärkere Beziehung:

[Unit]
BindsTo=ssh-socks.service
After=ssh-socks.service

Wende sie im tatsächlichen Entwurf auf die passende Unit an. Requires= und die Reihenfolge regeln nur einen Teil der Beziehung. Ein bereits aktives Frontend löst danach möglicherweise nie wieder eine Aktivierung aus, wenn sein Backend verschwindet. Prüfe auch den Zustand fehlgeschlagener Units und Startratenlimits; Abhängigkeiten heben diese Grenzen nicht auf.

Stelle als Nächstes die Startbereitschaft her. After= ordnet Aufträge, nicht die Bereitschaft eines Type=simple-SSH-Listeners. Ein festes Warten kann bei langsamer Authentifizierung scheitern. Nutze einen Startvertrag, der den erforderlichen Listener herstellt; ExitOnForwardFailure=yes fängt Fehler beim Einrichten der Weiterleitung ab, nicht die spätere Erreichbarkeit des Ziels.

Definiere schließlich Leerlaufende und Reaktivierung. Die Leerlaufoption des Weiterleitungsdaemons betrifft fehlende aktive Verbindungen, nicht fehlende Bytes auf einer offenen Verbindung. Eine stille Sitzung kann ihn aktiv halten. Die nächste Nachfrage sollte die erforderlichen Dienste aktivieren, und Neustartschleifen sollten begrenzt und sichtbar bleiben. Den Listener neu zu erzeugen lässt neue Verbindungen zu; es stellt alte über den Proxy geführte TCP-Sitzungen nicht wieder her.

Ähnliche Artikel