Tôi có một mạng cục bộ nhỏ, cõng trên WiFi bị giam cầm và tôi sử dụng ssh
trên OS X với -oServerAliveInterval=240
và PuTTY 0.62 trên Windows 7 Professional để thiết lập kết nối với Linode, Hetzner và các máy chủ khác của tôi.
Với PuTTY, tôi chọn Connection
→ Sending of null packets to keep session active
đến 240. Enable TCP keepalives (SO_KEEPALIVE option)
Tắt, theo mặc định.
Khi internet của tôi tạm thời ngừng hoạt động khoảng một phút (phải xác thực lại trên cổng bị khóa), PuTTY hầu như luôn mất tất cả các phiên ssh mở mà tôi có, và đặc biệt là những nơi có bất kỳ loại hoạt động nào, nhưng OpenSSH trên OS X không bao giờ mất bất kỳ phiên nào miễn là internet của tôi được sao lưu trong khoảng một hoặc hai phút, ngay cả khi tôi thực sự cố gắng nhập nội dung nào đó trong ssh và không thấy trả lời trong toàn bộ 60 giây hoặc lâu hơn, cho đến khi kết nối của tôi hoạt động trở lại. (Vì vậy, tôi biết chắc chắn rằng các quốc gia NAT luôn được bảo tồn.)
Tôi có thể ngăn Windows / PuTTY loại bỏ các kết nối tốt không?
Đối với tôi, dường như SO_KEEPALIVE hoặc một số thứ như vậy thực sự được bật trong Windows và thời gian chờ để phát hiện các kết nối cũ là quá nhỏ. Tôi muốn tăng nó lên một vài giây, tương tự như cách OS X miễn nhiễm với những lần mất điện tạm thời này, miễn là thời gian ngừng hoạt động chỉ vài trăm giây và thấp hơn giá trị của -oServerAliveInterval
(lần ServerAliveCountMax
).
mosh
là cách thay thế tốt hơn.)