Jupyter Notebook配置远程访问–linux

linux服务器如何jupyter notebook远程访问呢?

如果服务器上没有安装好ipython, jupyter notebook。先安装:

pip install ipython
pip install jupyter

如果服务器上已安装好,接下来:

生成配置文件

jupyter notebook --generate-config

生成密码

打开ipython或者打开python命令行, 创建一个密文密码

from notebook.auth import passwd
passwd()
Enter password: 
Verify password: 
'sha1:5df252f58b7f:bf65d53125bb36c085162b3780377f66d73972d1'

上面创建的是 123456 的 sha1加密。密码就是123456

把生成的密文‘sha1:5d’复制下来

修改默认配置文件

vim ~/.jupyter/jupyter_notebook_config.py

用vim编辑刚刚生成的配置文件。需要注意一下文件路径可能会不同。
(如果系统没有安装vim,请另行安装.CentOS → yum install vim)

进行如下修改:

c.NotebookApp.ip='*' #设置访问notebook的ip,*表示所有IP,这里设置ip为都可访问
c.NotebookApp.password = u'sha1:5df252f58b7f:bf65d53125bb36c085162b3780377f66d73972d1' #填写刚刚生成的密文
c.NotebookApp.open_browser = False # 禁止notebook启动时自动打开浏览器(在linux服务器一般都是ssh命令行访问,没有图形界面的。所以,启动也没啥用)
c.NotebookApp.port =9999 #指定访问的端口,默认是8888。

(打开配置文件后可用 vim 中的查找 命令 / → 向上查找,? → 向下查找。来查找 c.NotebookApp.ip )
默认的c.NotebookApp.ip 等配置是 注释了的。去掉 # 号 更改等号右边的localhost 为自己的ip地址即可。其他的配置类似。

启动jupyter notebook

jupyter notebook

此时在浏览器直接访问 http://ip:9999 就可以看到jupyter的登陆界面。

防火墙的问题

配置完成以后,一般还会遇到防火墙拦截端口的问题。修改防火墙配置打开这个端口即可。
还有一个方法是在本地建立一个ssh通道:
linux系统中可以在本地终端中输入

ssh username@address_of_remote -L 127.0.0.1:9000:127.0.0.1:9999

window通过ssh或者xshell等工具访问远程服务器,在ssh链接的会话中进行设置。
比如这里使用xshell,选择属性 → ssh → 隧道,点击添加

便可以在widnow本地主机浏览器打开localhost:9000直接访问远程的jupyter了。

 

参考:http://ipython.org/ipython-doc/dev/notebook/public_server.html#notebook-public-srver

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>