将 Java 进程绑定到虚拟接口

将 Java 进程绑定到虚拟接口

<myIFaddr>我正在尝试将 Java 进程绑定到具有以下IP 地址的特定虚拟接口:

export BIND_ADDR=<myIFaddr> LD_PRELOAD=./bind.so
exec java -jar ppp.jar

该程序ppp.jar只是向 HTTP 服务器发出请求,服务器回复客户端的 IP 地址,并将该地址打印到 stdout。
结果,java 程序打印“物理接口”的 IP 地址(非虚拟接口,具有不同的 IP 地址)。

有没有办法解决这个问题,应用正确/不同的绑定?

谢谢

答案1

如果您在应用程序中使用 Java 套接字,则可以按如下方式使用 bind 函数:

mysocket=new Socket();
mysocket.bind(new InetSocketAddress(<myIFaddr>, port));

当然,您必须修改代码以在 Java 应用程序中接收输入。

相关内容