远程使用Jupyter笔记本的调试端口转发

时间:2016-08-05 12:32:26

标签: ssh jupyter jupyter-notebook portforwarding ssh-tunnel

我正在尝试在远程计算机上使用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表示连接被拒绝。

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

1 个答案:

答案 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隧道(在网关上),这样即使你关闭终端它也会保持活动状态