您的问题不是用于RMI注册表的查找调用的地址,而是URL中的地址是查找调用的结果。这默认为系统上第一个接口的IP地址,因此我的猜测是,当您连接到Internet时,它就是您的外部连接。
我认为正在发生的事情是您在127.0.0.1上调用RMI注册表,这将使Internet地址返回所需服务的位置,因此RMI调用将通过加密狗接口路由出去。
您需要设置的
java.rmi.server.hostname属性来告诉RMI注册主机名或IP地址在其RMI的URL返回的。
因此,您将需要以下内容:
String ipAddress = "10.1.2.3"; //Local IP address System.setProperty("java.rmi.server.hostname",ipAddress);要么
String hostname = "myserver"; //hostname that resolves for a local addressSystem.setProperty("java.rmi.server.hostname",hostname);


