如何在云服务器上设置可远端访问的jupyter notebook

0.339字数 1070阅读 2448

姓名:乐仁华 学号:16140220023
转载自:http://m.blog.csdn.net/Lo_Bamboo/article/details/78601328,有删改

【嵌牛导读】:本文主要讲解利用云服务器设置可远程访问的jupyter notebook
【嵌牛鼻子】:云服务器,jupyter notebook,远程访问
【嵌牛提问】:在云服务器上怎么设置可远程访问的jupyter notebook?
【嵌牛正文】:

这些天在云服务器上试了一下远程访问的jupyter notebook设置,整个过程曲折的有点难受,查了好多教程,才算是搞定了,所以这里写下来总结起来。

配置云服务器的安全组

因为我用的是阿里云的服务器,所以就以阿里云的配置来说明。
因为从外网访问服务器,需要开放一定的端口,所以要对服务器的访问规则进行配置。阿里云是用安全组来管理这些规则的,所以需要对安全组进行配置。

阿里云为了安全起见,默认只开放了22、80等少数端口。而jupyter notebook默认采用8888端口,因此在安全组配置中,需要将此端口开放。
如果一切都正常,就是无法远程访问,有90%的可能性就是安全组规则配置的问题。

设置过程:云服务器管理控制台》云服务器ECS》网络和安全》安全组》配置规则》添加安全组规则

端口范围和优先级按图上的设定,授权对象这个我是填 0.0.0.0/0 。表示这个端口开放给所有ip。

Anaconda(清华源)

Anaconda用来管理python的各种库是很好的,推荐使用。不过Anaconda默认源在国外,直接下载慢,所以选择清华源

sudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.1-Linux-x86_64.sh

执行安装过程

sudo bash Anaconda3-5.0.1-Linux-x86_64.sh

提示你,是否阅读协议,回车接受

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue

是否接受协议,yes

Do you accept the license terms? [yes|no]

安装位置确认,回车

Anaconda3 will now be installed into this location:
/home/bamboo/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

提示你如果要让bashrc起作用,要打开一个新的终端。但测试不起作用。

For this change to become active, you have to open a new terminal.

于是,我就直接配置环境变量

sudo vim /etc/environment

把自己的安装目录添加到后面

:/home/bamboo/anaconda3/bin

立即激活环境变量

source /etc/environment

测试是否安装成功

conda --version

如果安装成功,会显示出当前conda的版本

conda 4.3.30

添加Anaconda的TUNA镜像

conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'

设置搜索时显示通道地址

conda config --set show_channel_urls yes

创建jupyter notebook运行环境,可以方便管理各类库

conda create -n jupyter_notebook python=3

激活环境

source activate jupyter_notebook

安装深度学习所需要的所有库

如果要退出环境的话,执行:

source deactivate#暂时不执行

安装jupyter notebook

安装jupyter notebook (这个过程是接着激活环境后的)

conda install jupyter notebook

测试

jupyter notebook --ip=127.0.0.1

终端输出正常即可


配置jupyter notebook远程访问

默认jupyter notebook 是不需要配置文件的。因此,需要用以下命令生成该文件。
主要配置一下内容:

  • 设置远程访问密码
  • 设置可访问ip,全局访问
  • 禁用服务器端启动浏览器
jupyter notebook --generate-config

生成文件后,文件在该目录下

Writing default config to: /home/bamboo/.jupyter/jupyter_notebook_config.py

打开jupyter_notebook_config.py文件

vim /home/bamboo/.jupyter/jupyter_notebook_config.py

设置可以访问服务器的ip

c.NotebookApp.ip = '*'

notes:很多教程把该ip设置为127.0.0.1,这样你只能在本地访问,远程是无法访问的。这是大坑中很大的一个。
同时这里还有个需要注意的,上面 '*' 表示的是可以接收所有ip的客户端访问,详细可以看这个博客
还有你会看到每行有个#,要记得把需要改的设置前面的#号去掉

打开ipython

ipython

调用passwd()函数生成密匙,把密匙复制下来,后面会有用

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'

这个密匙会是不一样的

加入上面生成的密匙

c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'

设置不在服务器端自动打开浏览器

c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'
c.NotebookApp.open_browser = False

到目前位置所有远程的配置的所有工作已经全部完成。赶快启动一下jupyter notebook是不是可以访问。

jupyter notebook

终端开始输出:

然后在自己电脑浏览器网址里输入

云服务器公网ip:8888

进去后界面一样


推荐阅读更多精彩内容