Назад | Перейти на главную страницу

(туннель ssh?) Доступ к удаленному серверу с частным IP через * ДРУГОЙ * сервер с общедоступным IP

Предположим следующие хосты:

У меня нет sudo доступ к удаленный сервер, поэтому я не могу вносить изменения с пользователем root.

Вопрос в том: Можно ли получить доступ к порту на private.remoteserver из удаленный сервер, в одной команде?

Я немного поигрался с туннелями ssh без везения. Он хотел бы создать псевдоним SSH для private.remoteserver так как описано в этой статье.

Например, я бы хотел запустить с localhost:

curl http://private.remoteserver:8080/

подключиться к порту 8080 на приват. удаленном сервере. Это возможно?

Вы еще не показали нам, что пробовали, но что-то более простое должно сработать:

ssh -L 8080:private.remoteserver:8080 remoteserver

Что тогда позволит вам бежать:

curl http://localhost:8080/

... который из-за переадресации портов, которую мы только что настроили, фактически подключается к порту 8080 на private.remoteserver.

Если вы хотите иметь прямой доступ http://private.remoteserver:8080/ от вашего клиента вам необходимо (а) настроить какой-либо прокси и (б) настроить curl (или другое программное обеспечение) для использования прокси. Вы можете настроить SOCKS5 прокси с ssh используя -D вариант:

ssh -D 1080 remoteserver

И тогда вы сможете:

curl --socks5-hostname http://private.remoteserver:8080/

Большинство веб-браузеров (Firefox, Chrome) также можно настроить для работы с SOCKS5 прокси. Если вы выполните поиск по запросу "ssh dynamic forwarding", вы найдете много хорошей документации, в том числе эта статья из Ubuntu.

На самом деле я решил свою проблему с шаттл:

sshuttle --dns -HN -r user@remoteserver

Никакой другой конфигурации прокси не требуется, тогда я могу получить доступ к любым портам частного IP:

curl http://private:8080/