远程访问指南

用 SSH 跑任务,用 VNC 操作图形界面

LemonVM 提供独享 Mac mini 物理节点。命令行构建、日志采集与自动化优先使用 SSH;Xcode 图形操作、远程剪辑和需要完整桌面的任务使用 VNC。连接前先从控制台取得主机地址、端口、用户名与初始凭据。

2 种连接方式 5 个可选节点 1 台订单对应独享物理节点
连接检视器 LEMON SLICE / REMOTE
参数已核对
命令行SSH
图形界面VNC
主机控制台提供
连接资料按订单独立
SG 新加坡 JP 东京 KR 首尔 HK 香港 US-W 美国西部
先选连接方式

按任务交互方式选择,不按工具名称猜

同一台云端 Mac 可以同时承担命令行和图形任务。稳定做法是让 SSH 负责长任务与诊断,让 VNC 负责必须看见桌面的操作。

低交互开销

SSH:构建、自动化与日志

适合执行 xcodebuild、fastlane、依赖安装、仓库同步、日志检查和后台脚本。网络短暂抖动时,可配合会话保持工具让远端任务继续运行。

适合
命令、脚本、持续构建
优势
带宽占用低,诊断信息完整
边界
不提供 macOS 图形界面
完整桌面

VNC:Xcode、剪辑与可视化操作

适合使用 Xcode 图形界面、模拟器、素材管理、剪辑时间线与其他必须观察桌面状态的任务。延迟较高时,应先降低画质和分辨率,而不是反复重连。

适合
图形开发、剪辑、交互检查
优势
完整操作远端 macOS 桌面
边界
对延迟、抖动和带宽更敏感
SSH 配置

先核对五项参数,再发起第一次连接

不要根据其他订单沿用地址或端口。每次以当前服务在控制台显示的连接资料为准。

01

读取主机与端口

在当前服务详情中复制主机地址和 SSH 端口。地址、端口与节点共同构成连接目标,切换节点或服务后应重新核对。

02

确认远端用户名

用户名必须与连接资料逐字一致。不要把本地电脑用户名、仓库账号或团队成员名称代入 SSH 命令。

03

收紧密钥权限

私钥文件只允许当前本地用户读取。macOS 或 Linux 可执行 chmod 600 ~/.ssh/lemonvm_key,再用 -i 指定文件。

04

核对首次指纹

首次连接出现主机指纹时,先与控制台显示的信息核对。只有内容一致才写入 known_hosts,不要直接跳过检查。

05

保存可复用配置

将 Host、HostName、User、Port 与 IdentityFile 写入本地 SSH 配置,可减少手工输入错误,但不要把私钥内容写进配置文件。

命令格式
ssh -i ~/.ssh/lemonvm_key -p 端口 用户名@主机地址
VNC 配置

先建立可用会话,再逐步提高画质

第一次连接从中等画质和较低分辨率开始。确认输入、剪贴板与窗口切换正常后,再根据当前线路余量调整显示参数。

01

填写地址

使用控制台提供的 VNC 主机与端口,不沿用 SSH 端口。若客户端要求组合地址,按客户端格式填写主机和端口。

02

从中等画质开始

优先保证鼠标、键盘与窗口响应。文字清晰度足够后再提升色彩和图像质量,避免首次连接就占满带宽。

03

控制分辨率

高分辨率会增加每帧传输量。弱网环境先使用单显示器和较低分辨率,稳定后再调整远端桌面尺寸。

04

检查剪贴板

连接后先用一段无敏感信息的文本测试双向复制。不要通过共享剪贴板传递私钥、完整访问令牌或长期凭据。

05

确认全屏快捷键

记录客户端退出全屏和释放键盘捕获的快捷键,避免远端组合键被本地系统截获后误判为会话异常。

06

保留 SSH 诊断通道

VNC 画面停滞时先通过 SSH 检查负载和网络。SSH 仍可连接通常说明物理节点在线,问题更可能位于图形会话或链路。

连接诊断

从握手、线路到远端构建逐层验证

诊断时一次只改变一个变量。先确认 SSH 握手,再观察网络探测,最后执行一条可验证的远端命令。这样能区分凭据、端口、链路和任务环境问题。

看到 Connecting to 后无响应:检查地址、端口与本地出口限制。
进入密钥协商但认证失败:检查用户名、私钥路径和文件权限。
SSH 正常而 VNC 卡顿:降低画质、分辨率并暂停后台传输。
连接正常但构建失败:读取完整构建日志,不把任务错误归因于网络。
remote-diagnostic.log
$ ssh -v -p 端口 用户名@主机地址
debug1: Connecting to host [地址] port [端口]
debug1: Server host key: SHA256:[指纹]
debug1: Authentication succeeded (publickey)

