У меня есть машина А без доступа в Интернет. У меня есть машина B с доступом в Интернет.
A и B могут подключаться друг к другу через ssh.
Я хотел бы установить некоторые программы на A (perl, пакет R и т. Д.) Из интернет-репозитория, используя подключение к Интернету B.
Возможно ли это и как я могу это сделать?
Спасибо.
Возможно использование SSH-туннелирования:
На вашем домашнем сервере:
ssh -R 9999:<proxy host>:<proxy port> user@remotehost
Это откроет порт 9999 на вашем удаленном сервере и создаст туннель для вашего прокси.
На удаленном сервере нужно отредактировать yum.conf
и добавьте следующее:
proxy=http://127.0.0.1:9999
Это подключится к прокси с помощью туннеля, который мы настроили ранее.
Если у вас нет прокси-сервера, вы можете использовать динамическое туннелирование. Он работает только в том случае, если в вашей сети нет прокси-сервера или если в нем используется прозрачный прокси.
На удаленном сервере:
ssh -D 9999 user@ip-of-local-server
Это подключится к вашему локальному серверу, откроет порт 9999 и создаст динамический туннель. В yum.conf
переделки будут такие же.
Если A
& B
оба используют OpenSSH, затем в одном окне на хосте A
делать:
ssh -D 1080 user@B
для запуска прокси-сервера SOCKS, который слушает A:1080
и отправляет соединения на запрошенный адрес через B
.
Пока это соединение установлено, вы можете запускать другие программы, поддерживающие прокси SOCKSv4 или SOCKSv5 (это отличается от прокси HTTP) на A
:
curl -x socks5h://localhost:1080 http://www.google.com/
Ты можешь пытаться установка http_proxy
переменная среды для socks5h://localhost:1080
но большинство программ, вероятно, будут ожидать, что это настоящий http-прокси, и не смогут с ним связываться.
Другой вариант (возможно, более простой) - просто загрузить все на хост B
, затем используйте scp
или sftp
передать файлы на A
.
Если система A не может получить официальные репозитории, вы можете настроить локальное зеркало в системе B и использовать его в качестве репозитория для установки / обновления для всех пакетов.
Подробное описание CentOS можно найти в CentOS вики