Эгер SSH чыккандан кийин алдыңкы порт дагы эле туташууларды кабыл алса, үч бирдикти тең текшериңиз. Активдештирүү сокети, systemd-socket-proxyd жардамчысы жана SSH жараткан SOCKS угуучусу ар башка жашоо узактыгына ээ:

СокетЖардамчыSSHЧечме
Угуп жататАктивдүү эмесАктивдүү эмесБалким адаттагыдай суроону күтүп жатат
Угуп жататАктивдүүАктивдүүПроцесстер бар; бирок акыркы максаттын ден соолугу далилденген эмес
Угуп жататАктивдүүАктивдүү эмесАлдыңкы бөлүк арткы бөлүгү жок иш ала алат

Жардамчы менен SSHди чогуу баштоо кийинки токтоо өтүшүн аныктабайт. Туннели жок активдүү болбой турган жардамчы үчүн systemd күчтүүрөөк байланышты документтештирет:

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

Аны реалдуу долбоордо тиешелүү бирдикке колдонуңуз. Requires= жана тартип байланыштын бир бөлүгүн гана чечет. Мурунтан активдүү алдыңкы бөлүк арткы бөлүгү жоголгондон кийин эми эч качан активдештирүүнү пайда кылбашы мүмкүн. Ишке ашпаган бирдиктердин абалын жана баштоо ылдамдыгынын чегин да текшериңиз; көз карандылыктар бул чектерди жокко чыгарбайт.

Андан кийин баштоо даярдыгын орнотуңуз. After= тапшырмаларды иреттейт, Type=simple SSH угуучусунун даярдыгын эмес. Туруктуу күтүү жай аутентификацияда ишке ашпай калышы мүмкүн. Керектүү угуучуну орноткон баштоо келишимин колдонуңуз; ExitOnForwardFailure=yes өткөрүү жөндөөсүнүн ишке ашпастыгын кармайт, кийинки максатка жетүүнү эмес.

Акыры, бош турганда чыгууну жана кайра активдештирүүнү аныктаңыз. Өткөрүү демонунун бош чыгуу параметри активдүү туташуулардын жоктугуна тиешелүү, ачык туташуудагы байттардын жоктугуна эмес. Тынч сессия аны активдүү кармап турушу мүмкүн. Кийинки суроо керектүү кызматтарды активдештириши керек, ал эми кайра баштоо циклдери чектелүү жана көрүнүктүү бойдон калышы керек. Угуучуну кайра жаратуу жаңы туташууларды кабыл алат; эски проксиленген TCP сессияларын калыбына келтирбейт.

Тектеш макалалар