本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com
背景
实验室近期搞了台高性能 Mac 主机,我们想要依托该主机搞一台小型多用户服务器,以充分利用主机资源 (学校的集群多线程调度、IO 都略差劲,跑程序不趁手)。资源既包括硬件资源,也包括软件、Mac 生态。同时,该主机也是实验室成员日常使用的机器,不干扰该用户的正常使用是前提。具体而言,需求如下:
- 每个用户独立 home 文件夹 (跟 linux 一样);
- 每个用户都可以拥有独立的图形桌面 (该功能似乎需要服务主机的 GPU 足够强大);
- 共享软件。
系统版本
Macos Big Sur
最终解决方案
- 按照下面的 “服务端配置” 方法创建账号;
- 在需要远程的账号上独立安装 NoMachine:Free Remote Desktop For Everybody,并启动软件;
- 客户端下载对应的系统版本。使用 NX 协议直接连接。
非常丝滑,也支持跨设备复制粘贴,几乎完美的解决方案!
网上查到的解决方案
1. 服务端 (主机)
Step1: 在’系统偏好设置’中进入’用户与群组’,创建用户:
Step2: 进入’登陆选项’, 配置快速用户切换:
请注意,此步骤是 Windows 使用 VNC 访问必备的,如果其他主机都是 Mac,则不需要此步骤。
Step3: 在’系统偏好设置’中进入’共享’,配置共享选项:
2. 客户端 (登陆用户)
2.1 Mac 用户带 GUI 登陆
桌面点击’前往’ > ‘连接服务器’
输入 IP 地址:
输入账号登陆并选择 ‘以注册用户身份’ 进行登陆:
顺利打开主机的个人用户桌面:
在该窗口可以直接进行文件传输。当然,也可以借助其他的工具进行文件管理 (如 appstore 的 ForkLift)。
2.2 Windows 用户带 GUI 登陆 在 MacOSX 上实现多用户远程桌面-CSDN博客" data-balloon-pos=“up”>[1]
Windows 用户需要先下载 VNCViewer (免费):Download VNC Viewer for Windows,输入 IP 地址、用户信息。此外,Windows 用户登陆时,需要先在主机上登陆相应的账号(这就需要上面提到的快速切换用户的功能)。
这种方法非常卡,据说是因为它通过不断地截图、压缩、传输、解压来实现的远程连接 performance - Why is VNC on Windows so slow? - Super User" data-balloon-pos=“up”>[2]。
2.3 Shell 登陆
如此配置后,主机支持使用 sftp 传输文件、ssh 远程连接,因此也可以直接当作 Linux 服务器进行使用。
共享软件
默认方式安装的软件、计算平台 (anaconda, R, java, etc,.) 都可以实现所有用户共享。但是有的软件使用的是共享缓冲区,此时就会造成只有一个用户可以正常使用软件的情形 (如 RStudio 在主机上安装,其他用户打开后只会显示 “Rstudio 因出现问题而无法打开”)。这时候需要将安装方式更改为本地安装方式,即: 把里面的 app 拖到桌面(或者本地文件夹),这样就是为单独的用户安装独立软件了。
参考
- ^ 在 MacOSX 上实现多用户远程桌面 https://blog.csdn.net/iteye_17686/article/details/82231369
- ^Why is VNC on Windows so slow? https://superuser.com/questions/285250/why-is-vnc-on-windows-so-slow