ฉันมีสองอินเตอร์เฟซและeth1
eth0
ฉันต้องการเข้าชมทั้งหมดจะได้รับการส่งต่อไปยังeth0
eth1
ฉันสร้างกฎ iptable เช่นนี้
iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT
แต่มันไม่ได้ผล นี่เป็นวิธีที่ถูกต้องในการทำเช่นนี้หรือไม่?
ฉันมีสองอินเตอร์เฟซและeth1
eth0
ฉันต้องการเข้าชมทั้งหมดจะได้รับการส่งต่อไปยังeth0
eth1
ฉันสร้างกฎ iptable เช่นนี้
iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT
แต่มันไม่ได้ผล นี่เป็นวิธีที่ถูกต้องในการทำเช่นนี้หรือไม่?
คำตอบ:
หากคุณยังไม่ได้เปิดใช้งานการส่งต่อในเคอร์เนลให้ทำเช่นนั้น
เปิด/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