在另一个networking接口上执行软件?

我在Linux系统上创build了3个虚拟接口,使用不同的IP地址。

我有一个软件正在向服务器发送请求,但是它使用默认的接口eth0

是否可以使用其他IP地址/接口临时执行软件,如eth0:1

就像是 :

 USE_INTERFACE=eth0:1 node test.js 

这通常取决于软件支持。 通常通过将套接字绑定到要使用的接口的IP地址来实现。 检查文档以获取绑定到本地IP地址的方法。

如果软件不支持您可以访问源代码,则可以在创build套接字后添加或更改bind()调用,以便绑定到所需的接口。

如果您的内核支持,也可以隐藏控制组function的不需要的接口。

由于LD_PRELOAD,您可以覆盖而不触及软件。

我find :

Bind.c

编译它然后:

 $ BIND_ADDR="virtual_interface_ip" LD_PRELOAD=./bind.so ssh [email protected] 

它将使用虚拟接口IP!

那么如果你需要在同一个网卡上有多个mac地址,你可以使用multimac:

Multimac

快乐的黑客!

好吧,使用与虚拟化系统相同的策略会更容易。 使用桥接模式,brctl,这里是一个教程:

http://www.lainoox.com/bridge-brctl-tutorial-linux/