ServerAliveInterval : จำนวนวินาทีที่ไคลเอ็นต์จะรอก่อนส่งแพ็กเก็ต null ไปยังเซิร์ฟเวอร์ (เพื่อให้การเชื่อมต่อมีชีวิตชีวา)
ClientAliveInterval : จำนวนวินาทีที่เซิร์ฟเวอร์จะรอก่อนที่จะส่งแพ็กเก็ต null ไปยังไคลเอ็นต์ (เพื่อให้การเชื่อมต่อยังคงอยู่)
การตั้งค่า 0 (ค่าเริ่มต้น) จะปิดใช้งานคุณสมบัติเหล่านี้เพื่อให้การเชื่อมต่อของคุณอาจลดลงหากไม่ได้ใช้งานนานเกินไป
ServerAliveInterval น่าจะเป็นกลยุทธ์ที่ใช้กันทั่วไปในการเชื่อมต่อ เพื่อป้องกันปัญหาท่อแตก, นี่คือ ssh config ที่ฉันใช้ในไฟล์. ssh / config ของฉัน:
Host myhostshortcut
HostName myhost.com
User barthelemy
ServerAliveInterval 60
ServerAliveCountMax 10
การตั้งค่าข้างต้นจะทำงานในวิธีดังต่อไปนี้
- ไคลเอนต์จะรอไม่ได้ใช้งานเป็นเวลา 60 วินาที (เวลา ServerAliveInterval) และส่ง "no-op null packet" ไปยังเซิร์ฟเวอร์และคาดหวังการตอบสนอง หากไม่มีการตอบสนองก็จะพยายามทำตามขั้นตอนข้างต้นจนถึง 10 (ServerAliveCountMax) ครั้ง (600 วินาที) หากเซิร์ฟเวอร์ยังคงไม่ตอบสนองไคลเอ็นต์จะยกเลิกการเชื่อมต่อ ssh
ClientAliveCountMax ทางฝั่งเซิร์ฟเวอร์อาจช่วยได้เช่นกัน นี่เป็นขีด จำกัด ว่าลูกค้าจะได้รับอนุญาตให้ตอบสนองก่อนที่จะถูกตัดการเชื่อมต่อ ค่าเริ่มต้นคือ 3 เช่นเดียวกับสาม ClientAliveInterval