Το systemd-socket-proxyd μπορεί να επιβιώσει από τη σήραγγα SSH SOCKS του
Ευθυγραμμίστε τον κύκλο ζωής του βοηθού προώθησης υποδοχής με την εξάρτησή του από το SSH, ώστε μια νεκρή σήραγγα να μην αφήνει ένα φαινομενικά υγιές front end.
Αν η μπροστινή θύρα εξακολουθεί να δέχεται συνδέσεις μετά την έξοδο του SSH, ελέγξτε και τις τρεις μονάδες. Η υποδοχή ενεργοποίησης, ο βοηθός systemd-socket-proxyd και ο ακροατής SOCKS που δημιουργεί το SSH έχουν διαφορετική διάρκεια ζωής:
| Υποδοχή | Βοηθός | SSH | Ερμηνεία |
|---|---|---|---|
| Ακούει | Ανενεργό | Ανενεργό | Ίσως περιμένει κανονικά ζήτηση |
| Ακούει | Ενεργό | Ενεργό | Υπάρχουν διεργασίες· η υγεία του τελικού προορισμού παραμένει αναπόδεικτη |
| Ακούει | Ενεργό | Ανενεργό | Το front end μπορεί να δέχεται εργασία χωρίς το backend του |
Η ταυτόχρονη εκκίνηση βοηθού και SSH δεν ορίζει τη μεταγενέστερη μετάβαση διακοπής. Για βοηθό που δεν πρέπει να μένει ενεργός χωρίς τη σήραγγά του, το systemd τεκμηριώνει την ισχυρότερη σχέση:
[Unit]
BindsTo=ssh-socks.service
After=ssh-socks.service
Εφαρμόστε την στην κατάλληλη μονάδα του πραγματικού σχεδιασμού. Το Requires= και η σειρά καλύπτουν μόνο μέρος της σχέσης. Ένα ήδη ενεργό front end μπορεί αλλιώς να μην πυροδοτήσει ποτέ ξανά ενεργοποίηση αφού εξαφανιστεί το backend του. Ελέγξτε επίσης την κατάσταση αποτυχημένων μονάδων και τα όρια ρυθμού εκκίνησης· οι εξαρτήσεις δεν παρακάμπτουν αυτά τα όρια.
Έπειτα καθιερώστε την ετοιμότητα εκκίνησης. Το After= ταξινομεί εργασίες, όχι την ετοιμότητα ενός ακροατή SSH Type=simple. Μια σταθερή αναμονή μπορεί να αποτύχει σε αργή ταυτοποίηση. Χρησιμοποιήστε ένα συμβόλαιο εκκίνησης που καθιερώνει τον απαιτούμενο ακροατή· το ExitOnForwardFailure=yes πιάνει αποτυχία της ρύθμισης προώθησης, όχι τη μεταγενέστερη προσβασιμότητα του προορισμού.
Τέλος, ορίστε την έξοδο αδράνειας και την επανενεργοποίηση. Η επιλογή εξόδου αδράνειας του δαίμονα προώθησης αφορά την απουσία ενεργών συνδέσεων, όχι την έλλειψη byte σε ανοιχτή σύνδεση. Μια ήσυχη συνεδρία μπορεί να τον κρατήσει ενεργό. Η επόμενη ζήτηση πρέπει να ενεργοποιήσει τις απαιτούμενες υπηρεσίες, και οι βρόχοι επανεκκίνησης πρέπει να μένουν φραγμένοι και ορατοί. Η αναδημιουργία του ακροατή επιτρέπει νέες συνδέσεις· δεν αποκαθιστά παλιές συνεδρίες TCP μέσω διαμεσολάβησης.