JupyterNotebook在关闭SSH远程连接之后,JupyterNotebook所有服务将被关闭,而且默认是不开启远程客户端访问的。
1 JupyterNotebook开启远程服务
1.1 建立 JupyterNotebook配置文件
JupyterNotebook默认配置文件为:~/.jupyter/jupyter_notebook_config.py,默认是不存在的,需要通过命令生成配置文件。
# 非root用户
jupyter notebook --generate-config
# root用户
jupyter notebook --generate-config --allow-root
命令执行后,出现如下信息表明配置文件已经生成。
Writing default config to: /home/zhou/.jupyter/jupyter_notebook_config.py
1.2 生成 JupyterNotebook密码
(1)从JupyterNotebook5.0开始,生成密码的命令:
jupyter notebook password
xxx@XXX:~$ jupyter notebook password
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to /home/zhou/.jupyter/jupyter_notebook_config.json
生成的密码写入文件:jupyter_notebook_config.json。.
(2)还可以利用命令行模式手动生成密码,在Python命令行中输入如下命令。
from notebook.auth import passwd;
passwd()
Python 3.7.5 (default, Oct 25 2019, 15:51:11)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from notebook.auth import passwd
>>> passwd()
Enter password:
Verify password:
'sha1:c3b2259c3408:7db3d3bfd334c5e29032720e947792925e4d28a6'
手动生成的密码显示为sha1值。
手动生成的密码需要修改jupyter_notebook_config.py文件中相应的选项。
c.NotebookApp.password ='sha1:c3b2259c3408:7db3d3bfd334c5e29032720e947792925e4d28a6'
# 取消这一行前面的注释符号(#)
注意:jupyter_notebook_config.json生产的密码优先级要高于jupyter_notebook_config.py文件中手动设置的密码。根据具体情情况选使用哪种密码生成方式。
(3) 设置远程连接IP、端口号等
c.NotebookApp.ip='*' # 允许任何ip访问
c.NotebookApp.open_browser = False # 默认不打开浏览器
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口.
# 取消每一行前面的注释符号(#)
1.3 打开远程服务
在服务器上启用jupyter notebook,root用户使用jupyter notebook --allow-root启用服务,使用 服务器IP:8888访问jupyternotebook
xxx@XXX:~$ jupyter notebook
[I 02:14:52.196 NotebookApp] Writing notebook server cookie secret to /home/zhou/.local/share/jupyter/runtime/notebook_cookie_secret
[I 02:14:52.566 NotebookApp] Serving notebooks from local directory: /home/zhou
[I 02:14:52.566 NotebookApp] The Jupyter Notebook is running at:
[I 02:14:52.566 NotebookApp] http://localhost:8888/
[I 02:14:52.566 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 02:14:52.574 NotebookApp] No web browser found: could not locate runnable browser.
注意:利用jupyter notebook生成的服务在SSH连接关闭之后会自动关闭,如果需要在关闭SSH连接之后还能在后台运行,需要在运行jupyter notebook命令后面添加“&”,即jupyter notebook&
1.4 映射JupyterNotebook远程8888端口为本机8888端口
远程连接JupyterNotebook服务器需要每次输入远程服务器IP地址,映射为本地端口后会方便很多。
在VmwareWorkstation中选择“编辑”-“虚拟网络编辑器”,在其中添加虚拟机中的端口号和本机端口号之间的映射。