(Dziwna sytuacja, czy coś takiego jak nierówność trójkąta nie dotyczy routingu przez Internet?)
W każdym razie wypróbuj poniższe, na A , ssh
do B z -D
argumentem,
ssh -D 1080 address-of-B
który działa jako serwer proxy SOCKS5 127.0.0.1:1080
, z którego można korzystać we wszystkich elementach obsługujących połączenia proxy SOCKS5. Najwyraźniej wget
można to zrobić za pomocą zmiennej środowiskowej
export SOCKS_SERVER=127.0.0.1:1080
wget http://server-C/whatever
Zauważ, że czasami curl
jest to bardziej przydatne (tzn. Nie jestem pewien, czy wget
mogę wyszukiwać nazwy hostów za pośrednictwem SOCKS5; ale nie jest to jedna z twoich obaw); także Firefox jest w stanie działać całkowicie za pośrednictwem takiego proxy SOCKS5.
Edit Właśnie teraz zauważyła, że szukasz w jednej linii rozwiązania. A co powiesz na to?
ssh address-of-B 'wget -O - http://server-C/whatever' >> whatever
tj. przekierowanie wget
wyjścia -fetched do stdout
i przekierowanie lokalnego wyjścia (z zdalnego ssh
uruchamiania wget
) do pliku.
Wydaje się, że to działa, wget
wyjście jest trochę mylące („ zapisane w - ”), możesz się go pozbyć, dodając -q
do wget
wywołania.
SOCKS_SERVER
zmienna środowiskowa nie ma wpływu na Ubuntu 14.04.