Как использовать JProfiler через SSH-туннель с двумя переходами

Я пытаюсь подключить JProfiler к JVM, работающей на сервере, который я назову удаленным. Этот сервер доступен только с моей рабочей станции (локальной) через другой сервер, который я назову средним. Мой план по подключению JProfiler к удаленному был следующим:

  1. Установите инструментарий JProfiler на удаленном

  2. Установите SSH-туннель от локального через середину к удаленному:

    ssh -v -N -L 8849:[remote's private address (192.168... etc)]:8849 [middle]

  3. Установите новый сеанс JProfiler на localhost:8849, выбрав Запускать немедленно, подключиться позже с графическим интерфейсом JProfiler

Однако я получаю сообщение об ошибке:

Ошибка подключения

Либо используется старая версия собственной библиотеки, либо другое приложение прослушивает порт 8849. Проверьте переменную среды DYLD_LIBRARY_PATH и конфигурацию порта.

У меня нет других программ, привязанных к локальному порту 8849, кроме моего SSH-туннеля, и я подтвердил, что сам SSH-туннель должен работать правильно - я могу перенаправлять соединения для тестового HTTP-сервера из удаленное на локальное через аналогично настроенный туннель.

Я нашел этот аналогичный вопрос, но решения не было.

Что мне не хватает в моей конфигурации?


person mrosenberger    schedule 25.11.2014    source источник


Ответы (1)


Прямой туннель устанавливается с

ssh -t user@remote -L [localPort]:localhost:[remotePort] -N

Туннель с двумя переходами создается с помощью связанных команд ssh:

ssh -t user@middle -L [localPort]:localhost:[remotePort] \
ssh -t user@remote -L [remotePort]:localhost:[remotePort] -N

где localPort - это порт, который вы хотите использовать локально, а remotePort - это порт, который прослушивает агент профилирования. Все это выполняется одной командой на вашем локальном компьютере. Можно добавить больше переходов с помощью дополнительных вызовов ssh, как в первой строке. Должен быть ровно один завершающий -N для всей команды.

Этот подход работает с JProfiler.

В случае сбоя туннелей или если агент профилирования не прослушивает, вы получите сообщение, которое вы упомянули, из-за того, как происходит сбой соединения в случае туннеля SSH.

person Ingo Kegel    schedule 26.11.2014