Ubuntu 16.04.6 LTS 服务器端运行 Jupyter notebook,本地浏览器访问 Jupyter notebook
程序员文章站
2022-03-03 14:46:36
...
一、环境及工具
- 远程服务器:Ubuntu 16.04.6 LTS
- 本地:Windows 10 x64
- Xshell 6 (Build 0715)
- Tmux(终端复用工具)
二、基本步骤
- 在 Ubuntu 服务器端安装 Jupyter notebook
- 官网:https://jupyter.org/install.html
- pip 方法:
pip install jupyter # 或 pip install jupyterlab
- 修改 Jupyter notebook 配置文件(该步骤可以省略,但是在运行 jupyter notebook 时需要指定端口)
- 通过 Xshell 终端连接 Ubuntu 服务器后,运行命令:
ipython
- 进入 ipython后,依次运行下面两条脚本:
from notebook.auth import passwd
passwd()
-
根据提示输入两次需要自己定义的密码,会得到一个秘钥字符串(需要将该秘钥字符串复制好,待一会粘贴进配置文件中)
-
输入:exit() 退出 ipython
exit()
- 然后运行如下命令,创建 notebook 配置文件
jupyter notebook --generate-config
- 通过 vim 打开配置文件
vim /home/用户名/.jupyter/jupyter_notebook_config.py
以上步骤图示如下:
- 在配置文件的最后添加如下内容:
## 手动添加的内容
c.NotebookApp.ip = '*' # 此处*号不需要修改,表示绑定服务器的所有 IP 地址
c.NotebookApp.password = u'sha1:be130abecdef1:2f9e1313343439ee3adfasdfa23409830f48b300e7692695' # 单引号内内容需要用前面步骤中生成的秘钥替换
c.NotebookApp.port = 端口号 # 自定设定一个合适的远程访问端口(配置 Xshell 端口转发时也是用这个端口)
c.NotebookApp.open_browser = False # 不使用服务器本地的浏览器
添加内容图示如下:
- 配置 Xshell 的端口转
- 打开 Xshell——【文件】——【新建】——在【连接】中填写服务器的登录信息,再在其下的【用户身份验证】中填写登录用户名和密码
- 再在【SSH】下的【隧道】中点击【添加】,将【侦听端口】和【目标端口】设置为同一端口(如果第 2 步设置了端口号,则此处与其相同;如果略过第 2 步,则需要记住该端口号,在运行 jupyter notebook 时需要指定该端口号;其他地方都不需要修改,注意不要勾选“转发X11连接到(X)”),确定并保存该会话
- 运行 Jupyter notebook
- 用 Xshell 打开上一步配置好的会话,运行如下命令:
tmux new -s my_jupyter # 通过 tmux 开启一个会话
jupyter notebook # 在打开的 tmux 会话窗口运行 jupyter notebook
# 如果第 2 步省略,则需要指定端口号(同为 Xshell 端口转发的端口号相同)
jupyter notebook --port 端口号
- 通过 tmux 可以保持该会话在后台持续运行,而不至于用户退出终端后,该 jupyter notebook 服务退出,即可以即时地在本地浏览器中使用 jupyter notebook,当然也可以不用这一步,直接运行 jupyter notebook
- 浏览器中使用 Jupyter notebook
- 在本机浏览器地址栏中输入:http://127.0.0.1:端口号,如下示例
http://127.0.0.1:端口号
然后即可以使用服务器上的 Jupyter notebook 服务了!界面截图如下:
需要注意:虽然通过 tmux 可以在 ubuntu 后台持续运行 jupyter notebook 服务,但是不能关闭 Xshell 中负责特定端口转发的会话终端,但是可以退出 tmux,执行其他操作
参考
[1] https://jupyter-notebook.readthedocs.io/en/stable/public_server.html
上一篇: BZOJ 4241 历史研究
下一篇: 远程访问jupyter notebook
推荐阅读