![将流量从一个以太网接口转发到另一个以太网接口](https://linux22.com/image/646229/%E5%B0%86%E6%B5%81%E9%87%8F%E4%BB%8E%E4%B8%80%E4%B8%AA%E4%BB%A5%E5%A4%AA%E7%BD%91%E6%8E%A5%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%BB%A5%E5%A4%AA%E7%BD%91%E6%8E%A5%E5%8F%A3.png)
之前,我试图将流量从一个以太网接口传输到另一个以太网接口无需使用桥梁。以下是解决方案的链接:https://stackoverflow.com/questions/26908439/c-program-to-receive-and-send-the-same-packets-out-over-another-interface。它是一个简单的应用程序,从一个接口读取并盲目地写入另一个接口。
(笔记本电脑 1)<---------->[[{eth0}(LINUX PC){eth1}]]<------------->(笔记本电脑 2)
这是基本图表,但我们现在只需要记住具有两个接口的 Linux PC。假设我试图从eth0到eth1。此应用程序只能单向工作。如果我尝试同时运行另一个应用程序实例,并在代码中反转输入和输出接口,数据包就会进入连续循环。因此,我无法使用此应用程序进行双向通信,而这对于 ICMP Ping 和 TCP 至关重要。
我猜我需要使用 IPTables 和 Netfilter队列帮助我简单地将流量从一个接口转移到另一个接口。我不需要任何路由决策,也不能使用出色的以太网桥(我不能使用的原因是个秘密)。如果这样更容易解释,请考虑简单的 UDP 流量和同一网络上的所有系统(例如:192.168.1.xxx)。
我已经尝试过了
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
并且我的文件系统中启用了 ipv4 转发。如果您需要任何其他信息,请告诉我。