2016-10-20 11 views
1

Я недавно занимался параллельным и параллельным вычислением GNU. У меня есть две машины, одна из которых я работаю, а другая - за прокси-машиной, поэтому я работаю в A, я могу получить доступ к C только через B, и я не могу вычислить на B.GNU parallel - работает с прокси-сервером

Мой вопрос: как мне создать файл hosts для GNU параллельно понимать, что я хочу обмениваться файлами с машиной C? Я включил логин без пароля для B и C от B.

Спасибо!

ответ

0

От: https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Using-remote-computers-behind-NAT-wall

Пример: Использование удаленных компьютеров за стеной NAT

Если рабочие находятся за NAT стене, вам потребуются некоторые хитрости, чтобы добраться до них.

Если вы можете SSH к хосту прыжка, и достигают рабочих оттуда, то очевидное решение будет, но это не работает:

parallel --ssh 'ssh jumphost ssh' -S host1 echo ::: DOES NOT WORK 

Это не работает, потому что команда dequoted по ssh дважды, где, когда GNU-параллель только ожидает, что она будет декомпозироваться один раз.

Так вместо того, чтобы поставить это в ~/.ssh/конфигурации:

Host host1 host2 host3 
    ProxyCommand ssh jumphost.domain nc -w 1 %h 22 

Это требует н.д. (Netcat) для установки на jumphost. При этом вы можете просто:

parallel -S host1,host2,host3 echo ::: This does work 

Нет jumphost, но порт вперед

Если нет jumphost но каждый сервер имеет порт 22 пересылаются от брандмауэра (например, брандмауэра порта 22001 = порт 22 на host1, 22002 = host2, 22003 = host3), то вы можете использовать ~/.ssh/конфигурацию:

Host host1.v 
    Port 22001 
Host host2.v 
    Port 22002 
Host host3.v 
    Port 22003 
Host *.v 
    Hostname firewall 

И затем использовать множество {1..3} .в как нормальные хосты:

parallel -S host1.v,host2.v,host3.v echo ::: a b c 

Нет jumphost, ни один порт не пересылает

Если порты не могут быть переадресованы, вам нужно какое-то VPN для обхода NAT-стены. TOR - один из вариантов для этого, так как очень легко работать.

Вам необходимо установить TOR и установить скрытый сервис. В torrc сайте:

HiddenServiceDir /var/lib/tor/hidden_service/ 
HiddenServicePort 22 127.0.0.1:22 

Затем начать TOR: /etc/init.d/tor перезапустить

Имя хоста TOR теперь в/вар/Lib/TOR/hidden_service/имя хоста и что-то похожее на izjafdceobowklhz .лук.Теперь вы просто предварять torsocks к SSH:

parallel --ssh 'torsocks ssh' -S izjafdceobowklhz.onion \ 
    -S zfcdaeiojoklbwhz.onion,auclucjzobowklhi.onion echo ::: a b c 

Если не все хосты доступны через TOR:

parallel -S 'torsocks ssh izjafdceobowklhz.onion,host2,host3' echo ::: a b c 
+0

Awesome, спасибо! –

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

  • Нет связанных вопросов^_^