我在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,这里是一个教程: