ฉันต้องการอนุญาตให้ลูกค้าสองคน (ทางด้านซ้าย) พูดคุยกับเอนทิตีระยะไกลหนึ่งแห่ง (ทางด้านขวา) เอนทิตีทั้งหมดนอกเหนือจาก linux PC ไม่สามารถกำหนดค่าได้ด้วย w.r.t. ไปยังพอร์ตการฟัง
ฉันจินตนาการถึงวิธีแก้ปัญหาดังนี้
และใช้การกำหนดค่า iptables ต่อไปนี้
iptables -t nat -F การโพสต์
iptables -t nat -F การแนะนำล่วงหน้า
sudo iptables -t nat -A PREROUTING -i enp10s0 -p udp --sport 55555 -j DNAT --to a.b.c.d:55555
sudo iptables -t nat -A PREROUTING -i enp7s0 -p udp --dport 33333 -j DNAT --to 192.168.11.11:55555
sudo iptables -t nat -A PREROUTING -i enp7s0 -p udp --dport 44444 -j DNAT --to 192.168.11.12:55555
sudo iptables -t nat -A POSTROUTING -o enp7s0 -p udp --dport 55555 -j SNAT --to-source e.f.g.h
sudo iptables -t nat -A POSTROUTING -o enp10s0 -p udp --match multiport --sports 33333,44444 -j SNAT --to-source 192.168.11.2
แต่นั่นไม่ได้ผล:
- ใน 192.168.4.1 ฉันเห็นทราฟฟิกขาเข้าจาก 192.168.11 และ .12
- แต่บน linux PC ฉันไม่เห็นทราฟฟิกใด ๆ ที่ได้รับบน e.f.g.h เพื่อส่งต่อไปยังไคลเอนต์ .11 และ .12
ข้อผิดพลาดของฉันอยู่ที่ไหนหรือฉันจะบรรลุผลที่ต้องการด้วยวิธีอื่นได้อย่างไร