Linux下远程访问Jupyter Notebook 配置
Jupyter Notebook是一个基于浏览器的Python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。jupyter是它的升级版,它的安装也非常方便,一般Anaconda安装包中会自带。安装好以后直接输入jupyter notebook便可以在浏览器中使用。但是它默认只能在本地访问,如果想把它安装在服务器上,然后在本地远程访问,则需要进行如下配置:
1. 登陆远程服务器
2. 生成配置文件
$jupyter notebook --generate-config
3. 生成密码
打开ipython,创建一个密文的密码:
In [1]: from notebook.auth import passwd
In [2]: passwd()Enter password:
Verify password:
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'
这里如果无法打开ipython,可以直接用命令行
root@docker_admin:~# python -c "import IPython;print IPython.lib.passwd()"
root@docker_admin:~# Enter password:
root@docker_admin:~# Verify password:
root@docker_admin:~# sha1:b86e933199ad:a02e9592e59723da722.. #这是我的密码的hash值,后段被删除,你的密码得到的结果应该不同
把生成的密文‘sha:ce…’复制下来
4. 修改默认配置文件
$vim ~/.jupyter/jupyter_notebook_config.py # 注意目录根据自己实际确定
进行如下修改:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #随便指定一个端口
5. 启动jupyter notebook:
$jupyter notebook
6. 远程访问
此时应该可以直接从本地浏览器直接访问http://address_of_remote:8888就可以看到jupyter的登陆界面。
7. 建立ssh通道
如果登陆失败,则有可能是服务器防火墙设置的问题,此时最简单的方法是在本地建立一个ssh通道:
在本地终端中输入ssh username@address_of_remote -L127.0.0.1:1234:127.0.0.1:8888
便可以在localhost:1234直接访问远程的jupyter了。