Я пытаюсь установить соединение JMX через туннель SSH с процессом, работающим внутри удаленного док-контейнера.Из Java Mission Control, VisualVM или JConsole истекает время соединения, и я не могу подключиться.
Соединение JMX устанавливается, если я подключаюсь в JConsole (или любом другом) напрямую к удаленной машинеф.Проблема возникает, когда я использую SSH-туннель.
Я устанавливаю SSH-туннель от локального компьютера до удаленного компьютера с помощью
ssh username@remote-machine-ip -L 9090:127.0.0.1:9090
В контейнере докера я открываюпорт 9090, и я использую следующие аргументы для JVM:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.rmi.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=127.0.0.1
-Djava.rmi.server.useLocalHostname=true
В -Djava.rmi.server.hostname
Я уже пытался использовать 127.0.0.1, localhost, хост хоста Docker-контейнеров ip ...
В JConsole я использую 127.0.0.1:9090
для подключения.
Запуск tcpdump на удаленной машине. Я могу перехватить некоторые пакеты, поступающие на порт 9090, но в JConsole происходит сбой с сообщением «Ошибка подключения».
Есть идеи, что я делаю не так?