姓名:乐仁华 学号: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
进去后界面一样