我有一台台式电脑,是塔式的。这台电脑上装有 Ubuntu 18.04.2。我还有一台笔记本电脑。目前只有 Windows 7,但通常我可以使用 Ubuntu 创建双启动。
台式电脑的 RAM 容量更大(多 2 倍),CPU 容量更大(多 3 倍),等等。此外,它的存储中还有我的数据库。笔记本电脑太旧了,无法使用台式电脑中的文件进行计算。但这并不是垃圾。
我们来看一个例子。
我想在笔记本电脑上使用 Anaconda/Jupyterlab。同时,我想访问台式计算机中的文件(笔记本和数据)。但我想通过笔记本电脑访问它,如果我想在笔记本中进行任何计算,我希望台式计算机的 RAM 和 CUP 进行计算。因为正如我所说,我的笔记本电脑太旧了,没有办法改进硬件。
此外,我想增加一个精度。我不知道这是否有必要,但我们永远不知道。我不想将我的台式计算机转换为仅用作服务器。这是一个工作站,我希望它能够同时完成两项任务:当我想使用时,它可以用作工作站,当我想使用时,它可以用作服务器。另一个精度。我的两台计算机上都有 VNC(免费版)。它运行良好,这不是问题。但这不是很方便。缺点是当我通过笔记本电脑上的 VNC 连接到我的台式计算机时,屏幕更适合我的台式计算机。此外,会话是在台式计算机上打开的,这是另一个缺点。
老实说,我做了一些研究,但我没有足够的知识来知道哪种方法可以满足我的需求。我也没有足够的知识来知道这是否明显可行。
答案1
当资源位于服务器(这里是 Ubuntu PC)中时,要通过客户端(这里是 Windows 7 笔记本电脑)访问 Jupyter Notebook 或 Lab,需要 SSH 隧道。
从服务器端,我们可以在 Ubuntu 上安装 OpenSHH,如下所示这个话题使用以下命令:sudo apt-get install openssh-server
。
从客户端(Windows 7)来看,我们可以使用 PuTTY。这在这篇文章中有详细描述DigitalOcean 的教程。但不需要source ~/environments/my_env/bin/activate
像他们那样使用命令。要知道 Ubuntu 服务器的 IP,我们在它的终端中输入命令ip addr show
。看看教程这里。现在,如果我们想要 ssh 隧道设置,我们可以使用不同的端口。
例如,如果我们想让 jupyter lab 在服务器端通过端口 9000 执行,我们jupyter lab --port=9000
在 PuTTY 提示符中输入命令:。我们必须在 PuTTY SHH Tunnels 设置中精确说明Destination: localhost:9000
localhost 是服务器...如果我们不注意的话,可能会造成混淆。
然后在浏览器中我们连接到http://本地主机:8000jupyter lab
,其中端口 8000 是为客户端配置的端口。之后,通常会打开一个页面,要求输入令牌。此令牌由PuTTY 的 shell(即命令服务器的 shell)中的命令提供。