Forum: PC-Programmierung Linux: TCP Timeout verlängern?


von Kai O. (Gast)


Lesenswert?

Hi,
kann man die maximale Zeit bis eine TCP Verbindung abgebaut wird für 
einzelne Programme verlängern?

Also ssh von pc-a nach pc-b:

pc-a> ssh pc-b
pc-b>

pc-b schläft ein (S3)
..
(Stunden später)
pc-a wacht auf und man kann ohne erneutes "ssh pc-b" auf pc-b weiter 
machen

pc-b>


Oder muß man dafür ssh/sshd modifiziere?

von Markus M. (adrock)


Lesenswert?

Man müsste wohl grundsätzlich das Keepalive der SSH-Verbindung 
abschalten. Denn dadurch merkt der Client, dass der Server nicht mehr da 
ist.

Siehe

man ssh_config

Option TCPKeepAlive (default ist yes).

Zum Abschalten entweder die ssh_config verändern, oder die Option 
mitgeben mit

ssh -o TCPKeepAlive=no ...

Das sollte dann eigentlich ausreichen.

von Jim M. (turboj)


Lesenswert?

Kai O. schrieb:
> Oder muß man dafür ssh/sshd modifiziere?

Ich nehme für sowas dann immer "screen", damit kann man (ssh-) sessions 
fortsetzen.

von Kai O. (Gast)


Lesenswert?

Markus M. schrieb:

> ssh -o TCPKeepAlive=no ...
>
> Das sollte dann eigentlich ausreichen.

Es scheint nicht zu reiche.

Nach einigen Minuten steht dann im Terminal von pc-a:
pc-b> packet_write_wait: Connection to 10.0.0.42 port 22: Broken pipe

Da fehlt also etwas auf der ssh-Seite. (sshd schläft ja noch)

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Schau dir mal ServerAliveInterval und ClientAliveInterval an.

Jim M. schrieb:
> screen

Ich finde tmux besser.

von Kalauer (Gast)


Lesenswert?

Schau mal mosh an:

https://mosh.org/

Macht sozusagen "ssh over UDP", und kommt dabei dann auch mit 
wechselnden Quell-Addressen klar, und stört sich auch nicht dran, wenn 
der Client mal länger offline ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.