iptables ส่งต่อทราฟฟิกไปยังอินเตอร์เฟสทั้งหมด


14

ฉันมีสองอินเตอร์เฟซและeth1 eth0ฉันต้องการเข้าชมทั้งหมดจะได้รับการส่งต่อไปยังeth0 eth1ฉันสร้างกฎ iptable เช่นนี้

iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT

แต่มันไม่ได้ผล นี่เป็นวิธีที่ถูกต้องในการทำเช่นนี้หรือไม่?

คำตอบ:


22

หากคุณยังไม่ได้เปิดใช้งานการส่งต่อในเคอร์เนลให้ทำเช่นนั้น

  • เปิด/etc/sysctl.confและไม่แสดงข้อคิดเห็นnet.ipv4.ip_forward = 1

  • จากนั้นดำเนินการ $ sudo sysctl -p

เพิ่มกฎต่อไปนี้ลงใน iptables

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

การรับส่งข้อมูลที่ส่งต่อทั้งหมดจะข้ามผ่านห่วงโซ่ไปข้างหน้า ในการกรองแพ็คเก็ตในตอนนี้คุณต้องสร้างกฎบนสายโซ่นั้นโดยระบุว่าอินเทอร์เฟซใดที่เข้า / ออกแทนการใช้เชน INPUT / OUTPUT

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.