Linux ไม่ได้หมดเวลาเชื่อมต่อ SSH ที่ไม่ได้ใช้งาน คุณสามารถเปิดการเชื่อมต่อ SSH ได้โดยไม่มีกำหนดและตราบใดที่ไม่มีการรีบูทจุดปลายหรือรับที่อยู่ IP ใหม่การเชื่อมต่อจะยังคงทำงานเมื่อคุณเข้าถึงหลังจากเวลาที่ไม่ได้ใช้งานเป็นเวลานาน
อย่างไรก็ตามหากมีกล่องรับสัญญาณกลางใด ๆ (NAT, ไฟร์วอลล์และอื่น ๆ ) ที่มีแนวโน้มว่าจะหมดเวลาการเชื่อมต่อที่ไม่ได้ใช้งาน ผลที่ได้คือแม้ว่าการเชื่อมต่อจะมีชีวิตอยู่ที่ปลายทั้งสองจุดปลายทั้งสองไม่สามารถสื่อสารได้อีกต่อไปเพราะมิดชิดปฏิเสธที่จะส่งต่อแพ็กเก็ตใด ๆ จนกว่าไคลเอ็นต์ SSH จะเปิดการเชื่อมต่อใหม่
ถ้าคุณรู้ว่าหมดเวลาของมิดเดิลแวร์คุณสามารถแก้ไขปัญหาได้โดยการกำหนดค่าClientAliveInterval
ใน/etc/ssh/sshd_config
เซิร์ฟเวอร์หรือServerAliveInterval
ใน~/.ssh/config
ไคลเอนต์ สำหรับการตรวจจับการเชื่อมต่อที่ดีที่สุดจะแนะนำให้เปิดใช้งานการตั้งค่าทั้งสอง นี่จะตรวจจับการเชื่อมต่อที่ใช้งานไม่ได้เมื่อปลายทางถูกรีบูทหรือได้รับที่อยู่ IP ใหม่
เนื่องจากคุณระบุว่าบางครั้งการหมดเวลาดูเหมือนจะน้อยถึงสองสามวินาทีนี่อาจไม่เพียงพอในการแก้ปัญหาของคุณ การหมดเวลาที่เห็นได้ชัดน้อยมากอาจเกิดจาก CGN ที่โอเวอร์โหลดหรือกำหนดค่าผิดพลาด คุณต้องตรวจสอบการรับส่งข้อมูลที่จุดต่าง ๆ ของเส้นทางการสื่อสารเพื่อให้ทราบว่า CGN รับผิดชอบต่อความล้มเหลวหรือไม่
หากปรากฎว่าความล้มเหลวเกิดขึ้นจาก ISP ของคุณทำบางสิ่งบางอย่างที่ไม่ดีเช่นการเชื่อมต่อโหลดบาลานซ์ผ่าน CGN หลายตัวที่ไม่ได้แชร์สถานะการเชื่อมต่อคุณไม่สามารถแก้ไขปัญหาด้วยตนเองโดยเพียงแค่ปรับแต่ง SSH ของคุณ
หากคุณบังเอิญติดกับ ISP ที่มี CGN ที่ไม่น่าเชื่อถือซึ่งพวกเขาปฏิเสธที่จะแก้ไขตัวเลือกเดียวที่เหลือที่ฉันรู้คือการอัพเกรดทั้งไคลเอนต์และเซิร์ฟเวอร์ให้เป็นเคอร์เนลเวอร์ชันด้วยการสนับสนุน MPTCP หรือใช้โซลูชันทันเนล การเปลี่ยนแปลงในการแม็พพอร์ตบน NAT