Score:0

SSH ทันเนล HTTP/S การเชื่อมต่อไคลเอ็นต์ติดอยู่ในสถานะ FIN_WAIT2

ธง jp

ฉันได้ตั้งค่าช่องสัญญาณระหว่างเซิร์ฟเวอร์สองเครื่องสำเร็จแล้ว เช่น การเชื่อมต่อขาเข้าที่พอร์ต 80/443 จะถูกส่งต่อไปยังเซิร์ฟเวอร์อื่นที่ใช้งานเว็บเซิร์ฟเวอร์จริง นอกจากนี้ ฉันใช้ autossh เพื่อรักษาการเชื่อมต่อ

วิธีนี้ใช้งานได้ดี ยกเว้นว่าแทนที่จะปิดอย่างสมบูรณ์ การเชื่อมต่อขาเข้าจำนวนมากจะจบลงในสถานะ FIN_WAIT2:

ตัวอย่างเอาต์พุต netstat

..และเนื่องจากสิ่งเหล่านี้เชื่อมโยงกับกระบวนการที่กำลังทำงานอยู่ ระบบจึงไม่เคยล้างข้อมูลเหล่านี้ ในที่สุด ฉันถึงขีดจำกัดการเปิดไฟล์ ส่งผลให้ไคลเอนต์ SSH ไม่ยอมรับการเชื่อมต่อใหม่ ปัญหาคือฉันไม่สามารถเข้าใจได้ว่าเหตุใดสิ่งนี้จึงเกิดขึ้น การเชื่อมต่อขาเข้าจำนวนมากปิดสนิท แต่การเชื่อมต่ออื่น ๆ ยังคงมีอยู่ไม่สิ้นสุด

สิ่งที่ฉันได้ลอง:

  1. ปิดการใช้งาน ServerAliveInterval/CountMax, ClientAliveInterval/CountMax และ TCPkeepAlive

  2. เริ่มบริการใหม่ (ใช้งานได้ แต่ไม่ใช่วิธีแก้ปัญหาจริงๆ)

การค้นคว้าที่ฉันทำเกี่ยวกับสิ่งนี้ทำให้ฉันได้รับแหล่งข้อมูลน้อยมาก เช่น คำถามนี้เกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์ซึ่งยังไม่ได้เสนอวิธีแก้ปัญหาใดๆ

ฉันไม่เข้าใจว่าการเชื่อมต่อที่ไม่คงอยู่และไคลเอนต์ที่ตัดการเชื่อมต่อยังคงทำงานอยู่ได้อย่างไร ใครช่วยส่องแสงได้บ้าง?

djdomi avatar
za flag
autossh สำหรับ http/https? ทำไมไม่ใช้ Reverse-Proxy เช่น nginx ใช้ K.I.S. เสมอ - ง่าย ๆ เข้าไว้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา