前言
使用GPU服务器的时候往往是多人用一台服务器,而每个人的权限不一定都拥有root权限,因此防火墙的问题就不好解决。如果想要通过本地使用服务器的jupyter notebook就会有些困难,本文整理网上教程同时博主自己也实践了一下。
一、Jupyter notebook安装
如果服务器装了Anaconda,就不需要再另外安装了。如果没有安装Anaconda,建议安装Anaconda。
二、生成Jupyter notebook配置文件
直接在服务器命令行输入,即会自动生成配置文件 jupyter_notebook_config.py:
代码语言:javascript复制jupyter notebook --generate-config
三、生成密码并配置
1.生成密码
在服务器命令行输入python,之后输入以下代码:
代码语言:javascript复制from notebook.auth import passwd
passwd()
这时候会让你输入密码,这个就是访问服务器jupyter notebook 的密码,密码随意,别忘就行。出现下图所示的哈希密码(图中红框)即代表完成:
2.添加到配置文件
打开第一步生成的配置文件并找到下图的这一行,我这里是278行:
接着把上面的哈希密码放入,保存退出。
3.强行重置密码
这一步很关键!!很多教程里面没有说,导致最后登录一直显示密码错误,在服务器命令行中输入:
代码语言:javascript复制 jupyter notebook password
接着再次输入之前的密码即可。
四、建立本地SSH通道
jupyter notebook默认端口是8888,如果服务器防火墙没有开放8888端口,那么将无法访问,因此需要建立本地SSH通道来访问服务器。
在本地终端输入:
代码语言:javascript复制ssh -p port username@address_of_remote -L 127.0.0.1:1111:127.0.0.1:8888
这里port是你登录服务器时候用的端口,我这里是22122,那么就把port换成22122。username是登录服务器的用户名。address_of_remote是服务器的ip地址。后面1111端口是自定义的本地端口,可以换别的也行。最后8888是服务器默认的jupyter notebook端口。
最后在服务器命令行运行(命令行不能断,或者用nohup解决):
代码语言:javascript复制jupyter notebook
然后在本地浏览器输入地址:localhost:1111 即可访问服务器jupyter notebook啦!
总结
总的来说配置还是很快的。其中有两个坑,一个是需要强制重置密码,另外一个是需要建立ssh通道。
最后附上网上看到的关于ssh通道的相关知识:SSH通道
附:安装Jupyter NbExtensions Configurator
用conda安装:
代码语言:javascript复制conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
jupyter contrib nbextension install --user --skip-running-check
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!