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

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

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

我有一个软件向服务器发出请求,但它使用默认界面eth0

是否可以暂时使用另一个 IP 地址/接口执行软件,例如eth0:1

就像是 :

USE_INTERFACE=eth0:1 node test.js

答案1

这通常由软件支持。它通常通过将套接字绑定到您要使用的接口的 IP 地址来实现。查看文档以了解绑定到本地 IP 地址的方法。

如果软件不支持您访问源,您可以bind()在创建套接字后添加或更改调用,然后绑定到您想要的接口。

如果您的内核支持的话,也可以使用控制组功能来隐藏不需要的接口。

答案2

借助 LD_PRELOAD,您无需接触软件即可进行覆盖。

我找到 :

绑定

然后编译它:

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

并且它将使用虚拟接口ip!

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

马尔蒂马克

祝您黑客愉快!

答案3

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

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

相关内容