(Странная ситуация, разве не верно неравенство треугольника для интернет-маршрутизации?)
В любом случае, попробуйте следующее на A , ssh
в B с -D
аргументом,
ssh -D 1080 address-of-B
который действует как прокси-сервер SOCKS5 127.0.0.1:1080
, который может использоваться всем, что поддерживает прокси-соединения SOCKS5. Видимо, wget
можно сделать это , используя переменную окружения
export SOCKS_SERVER=127.0.0.1:1080
wget http://server-C/whatever
Обратите внимание, что иногда curl
это более удобно (т.е. я не уверен, что wget
смогу выполнить поиск имени хоста через SOCKS5; но я полагаю, что это не одна из ваших проблем); также Firefox может работать полностью через такой прокси-сервер SOCKS5.
Edit Я только сейчас заметил, что вы ищете однострочное решение. Ну как насчет
ssh address-of-B 'wget -O - http://server-C/whatever' >> whatever
т.е. перенаправление wget
вывода -fetched в stdout
, и перенаправление локального вывода (из удаленного ssh
запуска wget
) в файл.
Кажется, это работает, wget
вывод немного сбивает с толку (« сохраняется в - »), вы можете избавиться от него, добавив -q
к wget
вызову.
SOCKS_SERVER
переменная окружения не влияет на Ubuntu 14.04.