最近在工作中需要用到远程的服务器来做多GPU并行的学习与测试,想采用jupyter来编辑文档和代码。由VScode的远程开发功能,我突然想jupyter是不是也支持这个功能。搜了一下,果然是有的。折腾了一番,把过程记录下来,希望帮到大家(参考网页:https://hsaghir.github.io/data_science/jupyter-notebook-on-a-remote-machine-linux/):
1. 给远程服务器配置ssh免密访问
由于这是常规操作,我不重复啰嗦了,给一个参考链接:https://blog.csdn.net/cynthrial/article/details/82319498。
假定我们给远程服务器的别名为 GPU_remote,下面会引用这个名称。
2. 在远程主机上运行(前提是在远程服务器上安装好jupyter哈):
jupyter notebook --no-browser --port=8889
这行命令的意思是,在远程主机端口8889上打开jupyter notebook服务,而不打开浏览器,因为我们需要在本地的机器上连接到远程服务器。
3. 在本地机器上运行下面的命令做端口转发(前提是装好ssh哈):
ssh -N -L localhost:8888:localhost:8889 GPU_remote
这行命令的意思是,将远程服务器的8889端口转发到本地机器8888端口,也就将远程服务器的jupyter服务映射到了本地机器上了。
4. 然后打开本地浏览器,在网址栏输入:
localhost:8888
浏览器跳出这个界面:

这里需要验证,我们可以回到远程服务器上,运行命令:
jupyter notebook list
在输出中,找到token字段,将后面的一串字符复制粘贴到上述页面上,然后login,就可以直接打开远程jupyter了。