Bazen SSH oturumum bir Write failed: Broken pipe
mesajla bağlantıyı keser . Bunun anlamı ne? Ve oturumumu nasıl açık tutabilirim?
Biliyorum screen
ama aradığım cevap bu değil. Bunun bir sshd
yapılandırma seçeneği olduğunu düşünüyorum .
Bazen SSH oturumum bir Write failed: Broken pipe
mesajla bağlantıyı keser . Bunun anlamı ne? Ve oturumumu nasıl açık tutabilirim?
Biliyorum screen
ama aradığım cevap bu değil. Bunun bir sshd
yapılandırma seçeneği olduğunu düşünüyorum .
Yanıtlar:
Sunucunuz çok uzun süre boşta kalan bağlantıları kapatıyor olabilir. İstemcinizi ( ServerAliveInterval
) veya sunucunuzu ( ClientAliveInterval
) güncelleyebilirsiniz.
ServerAliveInterval
Sets a timeout interval in seconds after which if no data has
been received from the server, ssh(1) will send a message through
the encrypted channel to request a response from the server. The
default is 0, indicating that these messages will not be sent to
the server. This option applies to protocol version 2 only.
ClientAliveInterval
Sets a timeout interval in seconds after which if no data has
been received from the client, sshd(8) will send a message
through the encrypted channel to request a response from the
client. The default is 0, indicating that these messages will
not be sent to the client. This option applies to protocol
version 2 only.
Sunucunuzu güncellemek (ve bilgisayarınızı yeniden başlatmak için sshd
)
echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
Veya müşteri tarafı:
echo "ServerAliveInterval 60" >> ~/.ssh/config
~/.ssh/config
yok, orada yaratmalı mıyım yoksa başka bir yerde mi var?
~/.ssh
) oluşturmalısınız . Yanimkdir -p ~/.ssh; chmod 700 ~/.ssh; touch ~/.ssh/config
Alternatif bir çözüm kullanmak olacaktır mosh
- mobil kabuk . Ssh'ın aksine UDP üzerinden bağlanır ve dolaşım destekler. Oturuma evde başlayabilir, dizüstü bilgisayarınızı askıya alabilir, çalışmaya / arkadaşlarınıza / internetin olduğu her yere götürebilir, dizüstü bilgisayarınızı askıya alabilir ve hiçbir şey olmamış gibi çalışmaya devam edebilirsiniz. Berbat bir internet bağlantınız varsa özellikle faydalıdır: Tuş vuruşlarınız sunucuya erişmezse ve sürekli bağlantıyı yeniden kurmaya çalışırsa anında geri bildirim gösterir.
Kurulum ve kurulum basittir: Şimdi mevcut tüm Linux (artı birkaç Linux dışı) dağıtımına dahil edilmiştir ve oturum başlatma ve kimlik doğrulamasını önceki ssh bağlantısı üzerinden koordine eder. Bu yüzden, eğer sizin aracılığınızla ssh user@server
bağlanabiliyorsanız, sadece çağrı yaparak yosunla bağlanmanız çok muhtemeldir mosh user@server
, eğer yosun paketleri her iki ucuna da takılıysa.
Bağlantı arızalarının ana nedeni, sunucuya çalışabilmesi için bir UDP bağlantı noktasından (varsayılan aralık: 60000-61000) ulaşmanızdır. Dolayısıyla, sunucu bir güvenlik duvarının arkasındaysa, kendinize delik açamadığınız takdirde çoğunlukla şansınız kalmaz ( güvenlik uygulamaları ).
Daha uzun bir bağlantı süresine sahip olmak istiyorsanız, istemcide şunu ekleyin:
echo 'ServerAliveInterval 30' | sudo tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | sudo tee -a ~/.ssh/config
ServerAliveCountMax
Bu, varsayılan olarak 3'e ayarlanmıştır. Bu nedenle ServerAliveInterval
, sunucunuza 3 küçük bilgi paketi gönderdikten sonra, otomatik olarak oturumu kapatır. 1200 olarak ayarlamak, bu işlemin en az 1200 kez gerçekleşmesi gerektiği anlamına gelir. Kısacası, en az 30 * 1200 saniye (10 saat) bağlanmanız gerekir.
Bu genellikle ağ (TCP) bağlantınızın sıfırlandığı anlamına gelir. Örneğin, internet sağlayıcınız sizi veya bunun gibi bir şeyi yeniden bağladı.
Aynı sorunu yaşadım ama beklendiği gibi değil. Aynı ağda başka bir sunucunun aynı IP adresi için çalıştığını fark ederseniz, aynı sorunla karşılaşırsınız. Bunu çözmek için aynı IP adresinizi kullanan başka sunucular olup olmadığını kontrol etmeniz gerekir. Bu arp
komut kullanılarak yapılabilir .
Debian kullanıyorum bu yüzden burada başka bir sunucunun gerçekten aynı IP adresini kullanıp kullanmadığını belirlemek için kullandığım komutların bir örneği var.
apt-get install arp-scan
arp-scan -I eth0 -l | grep 192.168.1.42
192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)
Aynı IP adresini kullanarak iki grup mac adresi göreceksiniz. Birini başka bir IP adresine ayarlayarak çakışmaları önleyin.
"Broken Pipe" mesajının bir başka nedeni de, başka bir makinenin ana makinenizle aynı IP'yi kullanmaya çalışıyor olmasıdır.
Bu IP'yi başka birinin kullanıp kullanmadığını test etmenin basit bir yolu:
Ağınızda hangi makinelerin bulunduğunu bulmak için, bu Unix ve Linux soru başlığını kullanabilirsiniz: Başka hangi makinelerin yerel ağa bağlı olduğunu bulma .