systemd-socket-proxyd може надживети свој SSH SOCKS тунел
Ускладите животни циклус помоћника за прослеђивање сокета са SSH зависношћу, да мртав тунел не остави здраво изгледајућу предњу страну.
Ако предњи порт прихвата везе након што SSH изађе, прегледајте све три јединице. Активациони сокет, systemd-socket-proxyd помоћник и SOCKS слушалац који је створио SSH имају различит животни век:
| Сокет | Помоћник | SSH | Тумачење |
|---|---|---|---|
| Слуша | Неактиван | Неактиван | Може нормално да чека захтев |
| Слуша | Активан | Активан | Процеси постоје; здравље следећег одредишта остаје недоказано |
| Слуша | Активан | Неактиван | Предња страна може да прихвати посао без свог позадинског дела |
Заједничко покретање помоћника и SSH не дефинише каснији прелаз заустављања. За помоћника који не сме да остане активан без свог тунела, systemd документује јачу везу:
[Unit]
BindsTo=ssh-socks.service
After=ssh-socks.serviceПримените то на одговарајућу јединицу у стварном дизајну. Requires= и редослед решавају само део везе. Већ активна предња страна иначе можда никада више неће покренути активацију након што њен позадински део нестане. Проверите и стање неуспелих јединица и ограничења брзине покретања; зависности не поништавају та ограничења.
Затим успоставите спремност за покретање. After= распоређује послове, а не спремност Type=simple SSH слушаоца. Фиксна пауза може да закаже током споре аутентификације. Користите уговор о покретању који успоставља потребног слушаоца; ExitOnForwardFailure=yes хвата неуспех подешавања прослеђивања, а не каснију доступност одредишта.
На крају, дефинишите излаз у мировању и реактивацију. Опција излаза у мировању демона за прослеђивање односи се на одсуство активних веза, а не на недостатак бајтова на отвореној вези. Тиха сесија може да га одржава активним. Следећи захтев треба да активира потребне услуге, а петље поновног покретања треба да остану ограничене и видљиве. Поновно стварање слушаоца прихвата нове везе; не враћа старе проксиране TCP сесије.