Diagnosing PuTTY SSH Idle Disconnections with Keepalive Settings
Learn how to recognize, diagnose, and fix PuTTY SSH sessions that freeze after idle periods using application‑level and TCP keepalive settings.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how to recognize, diagnose, and fix PuTTY SSH sessions that freeze after idle periods using application‑level and TCP keepalive settings.
A concise architecture note on building a minimal NGINX reverse proxy with keepalive upstream connections and least‑conn load balancing, covering trust boundaries, operational checks, and failure‑mode mitigations.
I run long-lived SSH sessions from PuTTY through a home NAT router, and idle sessions are dropped after some period of inactivity. PuTTY's Connection panel offers two distinct mechanisms: "Seconds between keepalives", which sends SSH-level null packets, and "Enable TCP keepalives", which relies on the OS socket layer. My understanding is that the null-packet
Goal: migrate a small application over SSH without noticeable downtime while the client may switch networks, causing its IP address to change. Constraint: the migration must avoid repeated authentication and keep interruption to a minimum, but OpenSSH does not natively support IP‑address mobility, so any change in client IP breaks the existing TCP session. U
Goal: Keep the gRPC client connection pool from exhausting file descriptors or memory by preventing dead connections from lingering, while keeping keepalive‑induced overhead low enough to stay within middlebox idle‑timeout limits and avoid unnecessary CPU/network load. Constraint: The exact idle timeout enforced by firewalls, sidecar proxies or cloud load ba
Goal Preserve unsaved form input across route navigation in Vue 3 with Vue Router 4 while preventing cached instances from growing unbounded in memory. Constraint <KeepAlive include="Form"> retains deactivated instances and reactive state in RAM, but timers, listeners, and third-party subscriptions are not cleared automatically; activated and deactivat
Goal: verify that nginx ≥ 1.19.8 resolves the upstream keepalive memory leak that manifested as SIGSEGV in worker processes under prolonged HTTP/1.1 keepalive traffic, and determine whether the worker_processes auto setting still produces uneven load distribution on heterogeneous CPU architectures when worker_process_auto_affinity is enabled. Constraints: wh
gRPC channels can use HTTP/2 PING frames as a keepalive mechanism, letting a client detect a dead connection within a configured timeout instead of waiting for a long transport-level failure. The decision on the table is whether to enable keepalive on long-lived channels that traverse a managed load balancer or NAT gateway. Two documented constraints shape t
The goal is to lower request latency for short‑lived, bursty traffic in nginx without exceeding system file descriptor limits or causing excessive memory use. Increasing worker_connections lets each worker handle more simultaneous sockets, but raises memory pressure and may hit FD limits. Enabling keepalive reuses existing TCP connections, cutting handshake