თუ SSH-ის გასვლის შემდეგ წინა პორტი კვლავ იღებს კავშირებს, შეამოწმეთ სამივე ერთეული. გააქტიურების socket-ი, systemd-socket-proxyd დამხმარე და SSH-ის მიერ შექმნილი SOCKS მსმენელი სხვადასხვა სიცოცხლის ხანგრძლივობას ატარებს:

SocketდამხმარეSSHინტერპრეტაცია
ისმენსუმოქმედოუმოქმედოშესაძლოა ჩვეულებრივ მოთხოვნას ელოდება
ისმენსაქტიურიაქტიურიპროცესები არსებობს; საბოლოო დანიშნულების ჯანმრთელობა ჯერ არ არის დადასტურებული
ისმენსაქტიურიუმოქმედოწინა ნაწილს შეუძლია სამუშაოს მიღება უკანა ნაწილის გარეშე

დამხმარისა და SSH-ის ერთად გაშვება არ განსაზღვრავს შემდგომ გაჩერების გადასვლას. დამხმარისთვის, რომელიც არ უნდა დარჩეს აქტიური გვირაბის გარეშე, systemd აფიქსირებს უფრო ძლიერ კავშირს:

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

გამოიყენეთ ის რეალურ დიზაინში შესაბამის ერთეულზე. Requires= და თანმიმდევრობა მხოლოდ კავშირის ნაწილს აგვარებს. უკვე აქტიურმა წინა ნაწილმა შეიძლება ვეღარასდროს გამოიწვიოს გააქტიურება უკანა ნაწილის გაქრობის შემდეგ. შეამოწმეთ ასევე წარუმატებელი ერთეულების მდგომარეობა და გაშვების სიჩქარის ლიმიტები; დამოკიდებულებები არ აუქმებს ამ ლიმიტებს.

შემდეგ დაამყარეთ გაშვების მზადყოფნა. After= აწესრიგებს დავალებებს და არა Type=simple SSH მსმენელის მზადყოფნას. ფიქსირებული ლოდინი შეიძლება ჩავარდეს ნელი აუთენტიფიკაციის დროს. გამოიყენეთ გაშვების ხელშეკრულება, რომელიც ამყარებს საჭირო მსმენელს; ExitOnForwardFailure=yes იჭერს გადაცემის კონფიგურაციის ჩავარდნას და არა დანიშნულების შემდგომ ხელმისაწვდომობას.

ბოლოს განსაზღვრეთ უმოქმედობის გასვლა და ხელახალი გააქტიურება. გადამცემი დემონის უმოქმედობის გასვლის პარამეტრი ეხება აქტიური კავშირების არარსებობას და არა ღია კავშირზე ბაიტების ნაკლებობას. მშვიდმა სესიამ შეიძლება ის აქტიურად შეინარჩუნოს. შემდეგმა მოთხოვნამ უნდა გაააქტიუროს საჭირო სერვისები, ხოლო გადატვირთვის ციკლები შეზღუდული და ხილული უნდა დარჩეს. მსმენელის ხელახალი შექმნა ახალ კავშირებს უშვებს; ის არ აღადგენს ძველ პროქსირებულ TCP სესიებს.

დაკავშირებული სტატიები