ฉันมี Debian 11 VM บนเครื่อง Windows มีอะแดปเตอร์เครือข่าย 3 ตัว หนึ่งคือภายนอก (WAN) หนึ่งภายใน (LAN) และอีกแบบส่วนตัว (ทดลอง)
ฉันใช้กล่องเป็นเราเตอร์ซึ่งจะใช้เราเตอร์ DSL ของฉันกลับผ่าน WAN NIC ซึ่งเชื่อมต่อกับกล่อง Hyper-V ทุกอย่างทำงานได้อย่างชาญฉลาด
สิ่งที่ฉันพยายามทำให้สำเร็จ และหลังจากอ่านบทความมากมายแล้วล้มเหลว คือการพยายามสกัดกั้นพอร์ตเดียว (4444) ตัวอย่างเช่น ไปยังที่อยู่ IP อินเทอร์เน็ตสาธารณะเดียว และเปลี่ยนเส้นทางนั้นกลับไปยังเครื่องของฉัน แลน. ฟังดูง่ายๆ และฉันแน่ใจว่าใช่ แต่ฉันใช้งานไม่ได้
เพื่อให้ชัดเจนนี่คือ ไม่ พยายามเปิดเผยพอร์ตสาธารณะและกำหนดเส้นทางภายใน นี่คือการสกัดกั้นหนึ่งพอร์ตเดียว (แอปพลิเคชันที่มีปัญหาเชื่อมต่อกับหลายพอร์ต) ฉันต้องการให้การสื่อสารทั้งหมดไปที่เซิร์ฟเวอร์เป้าหมายตามปกติ แต่ฉันต้องการให้พอร์ตนี้ส่งตรงไปยังเครื่องของฉัน ซึ่งฉันได้กำหนดค่าเซิร์ฟเวอร์ซ็อกเก็ตไว้เพื่อจัดการกับการสื่อสาร
ฉันรู้ว่าคำตอบเกี่ยวข้องกับ iptables แต่ฉันไม่สามารถรับคำสั่งได้ถูกต้อง เมื่อใดก็ตามที่ฉันทำ
iptables -t nat -A OUTPUT -p tcp --dport 4444 -j DNAT --to-ปลายทาง 10.0.0.111:4444
มันไม่ปรากฏในของฉันด้วยซ้ำ iptables -L
. เปิดใช้งานการส่งต่อ ฉันได้ลองแล้ว:
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 4444 -j DNAT --to-destination 10.0.0.111:4444
ฉันใช้กับ eth0 ซึ่งเป็นเกตเวย์เริ่มต้นด้วยซ้ำ
eth0 - WAN สาธารณะ
eth1 - แลน
eth2 - ทดลองกับการกำหนด IP สาธารณะที่เป็นปัญหา แต่สกรูนี้กำหนดเส้นทางสำหรับพอร์ตทั้งหมดดังนั้นยอมแพ้