Подключиться к порту через работающий SSH-туннель из IntelliJ?

Подключиться к порту через работающий SSH-туннель из IntelliJ?

Я работаю над серверным приложением, размещенным на удаленном сервере Ubuntu 14.x. Это приложение прослушивает порт 8000 на удаленном компьютере. У меня есть надлежащая сессия SSH, поэтому я туннелируюсь в компьютер, и у меня также есть возможность sudo.

У меня есть IntelliJ на локальной системе Linux в офисе, и она также работает под управлением Ubuntu 14.x. Мне нужно подключить ее к порту 8000 на удаленном компьютере для сеанса удаленной отладки IntelliJ. Порт 8080 на удаленном компьютере недоступен публично.

Есть ли утилита, или трюк с таблицами IP (на удаленном компьютере), или трюк с SSH и т. д., которые могут предоставить локальный порт в моей системе для подключения IntelliJ, а затем проксировать/пересылать трафик на этот порт и с этого порта через туннель SSH на порт 8000 на удаленной системе? Другими словами, это заставит IntelliJ на моем локальном компьютере думать, что он напрямую общается с серверным приложением на удаленном компьютере, когда на самом деле соединение между ними проходит через активный туннель SSH?

Я помню, что делал что-то подобное давным-давно, но я совершенно забыл как, и тогда удаленный клиент был Windows box, поэтому решение было для Windows-систем. На этот раз и локальная система, и удаленная система — это серверы Ubuntu 14.x.

решение1

Настройте прямой туннель на локальной машине

autossh -f -N -L 0.0.0.0:8000:localhost:8000 username@remotebox

0.0.0.0:8000то, к чему подключится IntelliJ, он будет считать, что веб-приложение запущено на локальной машине, привязано к каждому локальному интерфейсу и работает на порту 8000.

localhost:8000это то, куда будет подключаться туннель, в контексте remotebox. localhostбольше не то, localhostнад чем вы работаете, а localhostинтерфейс внутри машины remotebox. Там он будет подключаться к порту 8000, который фактически является вашим веб-приложением, из контекста пользователя username.

autosshэто оболочка, sshкоторая обеспечивает автоматическое повторное подключение в случае разрыва соединения.

Если вы используете нестандартный порт для ssh на remotebox, используйте -P <PORT>параметр для подключения к нему.

Этот ответ стоит рассмотреть, если приведенный выше ответ не дает желаемого результата:https://unix.stackexchange.com/a/118650/61956 оттуда я только что объяснил вам первую диаграмму. Я добавил локальный порт с интерфейсом 0.0.0.0, я думаю, что он по умолчанию, localhostкогда вы его опускаете, что вы можете сделать, если хотите. Возможно, будет безопаснее удалить часть 0.0.0.0:, потому что если localhostэто значение по умолчанию, то никто в вашей сети не сможет использовать вашу машину для использования этого туннеля ssh. Иначе для них 192.168.10.10:8000это будет точкой входа в удаленное веб-приложение, если 192.168.10.10это IP машины, на которой вы работаете.

Связанный контент