Допустим, общественный IP маршрутизатора является 92.1.85.179
Локальный IP компьютера с сервером 192.168.0.2
Маршрутизатор переадресацию 92.1 .85.179: 5678 в 192.168.0.2:5678Проблемы с подключением к серверу RMI, который находится за маршрутизатором
на сервере у меня есть:
System.setProperty("java.rmi.server.hostname" , "92.1.85.179");
Registry registry = LocateRegistry.createRegistry(5678);
registry.rebind("TheWebServer" , webServerInt);
клиент имеет:
Registry registry = LocateRegistry.getRegistry("92.1.85.179" , 5678);
server = (WebServerInterface) registry.lookup("TheWebServer");
Когда клиент находится в локальной сети на сервере, все в порядке. Когда клиент находится за пределами локальной сети, он получает java.rmi.ConnectException: подключение отказалось от хоста: 192.168.0.2;
Очевидно, что сервер предоставляет клиенту IP-адрес 192.168.0.2, так как он не отображается в коде, который, как я думал, должен был измениться, System.setProperty("java.rmi.server.hostname" , "92.1.85.179");
.
Любой вход был бы оценен.