systemd-socket-proxyd može nadživjeti svoj SSH SOCKS tunel
Uskladite životni ciklus pomoćnika za prosljeđivanje socketa s njegovom SSH ovisnošću kako mrtav tunel ne bi ostavio zdrav фронтенд.
Ako ulazni port i dalje prihvata veze nakon izlaska SSH-a, pregledajte sve tri unit datoteke. Aktivacijski socket, pomoćnik systemd-socket-proxyd i SOCKS osluškivač koji stvara SSH imaju različite životne vijekove:
| Socket | Pomoćnik | SSH | Tumačenje |
|---|---|---|---|
| Osluškuje | Neaktivan | Neaktivan | Možda normalno čeka zahtjev |
| Osluškuje | Aktivan | Aktivan | Procesi postoje; zdravlje krajnjeg odredišta ostaje nedokazano |
| Osluškuje | Aktivan | Neaktivan | Frontend može prihvatati posao bez svog backenda |
Zajedničko pokretanje pomoćnika i SSH-a ne određuje kasniji prijelaz zaustavljanja. Za pomoćnik koji ne smije ostati aktivan bez svog tunela, systemd dokumentira jaču vezu:
[Unit]
BindsTo=ssh-socks.service
After=ssh-socks.service
Primijenite je na odgovarajući unit u stvarnom dizajnu. Requires= i redoslijed rješavaju samo dio veze. Već aktivan frontend inače možda nikada više neće pokrenuti aktivaciju nakon što mu backend nestane. Provjerite i stanje neuspjelih unita i ograničenja brzine pokretanja; ovisnosti ne nadjačavaju ta ograničenja.
Zatim uspostavite spremnost pri pokretanju. After= poreda poslove, ne spremnost SSH osluškivača Type=simple. Fiksno čekanje može neuspjeti tijekom spore autentifikacije. Koristite ugovor o pokretanju koji uspostavlja potrebni osluškivač; ExitOnForwardFailure=yes hvata neuspjeh postavljanja prosljeđivanja, a ne kasniju dostupnost odredišta.
Na kraju definirajte izlaz pri mirovanju i reaktivaciju. Opcija izlaza pri mirovanju daemona za prosljeđivanje tiče se odsutnosti aktivnih veza, a ne nedostatka bajtova na otvorenoj vezi. Tiha sesija može ga održavati aktivnim. Sljedeći zahtjev treba aktivirati potrebne servise, a petlje ponovnog pokretanja trebaju ostati ograničene i vidljive. Ponovno stvaranje osluškivača dopušta nove veze; ne vraća stare proksirane TCP sesije.