systemd-socket-proxyd შეიძლება გადააჭარბოს თავის SSH SOCKS გვირაბს
დაათანხმეთ socket-გადამცემი დამხმარის სიცოცხლის ციკლი მის SSH დამოკიდებულებას, რომ მკვდარმა გვირაბმა ჯანსაღად მოჩვენებული წინა ნაწილი არ დატოვოს.
თუ 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 სესიებს.