我在遠程服務器上運行dispynode。我試圖從我的電腦(客戶端)打開SSH隧道並配置dispyJobCluster以使用此隧道。但它不起作用。我沒有配置這個權利?以下是我正在做的:使用通過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,並使用本地主機,導致其傳送雖然隧道回到客戶端
與此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隧道,但我不確定服務器端發生了什麼。似乎dispynode什麼都沒收到。 與服務器上的TCPdump進行快速流量捕獲,以確認它。對於一些未知的原因,端口更改爲64027.
我也曾嘗試同時打開2個SSH隧道:
一個用於客戶機到服務器的通信
砰砰 - v -ssh -L 61:localhost:21 [email protected]
一個用於服務器到客戶端的通信
PLINK -v -ssh -R 20:本地主機:60 [email protected]
但沒有運氣。我甚至不能肯定它是否是最好用遠程轉發或本地轉發
我試過這個解決方案的dispy開發者自己建議,但並沒有爲我工作:
http://sourceforge.net/p/dispy/discussion/1771151/thread/bcad6eaa/
我上面使用的配置是否錯誤?我應該使用遠程還是本地轉發?爲什麼端口會自動更改,是否可能是因爲我公司的防火牆通過我嘗試使用的端口阻止連接?有沒有人設法通過SSH隧道運行dispy?