2015-04-16 3 views
0

У меня есть 2 сервера (A, B) и внешний сервер (C). Сервер C принимает запросы только от сервера B (авторизация IP). Мне нужно как можно быстрее загрузить файл с сервера C на сервер A. Конечно, я могу загрузить файл на сервер B, а затем на сервер A, но файл довольно большой, и время имеет решающее значение. Есть ли способ напрямую загрузить файл с сервера C в A, используя B как «прокси» какого-то рода?Загрузка файла непосредственно через сервер

+0

Вы хотите сделать это программно или вручную через CLI? Если программно, на каком языке? –

+0

Вы можете посмотреть rsync - он поддерживает аутентификацию без пароля (проверка подлинности на основе ключей) –

ответ

0

Вы можете установить что-то вроде tinyproxy на сервере B, если вы делаете передачу файлов по протоколу HTTP или HTTPS. Что-то вроде этого, вероятно, будет самым быстрым способом.

Другим подходом, который вы могли бы предпринять, было бы использовать SSH port forwarding для создания временного «немого» прокси-сервера, который обладает дополнительной гибкостью, поддерживая практически любой порт/протокол, который может вам понадобиться. Предположим, вы хотели использовать scp для копирования файла. Вы могли бы сделать что-то вроде этого:

  1. На сервере А, выполните команду SSH вдоль этих линий:

    $ SSH -L 2222: hostC.example.com: 22 hostB.example.com

  2. в отдельной сессии на сервере А, выполните следующие действия:

    $ УПП -P 2222 локальный:/путь/к/Файл/на/hostC/путь/к/целевой

Шаг # 1 создает туннель из порта 2222 на сервере А на сервере B таким образом, что когда-то подключается через него, то сервер B устанавливает соединение на порт 22 (порт SSH/SCP) на сервере C.

Шаг №2 использует этот туннель, подключившись к порту 2222 на локальном хосте для запроса нужного файла.

Если вы рассматриваете этот подход, вы можете взглянуть на настройку авторизованного ключа SSH между сервером A & B, чтобы вам не нужно было запрашивать пароль, а также параметры, такие как -f и/или -n (в зависимости от используемой версии SSH), чтобы перенести первое соединение на задний план.

Смежные вопросы