客户端访问服务器jupyter notebook
本次通过win10网页访问阿里云服务器jupyter notebook服务:
服务器:Ubuntu16.04(阿里云服务器ECS)
客户端:windows10
Anaconda3:4.7.10
配置jupyter_notebook_config.py文件
1.生成jupyter notebook配置文件
jupyter notebook --generate-config
由于我是root权限进行的操作,所以配置文件生成于/root/.jupyter/
路径下
2.配置密码并生成ssl证书
这步我仅设置了jupyter notebook的密码,用于后续登录时作验证(此处不可跳),这里跟其他博客设置方式并不一致,如果有误,不要以我为准~
jupyter notebook password
然后输入两次密码即可完成jupyter notebook密码设置。
3.修改jupyter配置文件
cd /root/.jupyter/
vim jupyter_notebook_config.py
修改内容如下(解释部分为个人理解):
# Local IP addresses (such as 127.0.0.1 and ::1) are allowed as local, along
# with hostnames configured in local_hostnames.
c.NotebookApp.allow_remote_access = True
# True表示不接受127.0.0.1作为本地IP地址
## Whether to allow the user to run the notebook as root.
c.NotebookApp.allow_root = True
# True表示允许用户以root身份运行jupyter notebook
## The IP address the notebook server will listen on.
c.NotebookApp.ip = '0.0.0.0'
# 将'0.0.0.0'设置为notebook服务器将侦听的IP地址
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = '/home/rika/'
# '/home/rika'为个人设置的notebook初始打开目录
## Whether to open in a browser after starting. The specific browser used is
# platform dependent and determined by the python standard library `webbrowser`
# module, unless it is overridden using the --browser (NotebookApp.browser)
# configuration option.
c.NotebookApp.open_browser = False
# False表示通过jupyter notebook启动后不在浏览器中打开notebook
在修改的过程中可以在vim界面通过/匹配词
来定位修改项,修改完成后切换编辑模式:wq
保存退出。
该部分内容的释义可以通过以下命令查询:
jupyter notebook --help
客户端启动jupyter notebook
映射方式(不推荐)
先在服务器上将jupyter notebook运行起来
jupyter notebook
注意这里的运行日志中可以看到指定的IP及端口为rika:8888
(这个看各位的配置和运行日志)
接下来需要将服务器端口映射到本地,使用win+R
使用cmd命令行打开控制台输入:
ssh username@server_ip -L127.0.0.1:8888:rika:8888
注意:此处username更改为服务器用户名,server_ip更改为服务器公网IP,127.0.0.1:8888为映射到的本地地址,rika:8888为服务器jupyter notebook地址。
接下来输入服务器用户相应的密码,打开本地浏览器访问127.0.0.1:8888
,使用之前设置的jupyter notebook密码即可登录。此时默认访问的目录为我们之前设置的路径。
映射方式的缺点:
- 服务器中执行jupyter notebook的方式是不可中止的,无法后台使用;
- 客户端中打开jupyter notebook的方式是不支持断开ssh连接的,所以win10系统中开启的控制台不得关闭;
直接访问:
这种方式可以让你通过任何客户端浏览器直接访问服务器上jupyter notebook,不需要后台运行映射程序。
阿里云服务器设置
由于阿里云服务器默认打开了安全组,所以需要先设置一下安全组的配置规则。
打开阿里云控制台,选中服务器实例,点击安全组,选择配置规则,通过手动添加的方式将8888端口暴露出来。(其他服务器或同样面临防火墙的问题,排查问题的时候可以留意下这里)
守护进行启动jupyter notebook
通过nohup命令使得jupyter notebook命令在后台执行,并打印日志:
nohup jupyter notebook > /root/.jupyter/jupyter.log &
打开jupyter notebook
此时仅需在客户端浏览器中访问server_ip:8888
,首次访问输入jupyter notebook密码,即可正常使用jupyter notebook。
注意:此处server_ip为服务器公网IP地址,这里可以直接通过这种方式正是因为之前我们设置jupyter_notebook_config.py的功劳之一。