2016-08-05 25 views
4

我想在远程计算机上使用Jupyter笔记本。设置如下:我有我的家用笔记本电脑,它可以ssh到我大学网络上的特定计算机(例如,gateway.myuniv.edu)。一旦我登录到gateway.myuniv.edu,我可以拨打我想要运行Jupyter笔记本服务器的计算机(例如cluster.myuniv.edu)。调试端口转发远程使用Jupyter笔记本

什么工作:我可以在网关上运行的服务器,并使用本地端口转发我的笔记本电脑连接到它,如下所示:

gateway.myuniv.edu$ jupyter notebook --no-browser --port 8888

在我的笔记本电脑:$ ssh -v -N -L 9000:localhost:8888 [email protected]

然后在我的笔记本电脑的浏览器,我打开网址:http://localhost:9000

什么不起作用:我不想在网关上运行服务器,因为我不能在那里进行繁重的计算。我试图做到以下几点:

cluster.myuniv.edu$ jupyter notebook --no-browser --port 8888

在我的笔记本电脑:$ ssh -v -N -L 9000:cluster.myuniv.edu:8888 [email protected]

然后在我的笔记本电脑的浏览器,我打开网址:http://localhost:9000。这不起作用:SSH说连接被拒绝。

我不明白为什么会发生这种情况,以及如何调试,很乐意提供任何帮助。谢谢!

回答

2

的问题是,你是在cluster.myuniv.edugateway.myuniv.edu转发端口:8888端口:9000,然后在你的笔记本电脑gateway.myuniv.edu转发端口:8888端口9000

的解决办法如下:

在cluster.myuniv.edu:$ jupyter notebook --no-browser --port 8888

在gateway.myuniv.edu:$ ssh -v -N -L 8888:localhost:8888 [email protected]

在笔记本电脑:$ ssh -v -N -L 9000:localhost:8888 [email protected]

我也会推荐您使用Tmux或Screen运行Jupyter笔记本(在集群上)和ssh隧道(在网关上),因此即使关闭终端

+0

这几乎可以工作:网关上的命令应该ssh到cluster:'$ ssh -v -N -L 8888:localhost:8888 myusername @ cluster.myuniv.edu'。当我这样做时,它会起作用。我编辑了你的回复 - 谢谢! –

+0

谢谢!我很高兴你的工作。你能否将问题标记为已回答? – mrandrewandrade

+0

当然。最后一件事,你能解释为什么'ssh -v -N-L 9000:cluster.myuniv.edu:8888 myusername @ gateway.myuniv.edu'会导致我在'cluster.myuniv.edu上转发端口':8888' '在'gateway.myuniv.edu'上端口':9000',然后在我的笔记本电脑上将'gateway.myuniv.edu'上的端口':8888'转发到端口'9000'?这对我没有意义。 –