เซสชัน SSH ผ่าน OpenVPN จะตัด / ล็อคหลังจากผ่านสองสามบรรทัด


12

ฉันมีพีซีไร้พัดลมที่เหมือนกันจำนวนมากที่ใช้ debian 6 (ARM) ส่วนใหญ่เชื่อมต่อกันผ่าน comcast และทำงานได้ดี มีบางอย่างที่เชื่อมต่อกับโมเด็ม 'WiMax' และมีปัญหาด้านการสื่อสาร

โดยเฉพาะ: ถ้าฉันเลือกหนึ่งในนี้และลองใช้คำสั่งเช่น 'ps -ax' ฉันจะได้รับประมาณ 3 บรรทัดจากนั้นเซสชั่นจะถูกล็อค ถ้าฉันปล่อยให้นั่งในที่สุดมันจะปิดด้วย 'เซสชันปิดโดยเพียร์'

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

  • ssh -vvv →ไม่มีข้อความผิดพลาด
  • ssh <user@host> 'command'→บางครั้งจะส่งคืนเอาต์พุตเต็มของคำสั่ง บางครั้งมันจะไม่เชื่อมต่อเลย

ข้อเสนอแนะในสิ่งอื่น ๆ ที่จะลอง?

ฉันพบว่าฉันสามารถรันคำสั่งบางอย่างได้สำเร็จเช่นการกดปุ่มส่งคืนโหลหรือมากกว่านั้นก็โอเค cd ~แล้วทำงานเป็นไม่lf df -hฉันสามารถรันได้dfหลายครั้งสำเร็จ แต่ทันทีที่ฉันลองบางสิ่งที่มีเอาต์พุตมากขึ้น (เช่นls /etc) มันจะล็อค

มันสร้างความแตกต่างที่ฉันพยายามสื่อสารระหว่างสองโฮสต์นี้โดยใช้ OpenVPN หรือไม่?


ตรวจสอบให้แน่ใจว่าพา ธ MTU ของคุณไม่ต่ำกว่าอินเทอร์เฟซ MTU ที่กำหนดค่า SSH ไม่แตกแฟรกเมนต์ดังนั้นเมื่อใช้ชุด DF bit แพ็คเก็ตจะถูกทิ้งแทน อ่านสิ่งนี้สำหรับคำอธิบายโดยละเอียดเพิ่มเติม
Aaron Copley

1
พยายามตั้งค่า MTU บนทุกอินเตอร์เฟสเป็น 1400 โดยไม่มีผลกระทบที่ชัดเจน ทดสอบping -c 1 -s $((5000-28)) -M do machine-ipซึ่งส่งคืน 1,500 - เหมือนกับเครื่องจักร
ethrbunny

1
tracepath -n <ip>ยืนยันสิ่งนี้: 1,500 ได้รับอนุญาตตลอดทาง
ethrbunny

1
ยกโทษให้ความเขลาของฉัน แต่วิธีนี้จะ-Tช่วยได้อย่างไร
Aaron Copley

2
<อ่านย่อหน้าที่สอง> เป็นปัญหาของ MTU <อ่านเพิ่มเติม> ใช่ปัญหา MTU ดูหัวข้อนี้สำหรับคำอธิบาย ฉันไม่ได้ลงคะแนนให้ปิดเพราะซ้ำเพราะมีประเด็นหนึ่งที่เธรดอื่นไม่ได้กล่าวถึง: สิ่งที่คุณต้องเปลี่ยนในการกำหนดค่า VPN ของคุณเพื่อแก้ไขปัญหา
Gilles 'หยุดชั่วร้าย'

คำตอบ:


11

คุณมีอาการของปัญหาMTU : การเชื่อมต่อ TCP บางส่วนหยุดทำงานทำซ้ำได้มากขึ้นหรือน้อยลงสำหรับคำสั่งหรือ URL ที่กำหนด แต่ไม่มีรูปแบบโดยรวมที่มองเห็นได้ง่าย อาการปากโป้งคือเซสชันของ ssh แบบอินเทอร์แอ็คทีฟทำงานได้ดีตราบใดที่คุณไม่เรียกใช้คำสั่งที่มีเอาต์พุตขนาดใหญ่ ดูที่ไม่สามารถเข้าถึงเว็บไซต์ https ที่เลือกบน Linux ผ่าน PPPoEสำหรับคำอธิบาย

OpenVPN มีหลายตัวเลือกที่เกี่ยวข้องกับ MTU - ค้นหา“ mtu” ในคู่มือ ฉันไม่มีประสบการณ์เพียงพอที่จะมั่นใจในตัวเลือกที่คุณต้องการเปลี่ยน (เป็นไปได้ว่าคุณสามารถเปลี่ยนบางสิ่งในการกำหนดค่าโมเด็ม Wimax) ตัวเลือกที่น่าจะเป็นมากที่สุดคือmssfixลองลดค่าลงจนกว่าจะแก้ไขปัญหาได้ ค่าเริ่มต้นคือ 1450; บางอย่างเช่นประมาณ 1,400 อาจแก้ไขปัญหาของคุณ ลองopenvpn --fragment 1200 -mssfix; ถ้ามันช่วยได้ให้เพิ่มค่าจนกว่ามันจะเริ่มแตก


กำลังเริ่มต้นโดยการตั้งค่าmssfix 1200บนเซิร์ฟเวอร์และเริ่มต้นใหม่ จนถึงตอนนี้ดีมาก หากใช้งานได้ฉันจะทำจนถึง 1,300 หรือ 1,400 และดูว่าเกิดอะไรขึ้น มีลูกค้ามากเกินไปที่จะเปลี่ยนการกำหนดค่าระยะไกลทั้งหมดดังนั้นฝั่งเซิร์ฟเวอร์จะต้องทำ
ethrbunny

ฉันรู้ว่ามันคือ MTU!
Aaron Copley

3

คำตอบของ Gilles นั้นถูกต้องสมบูรณ์ แต่ก็มีอีกสาเหตุที่เป็นไปได้สำหรับเรื่องนี้

มีข้อบกพร่องในรุ่น 2.3.0 ของ OpenVPN ซึ่งจะตัดการเชื่อมต่อไคลเอ็นต์เมื่อส่งข้อมูลจำนวนมาก: https://community.openvpn.net/openvpn/ticket/263

ปัญหานี้เกิดขึ้นเมื่อใช้ TCP เท่านั้น UDP ไม่ได้รับผลกระทบอย่างสมบูรณ์


3

เรามีปัญหาเดียวกันและมันก็เป็นปัญหาของ MTU อย่างไรก็ตามสำหรับเราปัญหาไม่ได้อยู่ในการกำหนดค่า openVPN แต่ในอินเทอร์เฟซ tun0

วิธีที่เราแก้ไข: ก่อนอื่นหาขนาดแพ็คเก็ตสูงสุดที่ผ่านไปด้วย

ping <host> -s 1500 -M do

และลดค่า 1500 จนกระทั่งค่าผ่านไป (สำหรับเรา 1350)

เมื่อพบค่าที่ถูกต้องแล้วให้เปลี่ยนอินเตอร์เฟส tun0 ด้วย

sudo ip link set dev tun0 mtu 1350

ตามที่ได้เสนอโดยเซบาสเตียนที่นี่ หลังจากนั้น VPN ก็ดำเนินไปอย่างราบรื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.