$ ping -c 5 主机地址
5 packets transmitted, 5 packets received
round-trip min/avg/max = 41.2/44.8/49.1 ms

$ ssh lemon-node "xcodebuild -version"
Xcode [当前版本]
Build version [当前构建号]

$ ssh lemon-node "cd ~/project && xcodebuild build"
** BUILD SUCCEEDED **
节点延迟实测

用同一口径比较五个节点

下表用于观察不同接入地到新加坡、东京、首尔、香港、美国西部的相对差异。交互式 VNC 更看重延迟与抖动,后台构建则更看重连接稳定性和持续吞吐。

测试时段工作日 20:00–22:00,当地时间
样本次数每组 30 次 ICMP
统计口径去除首包后取中位数
接入线路当地固定宽带或企业光纤
主要接入城市到 LemonVM 五个在售节点的 ping 中位数,单位为毫秒
接入地与运营商 新加坡 东京 首尔 香港 美国西部
上海 · 中国电信 68 ms 42 ms 51 ms 35 ms 146 ms
北京 · 中国联通 91 ms 54 ms 46 ms 58 ms 139 ms
深圳 · 中国移动 53 ms 67 ms 76 ms 24 ms 168 ms
台北 · 固定宽带 62 ms 39 ms 48 ms 31 ms 126 ms
洛杉矶 · 企业光纤 171 ms 112 ms 124 ms 143 ms 27 ms

阅读方法:同一接入地优先比较横向数字;用于 VNC 时,同时连续观察抖动和丢包。实际连接质量由本地 Wi-Fi、运营商出口、跨境路由和后台传输共同决定。

高延迟排查

按从本地到远端的顺序缩小范围

不要同时切节点、改画质和重启客户端。按下面六步逐项确认,每一步都记录调整前后的延迟、丢包或操作响应。

01

检查本地网络

改用有线网络或稳定的 5GHz Wi-Fi,暂停本地下载和云同步。若同一局域网内其他设备也抖动,先处理本地链路。

02

观察跨境线路

连续探测至少数分钟,区分稳定高延迟与间歇性丢包。短时尖峰更可能造成 VNC 鼠标跳动和画面停顿。

03

比较所选节点

在新加坡、东京、首尔、香港、美国西部中选择更接近主要访问方向的节点。团队应以主要操作者或构建依赖所在方向为准。

04

降低 VNC 画质

先降低颜色质量、压缩等级或帧率,观察输入响应是否改善。画面清晰但操作延迟高时,不要只提高带宽设置。

05

降低分辨率

暂时切换到单屏和较低分辨率。若响应明显改善,说明每帧数据量已超过当前线路适合的范围。

06

暂停后台传输

检查仓库拉取、依赖下载、素材上传、产物回传和远端同步任务。大文件传输应与实时 VNC 操作错开执行。

会话安全

连接资料只给需要访问的人

远程连接的安全边界由本地密钥、初始凭据、会话锁定和团队交接共同构成。不要把长期访问资料粘贴到公开聊天或仓库。

优先使用密钥

为不同设备使用独立密钥,私钥只保存在受控终端。设备退出团队或丢失后,及时移除对应公钥。

更新初始凭据

首次登录完成环境核对后更新临时凭据。不要在脚本、构建日志或仓库配置中留下可直接使用的访问资料。

离席前锁定会话

暂时离开时锁定远端桌面,不用关闭仍在执行的后台任务。共享工作空间还应同时锁定本地电脑。

按成员分配访问

多人协作时记录谁在什么时间执行任务,不共享一份长期密钥。交接时说明任务状态、日志位置和待处理步骤。

断线恢复

先判断任务是否仍在运行,再决定是否重连

VNC 画面消失不等于物理节点停止。先用另一条连接通道确认状态,避免重复启动构建、覆盖输出或中断仍在执行的任务。

网络中断

SSH 与 VNC 同时断开

先检查本地网络,再测试目标主机和端口。网络恢复后重新连接,并查看任务日志和进程状态,不直接重复执行原命令。

确认点:本地出口、目标端口、最近日志时间
系统休眠

连接建立但远端无响应

通过控制台检查当前服务状态,再用 SSH 验证系统响应。恢复后检查电源和会话设置,避免长任务期间进入不合适的休眠状态。

确认点:SSH 响应、系统时间、运行进程
图形会话

SSH 正常但 VNC 画面异常

降低显示参数并重新建立图形会话。不要在未确认任务状态前重启整台节点,后台构建可能仍在正常运行。

确认点:远端负载、图形会话、客户端设置
后台任务

断线后构建仍在继续

重新连接后读取日志、退出码和产物目录。只有确认原任务结束或失败,才启动下一次构建,避免并发写入同一输出位置。

确认点:进程号、退出码、产物修改时间