1

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

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

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

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

1 ответ1

1

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

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

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

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

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

Если вы используете нестандартный порт для ssh на удаленном сервере, используйте параметр -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-адрес компьютера, на котором вы работаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .