先接通,再跑测试

SSH 跑命令,VNC 看桌面,
两条路都通

连接的是一台独享物理 Mac,不是虚拟机。先在控制台的机器详情页查看 IP、连接端口和凭据;用 SSH 执行构建与测试,用 VNC 检查 macOS 图形界面。两种方式可以配合使用,不必把每次构建都放在远程桌面里操作。

已下单:先确认机器已交付,再连接。端口、用户名与认证方式均以该实例详情为准,不凭示例猜测。

按任务选择入口

构建走 SSH,界面问题走 VNC

先让命令行稳定连通,再打开桌面。这样能把网络与认证问题分开定位,也能避免桌面刷新占用构建日志回传所需的带宽。

SSH:把命令送到机器上

适合执行 xcodebuild、运行脚本、查看日志和管理构建产物。macOS 终端、Windows Terminal 中的 OpenSSH,或 Linux 的 SSH 客户端都可使用。

  • 从实例详情读取 SSH 端口。22 是常见默认值,但不代表你的实例一定使用它。
  • 首次连接先核验主机指纹;确认目标无误,再完成认证。
  • 配置公钥登录。私钥留在本地,不放进项目仓库,也不附在工单中。
  • 长任务使用你已配置的持久会话或流水线执行器,避免把本地终端在线状态当作任务保障。
查看 SSH 与构建示例

VNC:直接查看 macOS 桌面

适合调整工程设置、检查模拟器画面和定位仅在图形界面出现的问题。可使用 macOS 屏幕共享或 RealVNC 等兼容客户端,具体认证支持以客户端与实例设置为准。

  • 在客户端填入实例 IP 与 VNC 端口,不要把 SSH 端口用于桌面连接。
  • 使用详情页提供的桌面认证信息,不假设它与 SSH 的认证方式相同。
  • 首次尝试可从 1440 × 900 分辨率开始,再按本地屏幕和网络调整。
  • 客户端支持时先试 16 位色深;需要检查颜色细节时再提高画质。
查看桌面调优顺序

不要把 VNC 视为接入本地 USB 设备的替代品。模拟器测试与远程桌面可直接规划;依赖外接设备的测试,先确认设备接入条件,再决定租用方式。

从连接到测试结果

先核验指纹,再执行工程命令

以下是教学记录,不是当前节点的实时运行结果。命令中的环境变量须先在本地设为实例真实值;App 是示例 scheme,执行前改成工程中实际存在的名称。

metalvnc — tokyo-node — zsh
$ ssh -p "$SSH_PORT" "$MAC_USER@$MAC_IP"

The authenticity of host cannot be established.
ED25519 key fingerprint is displayed by your SSH client.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes
Authenticated using publickey.

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

$ xcrun simctl list devices available
== Devices ==
Available simulators are listed by the installed runtime.

$ xcodebuild -scheme App -destination 'platform=iOS Simulator' test
Test Suite 'AppTests' started.
Executed 128 tests, with 0 failures.
** TEST SUCCEEDED **

$ fastlane beta
Build processing completed.
Upload completed successfully.
fastlane finished successfully.

阅读顺序:确认 SSH 认证成功 → 检查工具链 → 检查模拟器 → 运行测试 → 检查打包上传结果。

示例中的 128 项通过、0 项失败仅用于说明日志读法;实际测试数量、耗时与上传结果由你的工程决定。

指纹不一致,先停下来核对

首次连接时,把终端显示的指纹与可信来源提供的记录核对;详情页未提供指纹时,通过控制台工单确认。后续出现主机身份变化提示,不要直接删除旧记录绕过检查,先确认是否发生过重装或实例更换。

命令能执行,不代表工程已配置

运行测试前确认 Xcode 路径、模拟器运行时、工程依赖和共享 scheme。fastlane beta 需要项目内已有对应 lane、签名材料和上传凭据;它不是任意工程都能直接执行的通用上传命令。

用同一口径比较节点

先测往返延迟,再判断桌面手感

可选节点为新加坡、东京、首尔、香港。来源城市与节点之间的线路,比地理距离更能影响操作反馈;同一城市的不同运营商也可能得到不同结果。

数据状态:当前未提供可核验的逐城市测量样本,表内如实标为“未采样”,不把估算范围写成实测中位数。选择前请用自己的网络测量;需要预先评估线路时,可通过邮箱或控制台工单咨询。

来源城市 × 节点:ICMP 往返延迟中位数,单位 ms
测试来源城市新加坡东京首尔香港
上海未采样未采样未采样未采样
深圳未采样未采样未采样未采样
台北未采样未采样未采样未采样
曼谷未采样未采样未采样未采样
悉尼未采样未采样未采样未采样
洛杉矶未采样未采样未采样未采样
统一采样口径:家庭宽带、北京时间晚高峰,向每个目标发送 100 次 ICMP 请求,对成功响应的往返时间取中位数,并另记丢包率。此表是待采样记录,不是已完成的测量报告;后续结果仅供选型参考,不构成延迟承诺。

