在ubuntu18.04服务器配置jupyter notebook并实现远程连接

  • Post author:
  • Post category:其他




一、引言

最近618大促,新入手一台入门级服务器用于自己平时玩耍,系统是ubuntu18.04,但是没有图形界面的服务器一定程度上确实不够友好,于是想到部署一个jupyter notebook 既可以跑跑不能关闭的脚本,又可以通过远程浏览器访问得到一个图形化界面。使用jupyter notebook创建新的terminal,同样可以实现使用命令行操作ubuntu系统。好吧,在没有正常把jupyter跑起来以前,还是乖乖使用服务器原生的界面吧,原生界面长这样:

在这里插入图片描述



二、准备工作

还是强调一下需要准备的设备和工具:

  1. 一台云服务器,配置不限,不过配置越高,访问和计算的速度肯定更快;
  2. 一台可以联网的笔记本电脑,用来做配置和远程访问;
  3. (可选)一台智能手机,实现手机访问jupyter notebook



三、安装jupyter notebook


1. 安装jupyter notebook


无论是官网下载还是镜像库下载,总之下载一个安装包到本地,出于速度考虑,还是更推荐镜像库下载。安装包有多个版本,取最新的即可,本文的安装包文件类型下载的是linux系统的shell脚本文件。

# 查看当前目录
pwd
# 查看当前目录文件
ls

# 以下两种下载方式选择一种即可
# 下载链接1-官网下载:
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
# 下载链接2-镜像库下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.02-Linux-x86_64.sh

# 安装anaconda
bash Anaconda3-2020.02-Linux-x86_64.sh

安装过程中会有需要人工确认的选项,一路yes即可。


2. 配置环境变量


anaconda在安装时已经将路径写到了环境变量中,现在需要手动重新编译一下环境变量文件使修改生效:

source ~/.bashrc

判断是否安装完成,可以在命令行输入python,或ipython,或jupyter notebook,前者显示如下截图字段,或后两者可以正常启动,则说明安装完成。

在这里插入图片描述

如不能正常启动,则有可能是环境变量未添加,需要自己手动添加环境变量:

sudo vim ~/.bashrc

在文件的末尾添加安装的anaconda目录中bin目录的路径:

# 根据自己的实际安装位置填写
export PATH=/root/anaconda3/bin:$PATH

再重新执行一遍编译命令:

source ~/.bashrc

验证是否安装成功的方式与上文相同,这里不再赘述。



四、配置jupyter notebook


1. 生成配置文件

jupyter notebook --generate-config

执行后会输出一个执行文件路径,记住这个路径,我的是

/root/.jupyter/jupyter_notebook_config.py



2. 设置密码并生成sha1秘钥


在终端中打开ipython编辑器或python编辑器,我使用的是颜值高的ipython:

ipython

在ipython编辑环境中输入以下代码后,会让输两遍密码,回车后输出sha1秘钥。这个密码即为之后远程访问jupyter notebook时,需要输入的密码,秘钥需要写入配置文件中。因为是服务器环境,无法复制粘贴,我没有找到好的办法,直接拍了个照片对着敲出来的,如果有大神有更好的办法还请赐教。

from notebook.autu import passwd

passwd()

在这里插入图片描述


3. 生成SSL证书


由于jupyter远程访问使用的是http协议,所以需要生成SSL安全证书

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

运行后在当前目录下会生成两个文件:

mykey.key



mycert.pem




4. 配置jupyter notebook的配置文件


找到之前记录的配置文件路径并使用vim编辑器编辑:

sudo vim /root/.jupyter/jupyter_notebook_config.py

在文件的末尾添加如下内容,保存后退出:

c.NotebookApp.ip = '*'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
# 此处填写上面生成的sha1秘钥
c.NotebookApp.password = u'sha1:***'
c.NotebookApp.certfile = u'/root/mycert.pem'
c.NotebookApp.keyfile = u'/root/mykey.key'

在这里插入图片描述



五,远程登录


1. 将jupyter notebook跑起来


直接使用

jupyter notebook

启动貌似会报错,根据提示添加上

–allow-root

即可

jupyter notebook --allow-root


2. 使用电脑浏览器远程访问


在服务器的控制台找到服务器的公网IP,在浏览器端输入

IP:8888/tree

即可成功访问,可以看出它的默认路径就是配置时的用户路径

在这里插入图片描述


3. 使用智能手机远程访问

不仅电脑端可以访问,手机端也可以随时访问,在手机浏览器中输入

IP:8888/tree

,也可以访问到服务器的用户路径:

在这里插入图片描述



六,结束语

现在已经可以使用jupyter notebook远程登录服务器,终于不用对着原生界面发呆了。为了稍微实现一下服务器的价值,我打算回头搞几个脚本上去跑一跑。具体操作且等下回分解咯。。。



参考文章


anaconda安装与jupyter配置



anaconda安装与jupyter配置



vim基本操作



版权声明:本文为python_white原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。