我想在 Linux 中用交叉电缆连接的两个以太网接口之间发送数据。两个以太网接口在同一个盒子上。我将以太网接口定义为具有不同的静态 IP 地址(1.2.3.4 和 5.6.7.8),并且一直使用套接字将字节从一个 IP 地址发送到另一个。我想强调一下,我希望数据离开盒子的一个接口,并在同一个盒子的另一个接口上接收。这样做的一个后果是拔下电缆会阻止同一盒子上的客户端和服务器之间的通信。
我猜内核比我聪明,它决定它不需要通过线路发送信息并在内部直接在套接字之间路由数据,从而否定了测试。我曾尝试使用 SO_BINDTODEVICE 强制客户端从特定接口发送数据,但服务器从未看到它。我真的被困住了,这似乎不应该这么困难。
route -n 表中有两个条目
Dest Gateway Genmask flags metric use interface
1.2.3.0 0.0.0.0 255.255.255.0 U 0 0 eth0
5.6.7.0 0.0.0.0 255.255.255.0 U 0 0 eth1