在本地发起,不在远端测自己

macOS 或 Linux 可在本地执行下面的命令。Windows 可使用 ping -n 100 加目标 IP。记录来源运营商、时段、成功响应数与原始输出,比较时保持网络和条件一致。

ping -c 100 "$MAC_IP"

中位数之外,再看抖动与丢包

ping 汇总的平均值不是中位数,需从每次响应的原始时间计算。持续丢包或偶发高延迟会让 VNC 拖动卡顿,即使中位数不高也可能不好用。ICMP 被过滤不等于 SSH 或 VNC 不可用,应继续检查实际连接端口。

最后用同一分辨率、色深和操作序列试桌面:输入一段文字、拖动一个窗口,再观察刷新是否稳定。

一次只改一个变量

把桌面流量留给真正要看的画面

先用低负载设置建立基线,再逐项提高画质。每改一项,重复输入、滚动和窗口拖动;不要同时调整四个选项,否则很难判断哪一步起作用。

  1. 01

    降低色深

    客户端允许时先选 16 位色深或较低画质档,减少每次刷新传输的数据。查看设计稿、颜色或截图问题时再恢复较高画质;低色深画面不适合作为颜色验收依据。

  2. 02

    关闭动态壁纸

    改用静态壁纸,停止无关视频和持续动画。背景也在刷新时,带宽会被与你当前任务无关的像素占用。检查模拟器动画时,只保留需要观察的窗口。

  3. 03

    限制分辨率

    从 1440 × 900 开始,能看清编辑器和测试窗口后再增大。不要仅因为本地显示器支持高分辨率就同步拉高远端桌面;像素增多会提高传输和解码负担。

  4. 04

    弱网优先命令行

    构建、依赖安装和日志检查交给 SSH,确实需要界面时再打开 VNC。把产物与日志分开回传,避免大文件传输和桌面刷新同时争用上行链路。

连接之后,先收紧权限

先保留退路,再修改认证

独享物理机意味着环境由你管理,不意味着公网连接自动安全。任何认证或防火墙变更,都先保留一个已连通的会话,再用第二个会话验证新设置。

更改初始密码

交付后尽快替换初始密码,使用独立、足够长的密码,不复用代码托管或邮箱密码。凭据只保存在受控的密码管理工具中,不写进构建日志与仓库。

验证:新开会话测试新凭据,确认成功后再关闭旧会话。

SSH 仅用密钥登录

先安装公钥并验证私钥登录,再调整 SSH 认证策略。为自动化任务使用独立密钥,按任务分配权限;人员退出或密钥泄露时及时撤销对应公钥。

验证:第二个终端能使用指定私钥连接,不依赖旧会话。

按需开放端口

仅保留任务需要的入口,条件允许时限制来源 IP。远程桌面优先走受保护的连接方式;SSH 与 VNC 规则分别确认,不要为排障长期关闭整套防护。

验证:所需端口可达,不需要的入口保持关闭。

离开时锁定桌面

结束调试时锁屏并断开客户端,清理临时下载的敏感材料。团队协作不要共用同一份私钥;构建所需的密钥和证书按团队既有流程管理。

验证:重新访问桌面时需要认证,日志与截图不含秘密。

按连接链路逐层排查

连不上时,不要先重装系统

先区分超时、拒绝连接和认证失败。一次只验证一层,保留原始错误;反复修改密码、端口和防火墙,会让最初的问题失去线索。

  1. 01

    核对 IP 与实例

    重新打开控制台机器详情,确认实例已交付、目标地址属于当前机器。不要使用旧笔记、截图或另一台机器的地址;也不要把示例中的变量名直接填入客户端。

  2. 02

    核对协议与端口

    SSH 客户端使用 SSH 端口,VNC 客户端使用桌面端口。“超时”优先查网络与规则;“拒绝连接”优先查端口和服务是否监听。ping 可达不代表应用端口可达。

  3. 03

    核对用户名与凭据

    出现认证失败时检查用户名、密钥文件及客户端所选认证方式。排除复制时多出的空格,确认使用的是当前实例的凭据。主机指纹异常先核验身份,不绕过警告。

  4. 04

    检查本地网络策略

    检查本机防火墙、代理、公司出口和客户端权限。可在获准的另一条网络复测,判断问题是否随线路变化。不要通过永久关闭安全软件来换取一次连接成功。

仍未恢复:提交一份能复现的工单

写明实例标识、连接协议、目标端口、错误原文、发生时间与时区,以及已完成的排查步骤。说明“SSH 可用但 VNC 不可用”比只写“连不上”更有帮助;截图和日志先移除密码、私钥、令牌与其他敏感内容。

已购机器的问题在控制台提交工单,便于关联实例。售前线路或客户端兼容性咨询可发送邮件至 support@metalvnc.com。

连接方式已明确

挑一个离你最近的节点开机

比较两档 M4 的内存与存储,再选择节点和计费周期。先用实际网络验证 SSH 与桌面体验,再安排持续构建任务;可用性以控制台实时返回为准。