Von: https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Using-remote-computers-behind-NAT-wall
BEISPIEL: Verwenden von Remote-Computern hinter NAT Wand
Wenn die Arbeiter hinter einer NAT-Wand sind, müssen Sie einige Tricks, um sie zu bekommen.
Wenn Sie auf einen Sprung Host ssh kann, und die Arbeiter von dort erreichen, dann ist die offensichtliche Lösung wäre dies, aber es funktioniert nicht:
parallel --ssh 'ssh jumphost ssh' -S host1 echo ::: DOES NOT WORK
Es funktioniert nicht, weil der Befehl dequoted wird bei ssh zweimal, wobei als GNU-Parallele nur erwartet wird, dass es einmal entquotet wird.
So setzen diese stattdessen in ~/.ssh/config:
Host host1 host2 host3
ProxyCommand ssh jumphost.domain nc -w 1 %h 22
Es erfordert nc (netcat) auf jumphost installiert werden. Damit können Sie einfach:
parallel -S host1,host2,host3 echo ::: This does work
Kein jumphost, aber Port nach vorne
Wenn es keine jumphost aber jeder Server verfügt über 22-Port von der Firewall weitergeleitet (zB den Port 22001 Firewall-Port = 22 auf host1, 22002 = host2, 22003 = host3), dann können Sie ~/.ssh/config:
Host host1.v
Port 22001
Host host2.v
Port 22002
Host host3.v
Port 22003
Host *.v
Hostname firewall
Und dann Host verwenden {1..3} .v als normale Rechner:
parallel -S host1.v,host2.v,host3.v echo ::: a b c
Kein jumphost, kein Port leitet
Wenn Ports nicht weitergeleitet werden können, Sie irgendeine Art von VPN müssen die NAT-Wand zu durchqueren. TOR ist eine Option dafür, da es sehr einfach ist, zu arbeiten.
Sie müssen TOR installieren und einen versteckten Dienst einrichten. In torrc Put:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 22 127.0.0.1:22
Dann TOR starten: /etc/init.d/tor Neustart
Der TOR-Hostname ist jetzt in/var/lib/tor/hidden_service/Host-Namen und ist so etwas wie izjafdceobowklhz .Zwiebel.Jetzt prepend Sie einfach torsocks zu ssh:
parallel --ssh 'torsocks ssh' -S izjafdceobowklhz.onion \
-S zfcdaeiojoklbwhz.onion,auclucjzobowklhi.onion echo ::: a b c
Wenn nicht alle Hosts zugänglich sind durch TOR:
parallel -S 'torsocks ssh izjafdceobowklhz.onion,host2,host3' echo ::: a b c
Awesome, thanks! –