Score:0

คำขอพร็อกซี/เส้นทางไปยังโดเมนย่อยไปยังที่อยู่ IP ในพื้นที่/Wireguard ที่แตกต่างกันหรือไม่

ธง cn

เรามีเครื่องเสมือนที่มีที่อยู่ IPv4 สาธารณะซึ่งของเรา ตัวอย่าง.คอม และ *.example.com จุดโดเมน

เรามีคอมพิวเตอร์เทคโนโลยีต่ำกระจายอยู่หลายเครื่องที่สร้างการเชื่อมต่อ/อุโมงค์ wireguard กับเครื่องเสมือนที่เข้าถึงได้แบบสาธารณะ

เราต้องการให้เครื่องเสมือนให้บริการเว็บไซต์บนพอร์ต 80/443, ยอมรับการเชื่อมต่อ ssh ผ่านพอร์ต 22, และอื่น ๆ.

เราต้องการให้คอมพิวเตอร์เทคโนโลยีต่ำเข้าถึงได้แบบสาธารณะผ่านโดเมนย่อยที่เกี่ยวข้อง เช่น โลว์-เทค-01.example.com, โลว์-เทค-02.example.comและอื่นๆ และคำขอพร็อกซี/การกำหนดเส้นทางไปยังที่อยู่ IP ในพื้นที่/Wireguard ที่เกี่ยวข้อง สิ่งนี้ควรใช้ได้กับเว็บไซต์ผ่านพอร์ต 80/443, การเชื่อมต่อ ssh ผ่านพอร์ต 22, และอื่น ๆ.

แก้ไข: ตามหลักการแล้ว ใบรับรอง SSL ควรให้บริการจากคอมพิวเตอร์เทคโนโลยีต่ำ และไม่ควรยกเลิกการเชื่อมต่อ SSL บนเครื่องเสมือน

แก้ไข: ตามหลักการแล้ว คีย์ส่วนตัว ssh สำหรับสร้างการเชื่อมต่อกับคอมพิวเตอร์เทคโนโลยีต่ำไม่ควรมีอยู่ในเครื่องเสมือน แต่จะมีอยู่ในไคลเอ็นต์เท่านั้น

แก้ไข: สำหรับ ssh เราสามารถเปิดและกำหนดเส้นทางหนึ่งพอร์ตที่ไม่ซ้ำกันสำหรับคอมพิวเตอร์เทคโนโลยีต่ำแต่ละเครื่องจาก public_IPv4:22xxx ถึง ท้องถิ่น/wireguard_IP:22

น่าเสียดาย หลังจากใช้เวลาสองวันกับการลองผิดลองถูกการกำหนดค่า nginx เราพบว่างานนี้อาจไม่สามารถแก้ไขได้ด้วย nginx เพียงอย่างเดียว

หมายเหตุ: ssh ไม่ส่ง SNI; nginx ไม่สามารถฟังบนพอร์ตเดียวกันได้ http เช่นเดียวกับ ลำธาร การเชื่อมต่อ; และอาจจะมีปัญหามากขึ้น

นอกจากนี้ เรายังขาดความคิดโดยสิ้นเชิงและถูกครอบงำด้วยแนวทางดังกล่าว สามารถ แน่นอนแก้ปัญหานี้อย่างถูกต้อง

(www\.)?example.com â> สาธารณะ IPv4 â> เว็บไซต์ ssh ฯลฯ

โลว์-เทค-01.example.com â> IPv4 สาธารณะ â> ??? ~> 10.0.0.101 â> เว็บไซต์ ssh ฯลฯ

โลว์-เทค-02.example.com â> IPv4 สาธารณะ â> ??? ~> 10.0.0.102 â> เว็บไซต์ ssh ฯลฯ

¦

ขอบคุณสำหรับคำแนะนำและเวลาของคุณ

â

