mengapa sesi ssh saya membeku setelah beberapa waktu? [Tutup]

10

Mohon maaf jika ini bukan tempat yang tepat untuk mengajukan pertanyaan ini.

Saya secara teratur perlu ssh ke server yang berbeda. Sekarang, dari mesin rumah saya (linux mint), ketika saya terhubung melalui ssh, setelah beberapa saat tidak aktif, shell ssh saya membeku, dan tidak ada cara untuk mendapatkannya kembali. Satu-satunya hal yang bisa saya lakukan adalah '~. ", Yang setidaknya memberi saya shell inisiasi saya kembali.

Ketika saya masuk dari lokasi lain ke server yang sama tidak ada masalah. Mungkinkah itu masalah dengan ISP saya? Bagaimana saya bisa menyelidiki lebih lanjut tentang ini?

Ini sangat menjengkelkan, karena saya harus membangun kembali koneksi ssh setelah pembekuan, menavigasi kembali ke tempat saya berada dan melanjutkan pekerjaan. Terima kasih

coccolithophore
sumber
Apakah Anda memiliki alamat IP statis? Jika tidak, ISP Anda telah memberikan alamat IP pertengahan sesi yang berbeda - periksa log Anda dan lihat.
user9517
Saya tidak memiliki alamat IP statis. Akan memeriksa
coccolithophore

Jawaban:

20

NAT Anda menjatuhkan soket TCP Anda setelah beberapa saat tidak aktif.

Klien ssh Anda secara opsional dapat mengirim noops berkala ke server, sehingga menghilangkan masalah ini. Untuk melakukan ini, tambahkan ini ke ~/.ssh/config:

Host *
  ServerAliveInterval 60

Atau, konfigurasikan ulang NAT Anda untuk tidak kedaluwarsa dari tabel statusnya secepat sekarang.


Selain yang di atas, Anda harus menggunakan terminal multiplexer untuk sesi Anda - sesuatu seperti Layar GNU atau tmux. Dengan salah satu dari itu, Anda dapat memulihkan sesi Anda jika terputus.

EEAA
sumber
Entah NAT atau firewall salah yang menyakitkan di jalan yang suka menjatuhkan sesi TCP menganggur. Tidak ada alasan untuk menghentikan sesi TCP yang tidak digunakan, selain kurangnya memori untuk menjaga status, tetapi itu harus terjadi sangat jarang jika Anda benar-benar mengukur dan mengkonfigurasi peralatan Anda. Ini adalah fitur yang baik untuk mengetahui apakah penyedia / admin Anda kompeten (atau tidak).
zerodeux
0

Dalam kasus saya masalahnya adalah dalam ukuran MTU yang besar. Anda dapat mengubah MTU di router jika Anda menggunakan NAT, tapi saya mengubah MTU di server:

sudo /sbin/ifconfig eth0 mtu 1036
sudo /etc/init.d/networking restart

Di Windows Anda juga dapat menambah kunci ini:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000010
Vasin Yuriy
sumber