Это хак, но вы можете попробовать настроить переадресацию портов на сервере, чтобы порт сервера реестра был открыт таким образом, чтобы все запросы, проходящие через него, выглядели как локальные.
Это довольно легко сделать с помощью SSH. На сервере запустите:
ssh localhost -N -L 1199:localhost:1099 -g
Это не будет запускать команду (-N
), но откроет сокет прослушивания на порту 1199 на локальном компьютере, который перенаправляется на порт 1099 на локальном хосте (-L 1199:localhost:1099
) и который доступен для подключений из любого источник (-g
). Соединения, сделанные через этот туннель, будут отображаться на сервере через порт 1099 как локальные. Обратите внимание, что вы также можете добавить -f
, чтобы SSH перешел в фоновый режим после настройки туннеля, и в этом случае я бы предложил также добавить '-o ExitOnForwardFailure' для улучшения обработки ошибок.
Также должно быть возможно сделать это, используя netcat, а не SSH, что будет проще и эффективнее, но у меня не установлена подходящая версия netcat. Это также возможно сделать с помощью socat, если у вас установлено:
socat TCP-LISTEN:1199,fork TCP:localhost:1099
Теперь я не знаю, будет ли достаточно одного из этих вариантов. Это откроет доступ на уровне сети, но возможно, что сервер rmiregistry все равно откажется регистрировать удаленные объекты. Хотя я сомневаюсь в этом.