Если Вы хотите пойти без мыши, необходимо попробовать обработку почвы wm. Лично, мой фаворит является Удивительным, но в том Вопросе существуют много.
Что касается составного менеджера, был уже упомянут xcompmgr, но Каирский менеджер по составному объекту (CCM) кажется хорошим также, хотя я нахожу это менее стабильным все еще. Как всегда, YMMV.
(Странная ситуация, разве чему-то не нравится треугольное неравенство, содержат для интернет-маршрутизации?)
Так или иначе попробуйте следующее на A, ssh
в B с a -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.
Редактирование я сейчас заметил, что Вы ищете короткое решение. Ну, как насчет
ssh address-of-B 'wget -O - http://server-C/whatever' >> whatever
т.е. перенаправление wget
- выбранный вывод к stdout
, и перенаправление локального вывода (от ssh
выполнение wget
удаленно) в файл.
Это, кажется, работает, wget
вывод просто немного путает ("сохраненный к -"), можно избавиться от него путем добавления -q
к wget
звонить.
Другой подход мог состоять в том, что Вы обычно входите в систему в B
, где Вы запускаете a screen
сессия. Там Вы делаете wget
из Ваших файлов - все в один каталог.
И там программа может счастливо работать; Вы просто отсоединяетесь с экрана, но позволяете ему работать в фоновом режиме.
Если загрузки закончены (возможно, еще ранее), можно выбрать данные из B
кому: A
использование rsync
(мое предпочтение).
Необходимо было бы создать туннель на машине B tha, перенаправит вызов к веб-сайту C. Но я озадачен как, почему это было бы быстрее, если Ваш ISP как некоторые ограничения.
Я не знаю остроту, но это не намного более сложно.
На машине A, Вы делаете (я взял 11111 случайным образом, можно взять то, что Вы хотите, пока это> 1024, или необходимо было бы быть корнем),
ssh -f -C -N -L 11111:C:80 username@B
Имя пользователя на B является тем, которое Вы используете для соединения с B. Это должно создать туннель на порте 11111 на машине B, что перенаправление для портирования 80 (веб-сайт в HTTP используют 443 для HTTPS) на машине C (я надеюсь, что не смешал порядок ;))
Затем можно загрузить файл непосредственно с машины через машину B. Я предполагаю, что файл в http://C/path/to/file
таким образом, Вы затем использовали бы:
wget http://B:11111/path/to/file
Можно сделать это через перенаправление портов (ssh туннелирующий). Вот ресурс: http://www.jfranken.de/homepages/johannes/vortraege/ssh2_inhalt.en.html#ToC9
По существу необходимо настроить перенаправление портов на B. Когда проблемы wget к B, B передадут пакеты к C и передадут результаты обратно A.
Чтобы использовать wget
с прокси-сервером SOCKS5 из ssh
, у вас есть установить пакет security / dante
, чтобы использовать параметр SOCKS_SERVER
с утилитой socksify
.
sudo pkg_add dante
Затем вы открываете SSH-соединение в фоновом режиме:
ssh -N -C -D1080 user@hostB &
И используете wget через прокси-сервер SOCKS5 через socksify:
env SOCKS_SERVER=127.0.0.1:1080 socksify wget http://website-C
Просто перенаправьте файл на stdout
на сервер и прочтите его из stdin
на своей рабочей станции.
ssh -C user@hostB "wget -O- http://website-C" >> file-from-website-C
Вдохновленный другим ответом на другой вопрос, я предлагаю использовать proxychains-ng (это более новая версия proxychains).
proxychains.conf
в текущем каталоге, или в ~/.proxychains/proxychains.conf
, или в /etc/proxychains.conf
.
-f
, или через переменную окружения PROXYCHAINS_CONF_FILE
. В ваш файл proxychains.conf
добавьте:
[ProxyList]
socks5 127.0.0.1 1234
Запустите ssh -D 1234 your_host_b
. Это заставит ssh прослушивать порт 1234 на localhost и использовать ваш удаленный хост в качестве SOCKS-прокси.
ssh -ND 1234 your_host_b
. -N
не позволит ssh выполнить любую команду на удаленном сервере (т.е. не откроет shell). proxychains4 yourcommandhere yourparametershere
. Посмотрите примеры:
proxychains4 wget -O - http://ifconfig.co/
proxychains4 -q links http://ifconfig.co/
SOCKS_SERVER
переменная среды не имеет никакого эффекта на Ubuntu 14.04. – kasperd 04.06.2015, 18:13wget
не имеет никакой поддержкиSOCKS_SERVER
переменная. Тот ответ предлагает использоватьcurl --socks5-hostname
илиcurl --socks5
. – Denilson Sá Maia 18.06.2015, 16:30socksify
вместо этого. – cnst 05.09.2015, 07:23socksify
не установка, это - отдельная программа. – kasperd 05.09.2015, 09:25SOCKS_SERVER
иметь любой эффект наwget
, затем необходимо установить ports.su/security/dante и затем работатьsocksify wget
вместо простоwget
– cnst 05.09.2015, 10:38