perché le mie sessioni ssh si bloccano dopo qualche tempo? [chiuso]


10

Mi scuso se questo non è il posto giusto per porre questa domanda.

Ho regolarmente bisogno di ssh su server diversi. Ora, dalla mia macchina di casa (Linux Mint), quando mi connetto via ssh, dopo un po 'di inattività, la mia shell ssh si blocca e non c'è modo di ripristinarla. L'unica cosa che posso fare è '~. ", Che almeno mi restituisce la shell iniziale.

Quando accedo da altre posizioni agli stessi server non c'è problema. Potrebbe essere un problema con il mio ISP? Come posso approfondire ulteriormente su questo?

È davvero fastidioso, poiché devo ristabilire le connessioni ssh dopo il congelamento, tornare a dove ero e riprendere a lavorare. Grazie


Hai un indirizzo IP statico? Altrimenti potrebbe essere che il tuo ISP ti abbia fornito un indirizzo IP diverso durante la sessione - controlla i log e vedi.
utente9517

Non ho un indirizzo IP statico. Controllerà
coccolithophore il

Risposte:


20

Il tuo NAT sta lasciando cadere il tuo socket TCP dopo un periodo di inattività.

Il client ssh può facoltativamente inviare noops periodici al server, eliminando così questo problema. Per fare ciò, aggiungi questo al tuo ~/.ssh/config:

Host *
  ServerAliveInterval 60

In alternativa, riconfigurare il NAT per non far scadere gli elementi dalla sua tabella di stato così rapidamente come lo è ora.


Oltre a quanto sopra, dovresti usare un terminale multiplexer per le tue sessioni - qualcosa come GNU Screen o tmux. Con uno di questi, è possibile ripristinare la sessione in caso di disconnessione.


O il NAT o qualsiasi firewall dolorosamente sbagliato nel percorso a cui piace eliminare le sessioni TCP inattive. Non c'è motivo di abbandonare le sessioni TCP inattive, oltre alla mancanza di memoria per mantenere gli stati, ma ciò dovrebbe accadere molto di rado se si dimensionano e si configurano correttamente le apparecchiature. È una buona funzionalità sapere se il tuo provider / amministratore è competente (o meno).
zerodeux,

0

Nel mio caso il problema era di grandi dimensioni MTU. Puoi cambiare MTU sul router se usi NAT, ma cambio MTU sul server:

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

Su Windows puoi anche aumentare questa chiave:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000010
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.