У меня есть диспетчер, работающий на удаленном сервере. Я пытаюсь открыть туннель SSH с моего компьютера (клиента) и настроить dispyJobCluster для использования этого туннеля. Но это не работает. Я не настраиваю это право? Вот как я это делаю:Использование dispy с переадресацией портов через туннель ssh
(ps. У меня нет глубоких знаний в распределенных & параллельных вычислениях или в сети, я инженер-строитель, поэтому, пожалуйста, извините меня, если я не буду использовать права технические слова иногда)
SSH туннель:
plink -v -ssh -L 61:localhost:21 [email protected]
Это будет пересылать подключения к порту 61 для локального хоста 21 на сервере, где dispynode управления
dispynode:
sudo dispynode.py -d --ext_ip_addr localhost -p 21 -i localhost
прослушивает порт 21 и передавать с использованием Localhost, который ведет его, хотя туннель обратно клиенту
с этим dispyClient JobCluster код:
cluster = dispy.JobCluster(runCasterDispyWorker,
nodes=[('localhost',61)], \
ip_addr='localhost', \
ext_ip_addr='localhost', \
port = 61, \
node_port = 21, \
recover_file='recover.rec', \
)
Когда я запускаю dispy.py я получаю следующее сообщение об ошибке в командной строке, с которой я открыл SSH туннеля:
подключение к локальной машине открытия: 21 для пересылки из 127.0.0.1:64027
Пересылаемого порта закрыт
В по крайней мере, я предполагаю, что это означает, что dipsy пытается получить доступ к открытому туннелю SSH, но я не уверен, что происходит на стороне сервера. Кажется, что диспетчер ничего не получает. Запуск быстрого захвата трафика с помощью TCPdump на сервере подтверждает его. По какой-то неизвестной причине, порт переходит в 64027.
Я также попытался открыть 2 SSH туннелей одновременно:
Один для клиент-сервер коммуникаций
Plink - v -ssh -L 61: localhost: 21 [email protected]
Один для связи между сервером
палить -v -ssh -R 20: локальный: 60 [email protected]
, но не повезло.Я даже не уверен, является ли это лучше использовать удаленную переадресацию или локальную пересылку
Я попытался это решение, которое разработчик dispy сам предложил, но он не работает для меня:
http://sourceforge.net/p/dispy/discussion/1771151/thread/bcad6eaa/
Является ли конфигурация, которую я использовал выше, неправильно? Должен ли я использовать удаленную или локальную пересылку? Почему порт изменяется автоматически, может быть, из-за того, что брандмауэр моей компании блокирует соединение через порты, которые я пытаюсь использовать? Кто-нибудь сумел запустить диспетчер через туннель SSH раньше?