实验室刚好有一台GPU服务器,假期想远程使用,就想能否试一下像Google的CoLab那样通过jupyter notebook进行访问,试了一下确实可以,这里记录一下过程。服务器和本地系统都是Ubuntu16.04
一、Jupyter Notebook的配置
Jupyter Notebook的安装有很多教程,这里只记录安装完之后如何进行配置使得通过客户端浏览器可以访问。
-
为Jupyter Notebook创建一个workspace,这样用户通过浏览器创建的.ipynb和文件夹将会保存在该目录下:在服务器主目录下建立一个jupyter文件夹作为程序目录,同时新建一个root目录作为程序存放的根目录。
mkdir ~/jupyter mkdir ~/jupyter/root
-
准备密码密文,通过浏览器访问的时候需要输入该密码进行验证
python -c "import IPython;print(IPython.lib.passwd())"
执行后需要输入并确认密码,然后程序会返回一个 ‘sha1:…’ 的密文,复制保存下来,一会儿进行Jupyter Notebook配置时要用到!
- Jupyter Notebook 配置
-
使用 –generate-config 来参数生成默认配置文件,保存在~/.jupyter/目录下
jupyter notebook --generate-config --allow-root
-
修改配置文件,先使用vim命令打开配置文件
vim ~/.jupyter/jupyter_notebook_config.py
在配置文件底部加入如下命令:
c.NotebookApp.ip = '*' # 允许所有IP地址访问 c.NotebookApp.allow_root = True c.NotebookApp.open_browser = False c.NotebookApp.port = 8118 # 端口,可以根据需要修改但要和后面的对应上! c.NotebookApp.password = u'sha1:刚刚生成的sha1密码' c.ContentsManager.root_dir = '~/jupyter/root' # 之前已经创建好的目录,注意~可能不好用,就用以/开头的全限路径 c.NotebookApp.allow_remote_access = True # 设置允许远程访问,不然浏览器虽然能打开,但会禁止创建文件
-
启动Jupyter Notebook,使用后台启动的方式,这样Jupyter Notebook就会一直在后台运行,可以随时通过浏览器访问
nohup jupyter notebook > ~/jupyter/jupyter.log 2>&1 &
-
配置本地浏览器访问
ssh -N -f -L localhost:8000:localhost:8118 -p 2222 username@server_ip
输入这条命令后,再键入服务器的密码,打开本地浏览器localhost:8000,再输入第2步的密码明文即可访问
6. 服务器很可能有权限配置,所以可能有的需要配置权限,不然无法进行访问,命令执行如下:
sudo chmod +777 ~/.local/share/jupyter
sudo chmod +777 ~/.local/share/jupyter/runtime