阿里云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
安装好以后,来测试一下。
如果提示说找不到该文件之类的,是没有配置环境变量的原因。
打开环境变量配置文件
# vi /etc/environment
添加路径到环境变量中
PATH = ":/root/anaconda3/bin"
- 1
- 2
- 3
- 4
- 5
此处anaconda3文件夹是Anaconda安装好以后的文件所在,路径配置可视具体情况配置。
配置jupyter notebook
生成 jupyter notebook 配置文件
# jupyter notebook --generate-config
我在实际做的时候系统提示要我加上--allow-root,使用命令jupyter notebook --allow-root --generate-config 就可以了
- 1
- 2
- 3
打开 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来生成密文。
把那段密文复制过去即可。
Remote connection
下边来通过端口转发方式访问阿里云ECS上的 Jupyter 服务。
打通 SSH Tunnel
windows环境下,配置本地端口跳转。运行 PuTTY 。
配置 SSH Tunnels 。
填写 Source Port。本示例中为 12345。选择 Dynamic。单击 Add。
配置 Session 。
填写 IP 地址,即 ECS 实例的弹性公网 IP,单击 Open。
在弹出的会话框里输入登录账号和 ECS 实例的登录密码。成功登录到 ECS 实例上。
配置浏览器的网络连接
这里我用的是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
访问 Jupyter 服务
在浏览器中输入 Jupyter 服务的访问地址。本示例中为 “内网地址 : 端口号”。即可成功地从外部 SSH 访问到 Jupyter 服务。
内网地址可以在阿里云ECS控制台找到。
端口号可以在服务器管理终端上看到,正是之前设置的端口号8888。
总结
另外,可以看到,终端上的输出信息,第一条警告在告诉我们这个连接没有被加密,不安全。可以点击这个链接“ Running a notebook server ”,这里边有关于“Using SSL for encrypted communication”的教程。此处不再赘述。
本文是使用Anaconda中的Jupyter,这只适用于单用户登录,如果想搭建多用户的Jupyter的话,可以使用JupyterHub进行搭建。
前段时间在阿里云上租了个服务器就想着要在服务器上做点什么,正好最近刚学了Linux,想着自己又常写一些python程序,就在阿里云上安装Jupyter notebook,来实现远程访问。这里我的云主机上是Ubuntu系统,其他的Linux系统大同小异,搭建方法仍然适用。