Вопрос нуба. У меня три удаленных сервера (S1, S2 и S3). Один из них имеет подключение к Интернету (S1), а два других (S2 и S3) могут только доступ к S1 - например, у меня настроен SSH без пароля с S1 на S2 и S3.
Однако это означает, что я не могу выполнять обновления или управлять пакетами на S2 и S3. Есть ли способ сделать HTTP-запрос на S2 и S3, который туннелируется через S1, в основном обеспечивая доступ в Интернет? Применяется ли SSH-туннель? Если да, то есть ли какой-нибудь ресурс, который пошагово подскажет, как это сделать в моем случае?
Спасибо.
Самый простой способ предоставить доступ в Интернет (http / https) к системам, у которых нет прямого доступа в Интернет, - это использовать прокси, например Кальмар. Установите прокси на 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-browsing
Или просто погуглите 'socks proxy ssh'