我正在尝试在远程计算机上使用Jupyter笔记本。设置如下:我有我的家用笔记本电脑,它可以ssh到我大学网络上的特定计算机(例如,gateway.myuniv.edu
)。一旦我登录gateway.myuniv.edu
,我就可以ssh到我想要运行Jupyter笔记本服务器的计算机上(例如cluster.myuniv.edu
)。
什么有效:我可以在网关上运行服务器,并使用本地端口转发从笔记本电脑连接到服务器,如下所示:
在gateway.myuniv.edu
:$ jupyter notebook --no-browser --port 8888
在我的笔记本电脑上:$ ssh -v -N -L 9000:localhost:8888 myusername@gateway.myuniv.edu
然后在我的笔记本电脑的浏览器上,打开网址:http://localhost:9000
什么不起作用:我不想在网关上运行服务器,因为我不能在那里进行繁重的计算。我试着做以下事情:
在cluster.myuniv.edu
:$ jupyter notebook --no-browser --port 8888
在我的笔记本电脑上:$ ssh -v -N -L 9000:cluster.myuniv.edu:8888 myusername@gateway.myuniv.edu
然后在我的笔记本电脑的浏览器上,打开网址:http://localhost:9000
。这不起作用:SSH表示连接被拒绝。
我不明白为什么会发生这种情况以及如何调试它会很乐意提供任何帮助。谢谢!
答案 0 :(得分:3)
问题是您要将:8888
上的端口cluster.myuniv.edu
转发到:9000
上的端口gateway.myuniv.edu
,然后转发:8888
上的端口gateway.myuniv.edu
在笔记本电脑上移植9000
。
解决方案如下:
在cluster.myuniv.edu上:$ jupyter notebook --no-browser --port 8888
在gateway.myuniv.edu上:$ ssh -v -N -L 8888:localhost:8888 myusername@cluster.myuniv.edu
在笔记本电脑上:$ ssh -v -N -L 9000:localhost:8888 myusername@gateway.myuniv.edu
我还建议你使用Tmux或Screen运行Jupyter笔记本(在集群上)和ssh隧道(在网关上),这样即使你关闭终端它也会保持活动状态