我在一个带有两个公共接口的盒子上有一个 rmi 服务器。当客户端连接时,它总是在UnicastServerRef2 [liveRef: [endpoint:[192.x.x.x:xxxx
...中返回错误的 ip 地址。来自客户端的连接使用 ip 转到另一个接口10.x.x.x
。有谁知道如何解决这个问题?我不想在绑定存根时指定 ip。然后它可以工作,但我希望它能够监听所有接口(0.0.0.0
)。
如果我指定java.rmi.server.hostname=myhostname
并使用 aRMIServerSocketFactory
创建 a ServerSocket[addr=myhostname/10.x.x.x,localport=xxxx]
,它仍会将192.x.x.x
地址作为远程端点返回给客户端。奇怪的是,我UnicastRemoteObjects
在不同的端口上有两个对象,其中一个返回正确的地址,另一个没有。
任何想法如何使其返回带有连接的接口的ip的端点?