Jupyter Notebook 是一种交互式计算环境,主要用于编写和分享包含代码、方程式、可视化和文字叙述的文档。Jupyter Notebook最初是为数据分析和数据科学设计的,但如今广泛应用于许多学科。它的主要特点和优势包括:

  • 交互性:你可以在一个单独的环境中运行代码片段,立即查看输出结果。这使得实验和调试代码变得非常方便。
    多语言支持:尽管Jupyter Notebook的名字来源于三种编程语言(Julia、Python和R),它支持许多其他语言,如C++、Ruby、Scala等。
  • 可视化:你可以直接在Notebook中生成并查看图表和其他可视化内容,这对数据分析和展示非常有用。
  • 文档整合:Notebook可以包含代码、文本、数学公式(使用LaTeX格式)以及图像等。这使得它成为一种强大的工具,用于记录和分享完整的分析过程。

在本文中,我们将介绍如何在服务器上运行Jupyter Notebook,并通过本地浏览器连接到它。
那么为什么要在服务器上运行Jupyter Notebook?
在本地运行Jupyter Notebook是很方便的,但有时你可能希望在服务器上运行它。这样做有几个好处:

  • 计算资源:服务器通常拥有更多的计算资源(CPU、内存、GPU等),可以用于处理大型数据集或复杂的计算任务。
  • 长时间运行:如果你的计算任务需要很长时间才能完成,你可以在服务器上运行它,而不必担心本地计算机的性能或电源问题。
  • 数据存储:服务器通常有更大的存储空间,可以存储大量数据集或模型文件,可以直接处理和可视化这些数据,而不需要将数据下载回本地。
  • 无需本地安装:如果你的本地计算机配置有限,或者你不想在本地安装大量的软件包和依赖项,你可以在服务器上运行Jupyter Notebook,而无需在本地安装任何东西。
  • 远程访问:通过在服务器上运行Jupyter Notebook,你可以从任何地方的任何设备上访问它,只要你有互联网连接。
  • 节省本地资源:如果你的本地计算机性能有限,或者你需要同时运行多个计算任务,你可以在服务器上运行Jupyter Notebook,从而节省本地资源。

在本地连接服务器上的jupyter notebook 其实非常简单,只要使用ssh 命令监听服务器上的jupyter notebook的端口就可以了。

启动服务器上的 Jupyter Notebook

首先,我们先在服务器端启动 jupyter notebook

1
jupyter notebook

如图,表明服务器端的jupyter服务已经启动成功,并且端口为服务器端的8888

本地连接监听服务器上的 Jupyter Notebook

接下来我们在本地的终端窗口,监听服务器端的8888端口,命令如下:

1
ssh -N -f -L [本地主机名]:[本地端口]:[远程主机名]:[远程端口] [用户名]@[服务器地址]

ssh 命令的参数说明:

  • -N:告诉 SSH 客户端不要执行远程命令,只进行端口转发。这在你只需要端口转发而不需要在远程主机上执行任何命令时非常有用。
  • -f:告诉 SSH 客户端在后台运行。它在密码提示或密钥短语提示后会把 SSH 会话放入后台。
  • -L:后面跟端口转发的具体参数。[本地主机名]:[本地端口]:[远程主机名]:[远程端口]。

例如,如果你希望在本地的8889端口连接到服务器上的8888端口,并且服务器的IP是192.168.1.1,用户名是user,那么命令应该是:

1
ssh -N -f -L localhost:8889:localhost:8888 192.168.1.1@user

本地打开浏览器连接服务器上的 Jupyter Notebook

最后就可以打开网址 http://localhost:8889,如图:

输入token就可以啦,具体的token就是服务器端的显示的http://127.0.0.1:8888/tree?token=[token]
token=后面的一长串,输入之后就进入到jupyter notebook的正常页面了。

可以看到该目录显示的是服务器下的文件。

参考:如何连接服务器的jupyter