Score:1

Guacamole กำลังฟังเฉพาะบน IPv6 localhost

ธง ru

ฉันเพิ่งติดตั้ง Apache Guacamole บน Ubuntu 20.04 และทดสอบด้วยผลลัพธ์เดียวกันใน 21.10 ฉันใช้งานได้ทั้งหมด แต่ต้องแก้ไขปัญหาบางอย่างเนื่องจากปัญหานี้

ที่นี่คือ แนะนำ ฉันสร้างหลังจากติดตั้งเสร็จและพบปัญหาทั้งหมดแล้ว

คำถามของฉันมีอยู่ว่ามีใครรู้วิธีทำให้ guacd ฟังทั้ง IPv4 และ v6 หรือไม่ วิธีแก้ปัญหาของฉันเดิมทีคือการปิดใช้งาน IPv6 บนเซิร์ฟเวอร์ แต่จำเป็นต้องเรียกใช้ในการเริ่มต้นแต่ละครั้ง จากนั้นฉันก็ค้นพบว่าฉันสามารถเปลี่ยนที่อยู่การฟังเป็น 127.0.0.1 และมันจะฟังบน IPv4 แทน v6 ฉันรู้ว่านี่อาจเป็นวิธีแก้ปัญหา แต่ฉันไม่เข้าใจว่าทำไมฉันไม่สามารถทำให้ guacd ฟังทั้งสองอย่างได้

John Mahowald avatar
cn flag
ตามลิงค์นั้น "ฉันต้องตั้งค่า guacd-hostname เป็น 127.0.0.1 เพราะไม่เช่นนั้นจะฟังบน IPv6 เท่านั้นและไม่สามารถใช้งานได้" ปัญหาคืออะไรกันแน่? "ทำงานล้มเหลว" ไม่ใช่คำอธิบายปัญหาที่เป็นประโยชน์ ทำไมคุณต้องใช้สแต็คคู่? เพียงแค่ ::1 ก็ใช้ได้สำหรับ localhost นอกจากนี้ โปรดอย่าพึ่งพาลิงก์ภายนอกสำหรับรายละเอียดคำถามของคุณ ให้คัดลอกรายละเอียดที่เกี่ยวข้องลงในคำถามของคุณ
ru flag
ถ้ามันรับฟัง ::1 คุณต้องตั้งค่า Guacamole Proxy Parameters ด้วยตนเองสำหรับทุกการเชื่อมต่อที่คุณสร้างให้ชี้ไปที่ ::1 หากคุณฟังใน 127.0.0.1 คุณไม่จำเป็นต้องแก้ไขส่วนนั้นของการกำหนดค่าเนื่องจากเป็นค่าเริ่มต้น ฉันไม่เข้าใจว่าทำไมมันไม่สามารถฟังในระดับสากลบน localhost และรวมถึง ipv4 และ v6
Score:0
ธง cn

เนื่องจากคุณไม่ได้ขอวิธีแก้ปัญหา แต่เป็นพื้นหลังทั้งหมด:

  1. ตรวจสอบที่อยู่ bind_host ของคุณ (เช่น "localhost") ที่แก้ไขเป็น:
$ python3 -c "นำเข้าซ็อกเก็ต
พิมพ์(set([a[4][0] for a in socket.getaddrinfo('localhost', 4822)]))"

{'127.0.0.1', '::1'}
  1. อาจเปิดปัญหาใหม่เพื่อให้ guacd ใช้การรองรับ dual-stack IPv4/IPv6 อย่างเหมาะสม และอนุญาตให้ระบุ bind_host ซึ่งมีที่อยู่ต่างกันหลายอัน

ฉันแก้ไขการรองรับ IPv6 เท่านั้นใน guacd https://issues.apache.org/jira/browse/GUACAMOLE-1190 ซึ่งเพียงพอสำหรับจุดประสงค์ของฉัน

รองรับ IPv6 dual-stack ที่เหมาะสมในเซิร์ฟเวอร์ TCP ใดๆ ในขณะที่ยังอนุญาตให้ผู้ใช้จำกัดการเชื่อมโยงกับที่อยู่เฉพาะ หมายความว่า:

  • สร้างซ็อกเก็ตหลายตัว
  • ผูก() ไปยังที่อยู่ทั้งหมดที่ส่งกลับโดย getaddrinfo() (127.0.0.1 และ ::1 สำหรับ "localhost")
  • ฟัง() บนซ็อกเก็ตที่เชื่อมต่อสำเร็จทั้งหมด
  • ใช้ เลือก() หรือ แบบสำรวจความคิดเห็น () เพื่อตอบสนองต่อไคลเอนต์ที่เข้ามาบนซ็อกเก็ตที่ถูกผูกไว้ทั้งหมดในคราวเดียว
  • เรียก ยอมรับ() เพื่อยอมรับการเชื่อมต่อไคลเอ็นต์หลังจากนั้น เลือก() ส่งคืนโดยไม่มีข้อผิดพลาดสำหรับซ็อกเก็ตบางตัวในชุด

สำหรับการอ้างอิง ดูคำตอบ/ไซต์เหล่านี้:

ความหมายของ :: และ 0.0.0.0 ใน dual-stack OSes

วิธีรองรับการเชื่อมต่อทั้ง IPv4 และ IPv6

เลือก - การมัลติเพล็กซ์ I / O แบบซิงโครนัส

โพสต์คำตอบ

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