如何仅在已安装的 3 个接口中的 2 个之间进行 IP 转发?

如何仅在已安装的 3 个接口中的 2 个之间进行 IP 转发?

我正在使用 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

相关内容