Вопрос нуба. У меня три удаленных сервера (S1, S2 и S3). Один из них имеет подключение к Интернету (S1), а два других (S2 и S3) могут только получить доступ к S1 - например, у меня есть SSH без пароля, настроенный с S1 на S2 и S3.
Однако это означает, что я не могу выполнять обновления или управлять пакетами на S2 и S3. Есть ли способ сделать HTTP-запрос на S2 и S3, который туннелируется через S1, в основном обеспечивая доступ в Интернет? Применяется ли SSH-туннель? Если да, то есть ли какой-нибудь ресурс, который пошагово подскажет, как это сделать в моем случае?
Спасибо.
Самый простой способ предоставить доступ в Интернет (http / https) к системам, не имеющим прямого доступа в Интернет, - это использовать прокси, например squid . Установите прокси на S1 и настройте S2 и S3 для использования прокси (например, установив переменную среды http_proxy или обновив файл конфигурации вашего приложения)
Прокси-сервер будет перенаправлять трафик в зависимости от запроса клиента
Если вы используете Apache на сервере 1, вы можете создать виртуальный хост для прокси-сервера вашего запроса на сервер 2 и 3
Если вы используете NAT (адрес сетевого преобразования ), вы можете установить пару внешних IP + портов, связанных с внутренним IP + Port
Squid - хорошее решение, как предложил Берт Ниф. Другой вариант, который я порекомендовал бы, - это прокси-сервер SOCKS, который использует туннель SSH, как вы предложили. Он может работать даже с некоторыми менеджерами пакетов: https://askubuntu.com/questions/35223/syntax-for-socks-proxy-in-apt-conf
Ссылка предназначена для ubuntu, но tsocks - нет. Только для Ubuntu.
Вот пример инструкции: https://www.linode.com/docs/networking/ssh/setting-up-an-ssh-tunnel-with-your-linode-for-safe- просмотр
Или просто Google "socks proxy ssh"