配置 Jupyter Notebook 允许远程访问
前面就已经提到过 Jupyter Notebook 这一强大的工具了,今天再来记录一篇跟它的配置有关的教程吧。
用过 Jupyter Notebook 的人应该都清楚,这个强大的工具其实是一个 web 应用,我们在本地使用时也是通过浏览器访问 http://localhost:8888
来进行操作的。
既然是 web 应用,那我能不能把它部署在服务器上来远程访问呢?答案当然是可以的,只需要修改一下配置文件即可!
生成配置文件
新安装的 Jupyter Notebook 是没有附带配置文件的,所以需要先生成:
1 | jupyter notebook --generate-config |
此命令会输出生成的配置文件的位置,需记录下来。
生成密码sha1值
开启远程访问的话意味着你的 Jupyter Notebook 服务会暴露在公网中,所以为了安全我们需要设置一下页面密码。
在 Jupyter 的配置文件中要填写的并不是密码的明文,而是想要设置密码的sha1值。在这里我们使用 ipython 的 passwd 库来生成密码的 sha1 值。
输入 ipython
,进入 ipython 的交互界面,然后依次输入及其输出如下,按输出说明填写密码:
1 | In [1]: from notebook.auth import passwd |
把 out[2] 的内容复制下来备用。
修改配置文件
1 | vim ~/.jupyter/jupyter_notebook_config.py |
vim 后面换成你自己的配置文件路径。
将如下几项内容去除注释后修改值如下并保存:
1 | # 服务ip地址,0.0.0.0代表绑定到本机所有的ip上 |
启动服务
在想要工作的目录下输入 jupyter notebook
即可启动服务,但这样的前台服务在 ssh 断开后也会中断。若是想要保持其运行状态的话,可以用 screen
命令将其挂在后台运行。
1 | # 新建一个 screen 窗口,若报错则可能需先安装 screen |
之后同时按下键盘上的 ctrl
+a
+d
键即可将当前 screen 窗口挂到后台,这样即使 ssh 连接断开了也不会导致服务中断。
在服务启动后用浏览器访问 http://你的服务ip地址:你的端口
即可打开 Jupyter Notebook 的密码页面,输入前面设置的密码后就可以跟本地一样正常使用啦。