SSH çıktıktan sonra ön port hâlâ bağlantı kabul ediyorsa üç birimin tümünü inceleyin. Etkinleştirme soketi, systemd-socket-proxyd yardımcısı ve SSH'ın oluşturduğu SOCKS dinleyicisinin yaşam süreleri farklıdır:

SoketYardımcıSSHYorum
DinliyorEtkin değilEtkin değilNormalde talep bekliyor olabilir
DinliyorEtkinEtkinSüreçler var; sonraki hedefin sağlığı henüz kanıtlanmadı
DinliyorEtkinEtkin değilÖn uç, arka ucu olmadan iş kabul edebilir

Yardımcıyı ve SSH'ı birlikte başlatmak sonraki durma geçişini tanımlamaz. Tüneli olmadan etkin kalmaması gereken bir yardımcı için systemd daha güçlü bir ilişki belgeler:

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

Bunu gerçek tasarımdaki uygun birime uygulayın. Requires= ve sıralama ilişkinin yalnızca bir bölümünü ele alır. Zaten etkin olan ön uç, arka ucu kaybolduktan sonra bir daha etkinleştirmeyi hiç tetiklemeyebilir. Başarısız birim durumunu ve başlatma hızı sınırlarını da denetleyin; bağımlılıklar bu sınırları geçersiz kılmaz.

Ardından başlatma hazırlığını kurun. After= işleri sıralar, Type=simple SSH dinleyicisinin hazırlığını değil. Sabit bir bekleme yavaş kimlik doğrulamada başarısız olabilir. Gerekli dinleyiciyi kuran bir başlatma sözleşmesi kullanın; ExitOnForwardFailure=yes yönlendirme kurulumu hatasını yakalar, sonraki hedef erişilebilirliğini değil.

Son olarak boşta çıkışı ve yeniden etkinleştirmeyi tanımlayın. Yönlendirme daemonunun boşta çıkış seçeneği etkin bağlantı olmamasıyla ilgilidir, açık bir bağlantıda bayt eksikliğiyle değil. Sessiz bir oturum onu etkin tutabilir. Sonraki talep gerekli hizmetleri etkinleştirmeli ve yeniden başlatma döngüleri sınırlı ve görünür kalmalıdır. Dinleyiciyi yeniden oluşturmak yeni bağlantıları kabul eder; eski proxy'lenmiş TCP oturumlarını geri getirmez.

İlgili makaleler