远程访问云服务器的jupyter notebook

默认你安装好了Anaconda,打开Terminal安装jupyter notebook。

conda install jupyter notebook

打开ipython生成密钥。

ipython

输入以下代码以及两次密码即可生成密钥。

In [1]: from notebook.auth import passwd                                        

In [2]: passwd()                                                                
Enter password: 
Verify password: 
Out[2]: 'sha1:salt:hashed-password'

In [3]: exit() 生成配置文件。
jupyter notebook --generate-config
修改配置文件。
vi ~/.jupyter/jupyter_notebook_config.py
/ 查找内容并修改注释为以下内容然后:wq保存退出即可。字符串前加'u'表示后面的字符串以Unicode格式进行编码,防止因为字符串存储格式不同而导致解析出错。
c.NotebookApp.allow_remote_access = True   # 允许外部访问
c.NotebookApp.ip='*'                       # 设置所有ip皆可访问
c.NotebookApp.password = u'sha1:salt:hashed-password'  # 刚才生成的密钥'
c.NotebookApp.open_browser = False       # 禁止自动打开浏览器
c.NotebookApp.port = 2021                # 任意指定一个不冲突的端口
c.NotebookApp.notebook_dir = '/home/Don/JupyterProject/' #默认文件路径
c.NotebookApp.allow_root = True          # 允许root身份运行jupyter notebook
除了在阿里云官网控制台的安全组中添加相应端口外,还要在云服务器中也相应地开放端口。
sudo su root
ufw allow 2021
ufw reload
ufw status
运行jupyter notebook,如果上面设置中没有允许root身份但此时是用root身份运行jupyter的话,记得添加参数--allow-root,此时在云服务器本机是可以访问的,外网也可以访问。
jupyter notebook