Вот диаграмма
Сервер A ----> Сервер B <----- Портативный компьютер
Таким образом, в основном сервер A и портативный компьютер могут подключаться к серверу B напрямую, но вы не можете установить соединение с сервера A на ноутбук напрямую, поэтому мы настраиваем обратный туннель ssh от сервера A к серверу B, чтобы ноутбук мог подключаться к серверу A через настройка туннеля сервером A. Итак, сейчас решена проблема ssh к серверу A с ноутбука.
Теперь у меня есть приложение, настроенное на сервере A, которое мне нужно для доступа через порт 443 на ноутбуке, как я могу это сделать?
Немного догадываюсь, что у вас уже есть:
начнем с обратного туннеля:
serverA:~ $ ssh -R 22:localhost:10022 serverB
затем с портативного компьютера подключитесь к serverB и подключите локальную пересылку к порту, который вы определили в обратном направлении:
laptop:~ $ ssh -L 10023:localhost:10022 serverB
если я правильно вас понял, то вы уже сделали что-то подобное. А теперь к последней части:
подключитесь к localhost на порт, который вы использовали в локальном переадресации, это отправляет все пакеты непосредственно на serverA, укажите другой порт переадресации, чтобы ваше приложение могло подключиться к serverA
laptop:~ $ ssh -p 10023 -L 10443:localhost:443 localhost
если ваше приложение должно подключиться к 443 и не может использовать другой порт, например 10443, который я использовал в примере, вам придется выполнить последнее подключение как root:
laptop:~ $ su -
laptop:~ # ssh -p 10023 -L 443:localhost:443 user@localhost
или
laptop:~ $ sudo ssh -p 10023 -L 443:localhost:443 user@localhost
Некоторые пояснения:
Если вы хотите, чтобы перенаправленный порт -R на сервере B был доступен с сервера A, вам необходимо указать адрес привязки на сервере B слева от удаленного порта. Например, если B имеет адрес 1.2.3.4 и вы подключаетесь с ноутбука:
laptop:~ $ ssh -R 1.2.3.4:10443:127.0.0.1:443 server-b
Это перенаправит порт 10443 на server-b на 443 на портативном компьютере. Если вы хотите использовать вместо этого порт 443, войдите на server-b как root.
Если у вас есть SSH-доступ к серверу A, выполните что-то вроде ssh -L 8443: localhost: 443 user @ serverA должно работать. Тогда вы можете использовать https: // локальный: 8443 для подключения.