阿里云ECS搭建Jupyter Notebook

前段时间在阿里云上租了个服务器就想着要在服务器上做点什么,正好最近刚学了Linux,想着自己又常写一些python程序,就在阿里云上安装Jupyter notebook,来实现远程访问。这里我的云主机上是Ubuntu系统,其他的Linux系统大同小异,搭建方法仍然适用。




Install Jupyter


安装Anaconda

要搭建Jupyter,首先要安装Jupyter。因为Anaconda集成了许多python库,使用方便,所以我打算适用Anaconda中集成的Jupyter,所以下边来安装Anaconda。

根目录下创建一个文件夹用于存放Anaconda安装包
~# mkdir anaconda

进入文件夹
~# cd anaconda

使用wget下载Anaconda安装包(wget轻巧易用且功能强大)
~/anaconda# wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh

运行安装程序,安装Anaconda
~/anaconda# ./Anaconda3-4.4.0-Linux-x86_64.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

安装好以后,来测试一下。

阿里云ECS搭建Jupyter Notebook

如果提示说找不到该文件之类的,是没有配置环境变量的原因。

打开环境变量配置文件
# vi /etc/environment

添加路径到环境变量中
PATH = ":/root/anaconda3/bin"
  • 1
  • 2
  • 3
  • 4
  • 5

此处anaconda3文件夹是Anaconda安装好以后的文件所在,路径配置可视具体情况配置。

阿里云ECS搭建Jupyter Notebook


配置jupyter notebook

生成 jupyter notebook 配置文件
# jupyter notebook --generate-config
我在实际做的时候系统提示要我加上--allow-root,使用命令jupyter notebook --allow-root --generate-config 就可以了
  • 1
  • 2
  • 3

阿里云ECS搭建Jupyter Notebook

打开 jupyter 配置文件,进行修改.

# vi ~/.jupyter/jupyter_notebook_config.py
  • 1
c.NotebookApp.ip='*'
c.NotebookApp.password = u'此处填写密码'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888
c.NotebookApp.notebook_dir = '/root/py3jupyterproject/'
  • 1
  • 2
  • 3
  • 4
  • 5

关于密码,要使用加密的密码。打开ipython,使用函数passwd来生成密文。

阿里云ECS搭建Jupyter Notebook

把那段密文复制过去即可。




Remote connection

下边来通过端口转发方式访问阿里云ECS上的 Jupyter 服务。


打通 SSH Tunnel

windows环境下,配置本地端口跳转。运行 PuTTY 。

配置 SSH Tunnels 。
填写 Source Port。本示例中为 12345。选择 Dynamic。单击 Add。

阿里云ECS搭建Jupyter Notebook

配置 Session 。
填写 IP 地址,即 ECS 实例的弹性公网 IP,单击 Open。

阿里云ECS搭建Jupyter Notebook

在弹出的会话框里输入登录账号和 ECS 实例的登录密码。成功登录到 ECS 实例上。

阿里云ECS搭建Jupyter Notebook


配置浏览器的网络连接

这里我用的是Google Chrome。运行命令:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server="socks5://localhost:12345" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=d:/tmppath/

其中,
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"是Chrome安装路径
12345是本地端口
  • 1
  • 2
  • 3
  • 4
  • 5

阿里云ECS搭建Jupyter Notebook


访问 Jupyter 服务

在浏览器中输入 Jupyter 服务的访问地址。本示例中为 “内网地址 : 端口号”。即可成功地从外部 SSH 访问到 Jupyter 服务。

阿里云ECS搭建Jupyter Notebook

内网地址可以在阿里云ECS控制台找到。

阿里云ECS搭建Jupyter Notebook

端口号可以在服务器管理终端上看到,正是之前设置的端口号8888。

阿里云ECS搭建Jupyter Notebook




总结

另外,可以看到,终端上的输出信息,第一条警告在告诉我们这个连接没有被加密,不安全。可以点击这个链接“ Running a notebook server ”,这里边有关于“Using SSL for encrypted communication”的教程。此处不再赘述。

本文是使用Anaconda中的Jupyter,这只适用于单用户登录,如果想搭建多用户的Jupyter的话,可以使用JupyterHub进行搭建。


前段时间在阿里云上租了个服务器就想着要在服务器上做点什么,正好最近刚学了Linux,想着自己又常写一些python程序,就在阿里云上安装Jupyter notebook,来实现远程访问。这里我的云主机上是Ubuntu系统,其他的Linux系统大同小异,搭建方法仍然适用。