我正在使用 ubuntu 12.04。
我的电脑上有 3 个 NIC,但我希望只在其中 2 个充当路由器的 NIC 上执行 IP 转发。第 3 个 NIC 需要与其他 2 个 NIC 分开,并且无法看到路由器的传输。
有没有办法只在 2 个 NIC 上运行 ip_forward,而不是在所有 3 个 NIC 上运行?我可以使用路由表代替 ip_forward 来执行相同操作吗?
答案1
您可以使用iptables
。
假设 eth0 和 eth1 将成为路由 NIC,而 eth2 将不会路由任何内容。
sudo iptables -A FORWARD -i eth2 -j DROP
sudo iptables -A FORWARD -o eth2 -j DROP
-o
通过 eth2 传入 ( ) 和传出 ( )的转发数据包-i
将被丢弃。PC 和 eth2 LAN 之间的通信不会受到影响。
如果希望在重新启动后使这些规则持久存在,请安装 iptables-persistent ( sudo apt-get install iptables-persistent
) 并运行以下命令来保存规则:
sudo iptables-save | sudo tee /etc/iptables/rules.v4