Калі ўваходны порт прымае злучэнні пасля выхаду SSH, праверце ўсе тры юніты. Сокет актывацыі, памочнік systemd-socket-proxyd і SOCKS-слухач, створаны SSH, маюць розныя тэрміны жыцця:

СокетПамочнікSSHТлумачэнне
СлухаеНеактыўныНеактыўныМагчыма, нармальна чакае запыту
СлухаеАктыўныАктыўныПрацэсы ёсць; здароўе далейшага прызначэння не даказана
СлухаеАктыўныНеактыўныФронтэнд можа прымаць працу без свайго бэкэнда

Сумесны запуск памочніка і SSH не вызначае наступны пераход спынення. Для памочніка, які не павінен заставацца актыўным без тунэля, systemd дакументуе мацнейшую сувязь:

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

Ужыце гэта да адпаведнай юніты ў рэальным дызайне. Requires= і парадак ахопліваюць толькі частку сувязі. Ужо актыўны фронтэнд інакш можа больш ніколі не выклікаць актывацыю пасля знікнення бэкэнда. Праверце таксама стан няўдалых юнітаў і ліміты частаты запуску; залежнасці не адмяняюць гэтыя ліміты.

Далей забяспечце гатоўнасць запуску. After= упарадкоўвае заданні, а не гатоўнасць SSH-слухача Type=simple. Фіксаваная паўза можа не спрацаваць пры павольнай аўтэнтыфікацыі. Выкарыстоўвайце кантракт запуску, які стварае патрэбны слухач; ExitOnForwardFailure=yes ловіць збой наладкі перасылкі, а не наступную даступнасць прызначэння.

Нарэшце вызначце выхад па прастоі і паўторную актывацыю. Опцыя выхаду па прастоі дэмана перасылкі датычыцца адсутнасці актыўных злучэнняў, а не адсутнасці байтаў у адкрытым злучэнні. Ціхая сесія можа трымаць яго актыўным. Наступны запыт павінен актываваць патрэбныя сэрвісы, а цыклы перазапуску павінны заставацца абмежаванымі і бачнымі. Перастварэнне слухача дапускае новыя злучэнні; яно не аднаўляе старыя праксіраваныя TCP-сесіі.

Падобныя артыкулы