Как подключиться к серверу JMX, работающему внутри WSL2

Я запускаю свое приложение Java со следующими параметрами, которые разрешают удаленные подключения к серверу JMX:

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9998
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

Я могу успешно подключиться к этому серверу JMX через VisualVM, добавив новое соединение JMX по адресу: <HOSTNAME>:9998

Но когда я запускаю это приложение в подсистеме Windows для Linux 2 (WSL2), Visual VM не может подключиться к localhost:9998: соединение не удалось

Насколько я знаю, каждый порт, который приложение прослушивает в WSL2, также открыт на хост-машине (в самой Windows), и я могу проверить это с помощью Win+R -> cmd -> telnet localhost 9998 (подключено успешно). Кроме того, я запускаю экземпляр nginx внутри WSL2, к которому я могу подключиться любым браузером на моем хост-компьютере (Windows), используя localhost.


person pszemus    schedule 16.02.2021    source источник


Ответы (1)


Похоже, это общая проблема Java.

https://github.com/microsoft/WSL/discussions/6253

Обходной путь, который сработал для меня, - это прослушивание «0.0.0.0» вместо «127.0.0.1» в WSL2 с сервером JMX.

person moxli    schedule 01.04.2021