Score:0

IPTables เพื่อเข้าถึงทรัพยากรบน localhost ผ่าน IP สาธารณะ

ธง lc

ฉันมีการตั้งค่าต่อไปนี้: พรอกซ์ม็อกซ์ เจ้าภาพ เซิร์ฟเวอร์เฉพาะที่มี IP สาธารณะหนึ่งเครื่องและติดตั้ง IPTables และเครื่องเสมือนจำนวนมากที่ติดตั้งตัวเทียบท่า

ฉันใช้ iptables เพื่อส่งต่อพอร์ต 443 ไปยังหนึ่งใน VM ผ่าน DNAT และใช้งานได้ดีจากภายนอก เจ้าภาพ ได้แก่อินเทอร์เน็ต แต่ถ้าฉันพยายามเข้าถึงทรัพยากรภายใน VM ที่ทำงานบน VM ผ่าน IP สาธารณะ ก็จะไม่สามารถเข้าถึงได้

กรณีการใช้งาน: ฉันมี nginx พร้อม SSL เป็นพร็อกซีย้อนกลับสำหรับบริการที่ทำงานในนักเทียบท่าบน VM (แอปแบ็กเอนด์ + ส่วนหน้า) และจำเป็นต้องเข้าถึงแบ็กเอนด์จากส่วนหน้าผ่าน "สาธารณะ DNS, IP" เนื่องจากใบรับรอง SSL ถูกสร้างขึ้นสำหรับ DNS สาธารณะที่ชี้ไปยัง IP สาธารณะและพอร์ต ส่งต่อไปยัง nginx ของ VM

ฉันมีส่วนต่อประสานสาธารณะที่เชื่อมต่อกับ vmbr0 และอีก brige vmbr172 (172.20.0.0/16) สำหรับ VM

กฎ IPTables ปัจจุบันของฉัน:

iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 172.20.2.9:443
iptables -t nat -A POSTROUTING -s '172.20.0.0/16' -o vmbr0 -j MASQUERADE
iptables -L -n -t แนท -v
เชน PREROUTING (นโยบายยอมรับแพ็กเก็ต 58449, 3018K ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง
 1941 105K DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ถึง:172.20.2.9:443

Chain POSTROUTING (นโยบายยอมรับแพ็กเก็ต 5511, 332K ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง
 212K 18M MASQUERADE ทั้งหมด -- * vmbr0 172.20.0.0/16 0.0.0.0/0

ฉันได้ลองเปลี่ยนอินเทอร์เฟซเป็น ใดๆ แต่ดูเหมือนว่าการเชื่อมต่อจะ "แฮงค์" และหมดเวลา เดาว่าฉันต้องการกฎ postrouting แต่ไม่สามารถเข้าใจได้ว่าควรมีลักษณะอย่างไร

us flag
คุณต้องมองหา "กิ๊บติดผม NAT" เพื่อแก้ปัญหาของคุณ

โพสต์คำตอบ

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