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

R S*_*R S 5 ssh portforwarding ssh-tunnel jupyter jupyter-notebook

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

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

mra*_*ade 5

问题是您将端口转发:8888cluster.myuniv.edu端口:9000gateway.myuniv.edu然后将端口转发:8888gateway.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 隧道(在网关上),这样即使您关闭终端,它仍然保持活动状态