配置 jupyter notebook 容许远程访问

前面就已经提到过 jupyter notebook 这一强大的工具了,今天再来记录一篇跟它的配置有关的教程吧。python

用过 jupyter notebook 的人应该都清楚,这个强大的工具实际上是一个 web 应用,咱们在本地使用时也是经过浏览器访问 http://localhost:8888 来进行操做的。web

既然是 web 应用,那我能不能把它部署在服务器上来远程访问呢?答案固然是能够的,只须要修改一下配置文件便可!vim

生成配置文件
新安装的 jupyter notebook 是没有附带配置文件的,因此须要先生成:浏览器

jupyter notebook --generate-config
此命令会输出生成的配置文件的位置,需记录下来。安全

生成密码sha1值
开启远程访问的话意味着你的 jupyter notebook 服务会暴露在公网中,因此为了安全咱们须要设置一下页面密码。服务器

在 jupyter 的配置文件中要填写的并非密码的明文,而是想要设置密码的sha1值。在这里咱们使用 ipython 的 passwd 库来生成密码的 sha1 值。ssh

输入 ipython ,进入 ipython 的交互界面,而后依次输入及其输出以下,按输出说明填写密码:ide

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'

把 out[2] 的内容复制下来备用。工具

修改配置文件3d

vim ~/.jupyter/jupyter_notebook_config.py
vim 后面换成你本身的配置文件路径。

将以下几项内容去除注释后修改值以下并保存:

服务ip地址,0.0.0.0表明绑定到本机全部的ip上

c.NotebookApp.ip='0.0.0.0'

密码设置,前面的u是表示对单引号内的内容不转义

c.NotebookApp.password = u'sha:ce...刚才复制的那个out[2]的内容'

启动时是否打开本地浏览器,咱们远程访问的话天然不须要

c.NotebookApp.open_browser = False

工做端口

c.NotebookApp.port =8888 #随便指定一个端口
启动服务
在想要工做的目录下输入 jupyter notebook 便可启动服务,但这样的前台服务在 ssh 断开后也会中断。如果想要保持其运行状态的话,能够用 screen 命令将其挂在后台运行。

新建一个 screen 窗口,若报错则可能需先安装 screen

screen -S jupyter

启动 jupyter notebook 服务

jupyter notebook
以后同时按下键盘上的 ctrl+a+d 键便可将当前 screen 窗口挂到后台,这样即便 ssh 链接断开了也不会致使服务中断。

在服务启动后用浏览器访问 http://你的服务ip地址:你的端口 便可打开 jupyter notebook 的密码页面,输入前面设置的密码后就能够跟本地同样正常使用啦。

相关文章
相关标签/搜索