2016-10-20 9 views
1

私は最近、GNU並列および並列計算を扱っています。私は2台のマシンを利用できます.1台はプロキシマシンの後ろに、もう1台はプロキシマシンの後ろにあるので、私はAで働くので、B経由でCにアクセスでき、Bで計算することはできません。GNUパラレル - プロキシーホストで実行する

私の質問は、 GNU並列用のhostsファイルは、マシンCとファイルを共有したいのですか?私はBからBとCの両方にパスワードなしのログインを有効にしました。

ありがとう!

答えて

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 

コマンドは引用符が削除されているため、それは動作しません。 sshを2回使用すると、GNU並列では一度だけ省略されると予想されます。

ので、代わりの〜/ .ssh/configの中でこれを置く:

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

それはjumphostにインストールされるように、NC(netcatを)が必要です。これを使えば、簡単に行えます。

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

んjumphostが、ポート転送

そこにはjumphostはありませんが、各サーバは、上のファイアウォールから転送ポート22(例えば、ファイアウォールのポート22001 =ポート22を持っている場合HOST1、22002 = host2の、22003 = host3という)あなたはの〜/ .ssh/configに使用することができます。

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

を、その後、通常のホストとしてホスト{1..3} .Vを使用します。

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

ノーjumphost、ノーポート転送

ポートを転送することができない場合は、NAT-壁を横断するVPNのいくつかの並べ替えを必要とします。 TORはそのための1つのオプションです。作業が非常に簡単です。

TORをインストールし、隠しサービスを設定する必要があります。 torrcプットで:

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

そして、TORを起動します。/etc/init.d/tor TORのホスト名は、は/ var/libに/ TOR/hidden_​​service /ホスト名になりましたし、izjafdceobowklhzのようなものである

を再起動します。玉ねぎ。今、あなたは単にSSHにtorsocksを付加:

ないすべてのホストがTORを介してアクセスしている場合
parallel --ssh 'torsocks ssh' -S izjafdceobowklhz.onion \ 
    -S zfcdaeiojoklbwhz.onion,auclucjzobowklhi.onion echo ::: a b c 

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

素晴らしい、ありがとう! –

関連する問題