У меня есть доступ к серверу через ssh для проведения некоторых экспериментов, и мне нужно загрузить некоторые пакеты через Интернет для их выполнения. К сожалению, сервер не подключен к Интернету или блокирует исходящее соединение, я не уверен. Но, как упоминалось ранее, я могу подключиться к машине через ssh или передать файлы через scp с моей локальной машины.

Есть ли способ передать интернет-соединение с сервером через локальный компьютер, чтобы я мог загрузить необходимые пакеты? Я изучал SSH-туннелирование, но из-за неопытности мне это не удалось.

Изменить: Серверная система Ubuntu 14.04.4 LTS, моя локальная машина Mac OS X, но у меня есть виртуальная машина Ubuntu.

1 ответ1

2

Вы можете. Раньше я был в подобной ситуации, и я использовал ssh-соединение от сервера к клиенту для настройки прокси-сервера SOCKS. Вы можете установить его прямо с помощью флага -D номера порта (например, 10001) при создании SSH-соединения от сервера к клиенту.

(на сервере установите SSH-соединение с клиентом и оставьте его открытым :)

клиент ssh -D 10001

Впоследствии вы можете использовать цепочки прокси в другом терминале, чтобы позволить программам устанавливать TCP-соединение с внешним миром через вновь созданный прокси SOCKS. Конфигурация прокси-цепочек очень проста, просто добавьте одну строку в ваш файл proxychains.conf:

socks5 127.0.0.1 10001

уведомить прокси-цепи, как прокси-сервер может быть достигнут. После этого вы можете использовать прокси-цепочки следующим образом, например, чтобы указать wget использовать прокси:

proxychains wget address

Как только вы закроете первое соединение, прокси перестает существовать.

Вы не упомянули, можете ли вы подключиться с сервера напрямую к клиенту (возможно, из-за настроек брандмауэра вы не можете?). Если это так, вы все равно можете использовать этот метод, хотя сначала вы можете создать обратный туннель:

(на клиенте установите SSH-соединение с сервером и создайте обратный туннель :)

ssh -R 9999: локальный сервер : 22 сервер

Это устанавливает соединение с сервером и создает порт (в этом примере 9999), который подключается обратно к клиенту через порт 22 (по умолчанию порт SSH). На сервере вы можете установить соединение с клиентом, подключающимся через этот туннель:

ssh -p 9999 -D 10001 localhost

Если вы вообще не хотите настраивать прокси-сервер SOCKS, то вам, вероятно, лучше установить SSH-соединение от сервера к клиенту и создать локальный туннель (с -L) к месту назначения, если вы хотите только достичь определенного сервера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .