systemd-socket-proxyd kendi SSH SOCKS tünelinden daha uzun yaşayabilir
Socket yönlendirme yardımcısının yaşam döngüsünü SSH bağımlılığıyla hizalayın; ölü bir tünel sağlıklı görünen bir ön uç bırakmasın.
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:
| Soket | Yardımcı | SSH | Yorum |
|---|---|---|---|
| Dinliyor | Etkin değil | Etkin değil | Normalde talep bekliyor olabilir |
| Dinliyor | Etkin | Etkin | Süreçler var; sonraki hedefin sağlığı henüz kanıtlanmadı |
| Dinliyor | Etkin | Etkin 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.serviceBunu 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.