imuncle / imuncle.github.io

大叔的个人小站
https://imuncle.github.io/
78 stars 17 forks source link

谷歌服务器配置远程Jupyter Notebook #107

Open imuncle opened 4 years ago

imuncle commented 4 years ago

前段时间利用GitHub的教育优惠包褥羊毛,花了5美金搞了个谷歌服务器,主要想用来搞深度学习,打算弄一个Jupyter Notebook,这样就可以通过浏览器写代码,然后在远程服务器上运行了,哪怕训练十几天都不怕(反正不是我自己的电脑算

褥羊毛的教程很多,百度一下就可以找到,比如这一篇:从领取Github教育礼包到DigitalOcean购买服务器

安装Jupyter

sudo apt install jupyter

Jupyter Notebook默认只能通过本地访问,也就是http://localhost:8888,通过远程访问的话会提示拒绝连接。

image

所以需要配置远程访问。

生成默认配置文件

jupyter notebook --generate-config

执行之后会生成jupyter_notebook_config.py文件,命令行会输出文件路径。

生成密钥

首先安装ipython3(因为我的环境是python3)

sudo apt install ipython3

然后通过ipython3生成密钥

ipython3

In [1]: from IPython.auth import passwd

In [2]: passwd()

这里要求你输入以后登录使用的密码,然后生成一个密钥,记得保存好密钥,以免丢失。

Enter password: 
Verify password: 
Out[2]: 'sha1:.......'

修改Jupyter配置文件

使用vim打开之前生成的配置文件,加入以下内容:

c.NotebookApp.password = u'sha1:........'   #这里填入之前生成的密钥
c.NotebookApp.ip='xxx.xxx.xxx.xxx'    #服务器的IP地址
c.NotebookApp.open_browser = False

网上绝大多数教程都写应该填c.NotebookApp.ip='*',但是这样写Jupyter Notebook是无法运行的,这里填写的并不是访问者的IP地址,而是被访问者,也就是服务器的IP地址,默认是localhost,而要远程访问就要填写真实的服务器IP地址。

运行Jupyter

保存配置文件之后,就可以直接运行了。

jupyter notebook

这时候打开浏览器输入地址,输入之前设置的密码,就可以远程使用Jupyter Notebook了。

image