แก้ไข: nginx ต่อไปนี้ ลำธาร การกำหนดค่าใกล้เคียงกับสิ่งที่เราพยายามทำให้สำเร็จ ข้อเสียเพียงอย่างเดียว (อาจจะ) คือเราต้องกำหนดพอร์ตด้วยตนเองสำหรับคอมพิวเตอร์เทคโนโลยีต่ำแต่ละเครื่องแทนที่จะต้องจัดการแบบไดนามิกเช่นสำหรับการเชื่อมต่อ SSL

ลำธาร {
  แผนที่ $ssl_preread_server_name $name {
    example.com ตัวอย่างดอทคอม;
    www.example.com ตัวอย่าง.com;
    โลว์เทค-01.example.com โลว์เทค-01.example.com;
    โลว์-เทค-02.example.com โลว์-เทค-02.example.com;
  }

  ต้นน้ำ example.com {
    เซิร์ฟเวอร์ 127.0.0.1:8443;
  }

  ต้นน้ำเทคโนโลยีต่ำ-01.example.com {
    เซิร์ฟเวอร์ 10.0.0.101:443;
  }

  ต้นน้ำเทคโนโลยีต่ำ-02.example.com {
    เซิร์ฟเวอร์ 10.0.0.102:443;
  }

  เซิร์ฟเวอร์ {
    ฟัง 443;
    proxy_pass $ชื่อ;
    ssl_preread บน;
  }

  เซิร์ฟเวอร์ {
    ฟัง 22101;
    proxy_pass 10.0.0.101:22;
  }

  เซิร์ฟเวอร์ {
    ฟัง 22102;
    proxy_pass 10.0.0.102:22;
  }

  ¦
}
Ivan Shatsky avatar
gr flag
บางทีคุณอาจใช้คำสั่ง `s_client` จากเครื่องไคลเอนต์เมื่อเชื่อมต่อผ่านโปรโตคอล SSH ตรวจสอบ [นี้](https://serverfault.com/a/1023845/498657) คำตอบ
A.B avatar
cl flag
A.B
ดูคำถาม/คำตอบนี้เพื่อทำความเข้าใจข้อจำกัด: https://serverfault.com/questions/878080/how-do-i-make-protocol-foo-hostname-aware
Score:0
ธง us

คุณต้องมีที่อยู่ IP หลายที่อยู่บนเซิร์ฟเวอร์ หนึ่งที่อยู่สำหรับแต่ละโดเมนย่อยที่คุณต้องการใช้

จากนั้นคุณต้องกำหนดที่อยู่ IP สาธารณะให้กับแต่ละ VM หลังจากนั้นคุณสามารถผูกโดเมนย่อยกับที่อยู่ IP ได้ ใน VM เราสามารถส่งต่อพอร์ตไปยังปลายทางสุดท้ายที่ต้องการได้

fooness avatar
cn flag
ขอบคุณสำหรับคำตอบน่าเสียดายที่สิ่งนี้ไม่สามารถแก้ปัญหาได้ หากมีที่อยู่ IPv4 สาธารณะ เราก็ไม่ต้องการ VM เพื่อส่งพร็อกซี/กำหนดเส้นทางคำขอ
us flag
นั่นเป็นเพียงตัวเลือกเดียวสำหรับ SSH หากคุณต้องการแมปโดเมนกับอินสแตนซ์ต่างๆ อีกทางเลือกหนึ่งคือแยกพอร์ต TCP สำหรับแต่ละโดเมน จากนั้นทำการส่งต่อพอร์ต
fooness avatar
cn flag
พอร์ต TCP แยกกันสำหรับแต่ละโดเมนคือสิ่งที่เราใช้ในตอนนี้ ใช่ เราหวังว่าสิ่งนี้อาจเกิดขึ้นแบบไดนามิกแทนที่จะสร้างรายการด้วยตนเองสำหรับแต่ละพอร์ตเช่น บล็อค nginx `stream` ของเรา
us flag
ไม่ว่ากลไกจะเป็นอะไรก็ตาม คุณต้องจัดการการกำหนดค่าด้วยวิธีใดวิธีหนึ่ง ระบบการจัดการการกำหนดค่าควรช่วยด้วย

โพสต์คำตอบ

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