背景介绍

Jupyter Notebook 的交互界面适用于机器学习、深度学习等开发项目。然而,计算资源一般使用的为Linux服务器,并且多为非Root用户。因此,需要在服务器端提供一个Jupyter Notebook,能够通过本地计算机的浏览器连接并使用该Jupyter Notebook工具。

实现步骤

  1. Linux服务器上安装Python

可选择的安装途径有很多,这里出于后续搭建深度学习框架的需求,选择通过安装Minianaconda的方式进行安装。参照Minicodna 安装教程,在 官方网站 上下载自己所需的版本进行安装。

  1. 在服务器上安装Python第三方包:Jupyter notebook
1
pip install jupyter
  1. 在服务器上配置notebook的参数文件。运行下面命令行,则应该会在Home/username/.jupyter路径下生成一个名为jupyter_notebook_config.py的文件。

    1
    jupyter notebook --generate-config
  2. 配置密码。运行下面的命令行,会让你填写密码和确认密码,并生成一段类似于'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856'的字符串(记下它,备用)。

1
jupyter notebook password
  1. 配置SSH。用openssl生成自签名证书(365天有效),运行下面命令行后(需要输入一些信息,直接回车键默认值即可),会在当前目录下产生两个文件mykey.keymycert.pem
1
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
  1. 修改配置信息文件。通过文本编辑器,如vim,打开步骤3生成的参数文件jupyter_notebook_config.py。在文件末尾添加下面这段信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 将步骤5生产的两个文件的绝对路径替换到下面两句话中。
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'

# 下面这句话可以不用改。
c.NotebookApp.ip = '*'

# 步骤4生成的一段字符串(前面要求记下备用的),替换到下面单引号内。
c.NotebookApp.password = u'sha1:bcd259ccf...'

# 下面这句话可以不用改。
c.NotebookApp.open_browser = False

# 端口,选择一个空闲的就行,推荐8889或9999等。
c.NotebookApp.port = 9999
  1. 最后,在服务器上打开Jupyter notebook程序:
1
Jupyter notebook
  1. 在本地计算机上,打开浏览器,地址栏输入:
1
2
3
4
https://服务器的地址:端口/

如:
https://123.123.121.21:8889

浏览器可能会提示有风险,选择“高级”或忽略风险,继续访问即可。之后,会提示输入密码,即步骤1设置的密码。