远程访问云服务器的jupyter notebook

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

代码语言:javascript
复制
conda install jupyter notebook

打开ipython生成密钥。

代码语言:javascript
复制
ipython

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

代码语言:javascript
复制
In [1]: from notebook.auth import passwd

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

In [3]: exit()

生成配置文件。

代码语言:javascript
复制
jupyter notebook --generate-config

修改配置文件。

代码语言:javascript
复制
vi ~/.jupyter/jupyter_notebook_config.py

/ 查找内容并修改注释为以下内容然后:wq保存退出即可。字符串前加'u'表示后面的字符串以Unicode格式进行编码,防止因为字符串存储格式不同而导致解析出错。

代码语言:javascript
复制
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

除了在阿里云官网控制台的安全组中添加相应端口外,还要在云服务器中也相应地开放端口。

代码语言:javascript
复制
sudo su root
ufw allow 2021
ufw reload
ufw status

运行jupyter notebook,如果上面设置中没有允许root身份但此时是用root身份运行jupyter的话,记得添加参数--allow-root,此时在云服务器本机是可以访问的,外网也可以访问。

代码语言:javascript
复制
jupyter notebook