Autossh'ımı 30 saniyelik bir anket zamanı ile başlattım:
AUTOSSH_POLL=30 AUTOSSH_LOGLEVEL=7 autossh -M 0 -f -S none -f -N -L localhost:34567:localhost:6543 user1@server1
Ve iyi çalışıyor:
Sep 5 12:26:44 serverA autossh[20935]: check on child 23084
Sep 5 12:26:44 serverA autossh[20935]: set alarm for 30 secs
Ancak ağ kablosunu fiziksel olarak kaldırırsam, yani tünel artık çalışamazsa, autossh ssh daemon'unu öldürmez. Neden? Bağlantı kesilirse autossh hiçbir şey yapamayacağını anlıyorum, ancak bence aşağıdakileri yapmaya çalışmalıdır:
- Alt ssh işlemini doğrulayın (
check on child ...
) - Uzak ucu doğrulayın !!! (tünelden ping benzeri bir işlem)
- Tünelin kapalı olduğunu fark et
- Ssh işlemini durdur
- Tüneli tekrar oluşturmaya çalışın
- Çalışmadığını fark edin ve yakında tekrar kontrol etmek için (üssel olarak artan?) Bir zamanlayıcı ayarlayın
Bu yüzden autossh kullanıyorum: tünele bir şey olursa (bir yazılım veya donanım sorunu olsun), yeniden başlatmayı denemelisiniz. Bunun yerine, sadece ssh sürecinin ölmesini bekliyor. Bağlantıyı yeniden kurma umudu olmasa bile, yeniden başlatmaya çalışmamalı mı?
Autossh ne tür bir çek yapıyor? Sadece ssh'ın çalışır durumda olduğunu doğrulayın? Herhangi bir ileri seviye kontrol yapmıyor mu?
Düzenle
İstendiği gibi, ssh config ilgili bölümünü ekleyin:
# (see http://aaroncrane.co.uk/2008/04/ssh_faster)
# The ServerAliveInterval tells SSH to send a keepalive message every 60 seconds while the connection is open;
# that both helps poor-quality NAT routers understand that the NAT table entry for your connection should
# be kept alive, and helps SSH detect when there’s a network problem between the server and client.
ServerAliveInterval 60
# The ServerAliveCountMax says that after 60 consecutive unanswered keepalive messages, the connection should
# be dropped. At that point, AutoSSH should try to invoke a fresh SSH client. You can tweak those
# specific values if you want, but they seem to work well for me.
ServerAliveCountMax 60
TCPKeepAlive yes
dev tun
her ikisini de kullanarak ve remote
istemci yapılandırmasındaki ayarı kullanarak sunucu veya istemci için varsayılan yapılandırmalarla başladık . Tek can sıkıcı bit sertifikaları yönetmektir. OpenVPN ile birlikte gelen 'easy-rsa' CA'sını kullanıyoruz. Sertifikaları aldıktan sonra, gerisi kolaydır.