VNC
适合 Windows、Linux 和 iPad 用户。远程打开 Xcode、检查构建设置、处理需要点击确认的系统对话框。
- 填写主机地址、端口及图形服务要求的认证信息。
- 优先通过 SSH 隧道接入,不把普通 VNC 连接等同于加密连接。
- 客户端需支持节点启用的认证方式;协议不匹配时先更换认证设置。
选择依据:本地不是 Mac,但需要完整 macOS 图形界面。
需要图形界面,就用 VNC 或 macOS 屏幕共享;只跑构建和脚本,就用 SSH。你连接的是一台独享 Apple Silicon 物理节点,不是虚拟机。
已有订单?在控制台的实例详情中核对 IP、用户名和接入端口,再按下方步骤连接。本文中的主机地址与端口是配置示例。
本地 VNC 客户端或 macOS 屏幕共享
SSH 隧道 → 节点图形桌面本地终端或 CI runner
SSH → 命令行与构建进程端口以实例实际交付信息为准。VNC 与屏幕共享通常使用同一图形服务,不代表两套独立桌面。
适合 Windows、Linux 和 iPad 用户。远程打开 Xcode、检查构建设置、处理需要点击确认的系统对话框。
选择依据:本地不是 Mac,但需要完整 macOS 图形界面。
本地使用 Mac 时的首选。直接调用系统自带的屏幕共享客户端,不必另外安装桌面查看器。
选择依据:本地也是 Mac,希望减少客户端配置步骤。
适合执行 xcodebuild、查看日志、同步工程与管理 runner。不持续传输桌面画面,更适合长时间构建。
选择依据:任务可以写成命令,或需要接入 CI 流水线。
下表以 SSH 端口 22、VNC 服务端口 5900 为例。实际端口不同,就替换对应数字。图形服务密码与 SSH 用户密码是否相同,以交付说明和节点当前设置为准,不要反复混用。
| 本地系统 | 图形客户端建议 | 图形地址与端口填写 | SSH 接入 |
|---|---|---|---|
| Windows | TigerVNC Viewer,先确认支持节点当前的 VNC 认证方式。 | 直连时使用客户端的 Host / Port 字段。按下文建立隧道后,Host 填 127.0.0.1,Port 填 15900。 |
Windows Terminal 配合 OpenSSH 客户端,执行 ssh -p 22 build@HOST_IP。 |
| Linux | Remmina 的 VNC 模式,或兼容认证方式的 TigerVNC Viewer。 | 通过隧道连接 127.0.0.1:15900;若客户端使用独立端口字段,分别填写,不填写显示编号。 |
终端中的 OpenSSH。先完成普通 SSH 登录,再建立本地端口转发。 |
| macOS | 系统自带“屏幕共享”。 | 直连地址为 vnc://HOST_IP:5900;通过隧道时为 vnc://127.0.0.1:15900。 |
终端中的 ssh。也可用 open 命令启动屏幕共享地址。 |
| iPad | 支持 macOS 认证及 SSH 隧道的 VNC 客户端。 | 在客户端内配置 SSH 主机与认证,再将图形目标设为节点侧 127.0.0.1:5900;具体字段名以客户端为准。 |
使用支持密钥导入的 SSH 客户端。先验证密钥登录,再启用客户端内置转发。 |
从控制台读取节点 IP、SSH 端口和用户名。首次连接时核对主机指纹;如控制台未显示指纹,通过工单确认。重装后可能发生指纹变化,应先核实再更新本地记录,不要用关闭主机校验的参数绕过提示。
首次进入后执行 passwd 修改当前用户密码,并确认图形服务使用哪种认证。若使用独立 VNC 密码,也要单独更新。密码不要写入仓库、构建日志或共享脚本。
把本地生成的公钥加入节点的 ~/.ssh/authorized_keys,私钥只留在可信客户端。新开一个终端验证成功后,再考虑收紧密码认证;原连接先保留,避免一次改动把自己锁在节点外。
仅在需要桌面操作时开启图形服务。macOS 中检查“系统设置 → 通用 → 共享 → 屏幕共享”,限制可访问用户。需要关闭或调整服务时,先确认 SSH 可用;隧道加密不等于远端端口已自动停止对公网监听。
以下命令在本地执行。build 与 HOST_IP 都要替换为交付值;生成密钥时为私钥设置口令。
ssh-keygen -t ed25519 -f ~/.ssh/armvnc_build
cat ~/.ssh/armvnc_build.pub
ssh -p 22 build@HOST_IP
登录节点后创建目录、编辑公钥文件,并设置权限。把上一条输出的完整公钥单独放在一行,不要粘贴私钥。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
回到本地,验证:ssh -i ~/.ssh/armvnc_build -p 22 build@HOST_IP
本地端口使用 15900,远端目标使用 5900。转发只绑定本机回环地址,不向同一网络中的其他设备开放。
ssh -i ~/.ssh/armvnc_build -p 22 \
-N -T \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-L 127.0.0.1:15900:127.0.0.1:5900 \
build@HOST_IP
命令保持运行且没有报错时,在图形客户端连接本机 15900 端口。macOS 可另开终端执行:
open 'vnc://127.0.0.1:15900'
隧道不会跳过 VNC 认证。用完退出图形客户端,再在隧道终端按 Ctrl + C 关闭转发。
以下是排查用的起始设置,不是带宽或延迟保证。客户端能否调整色深与压缩取决于协议实现。每次只改一项,用同一个操作比较,例如拖动 Xcode 窗口、滚动日志或输入一段文字。
优先让文字清晰。客户端窗口太小时,先启用等比缩放;不要同时提高远端分辨率和本地缩放倍数。
适合:Xcode 设置、日志检查、偶尔操作图形界面。
先关闭桌面动画与不必要的预览。高压缩可能降低画面细节;它能减少传输量,但不能消除网络往返时间。
适合:较远节点、移动网络、偶发丢包时的临时操作。
不需要看画面时,直接保存构建日志与产物。图形客户端断开不等于 macOS 退出登录,也不应作为停止任务的方法。
适合:常驻 CI、无人值守脚本、重复执行的构建任务。
节点选择也要区分用途:交互桌面更受你到节点的网络路径影响;纯构建则还要考虑仓库拉取、依赖下载与产物上传路径。不要用一次鼠标操作的流畅度推断编译性能。
先测试 SSH,再测试图形连接。SSH 正常而 VNC 失败时,重点检查图形服务和隧道目标;两者都失败时,先核对实例状态、地址、本地网络与端口。不要一开始就重装系统。
先区分连接断开和任务结束。重新建立 SSH 或图形连接后,检查原进程及日志;不要立刻再提交一次 archive,避免并发任务争抢资源或重复发布产物。
使用上文的 SSH 保活参数可帮助识别失效链路,但不能修复持续丢包。测试本地有线网络或另一条可信网络,再比较同一节点。长任务应交给 runner 服务或受管理的后台进程,而不是依赖一个始终打开的终端。
pgrep -fl xcodebuild
tail -n 80 ~/build.log
第二条命令仅适用于你已把日志保存到该路径的情况。若没有这个文件,查看你在构建脚本中设置的日志位置。
先关闭图形客户端的连接,再重新连接并确认没有开启“仅查看”模式。检查客户端是否仍能显示认证界面;认证完成后黑屏,和完全无法连接,是两类问题。
如果 SSH 可用,保留连接并核对屏幕共享设置、访问用户与当前会话。不要反复强制结束系统图形进程,也不要在仍有构建运行时直接重启。若仍无法恢复,在控制台提交工单,说明黑屏发生于锁屏前还是锁屏后,并附客户端名称与版本。
确认客户端允许剪贴板共享,并关闭“仅查看”限制。先用一小段纯文本测试双向复制;图片、文件与富文本不一定能通过同一剪贴板通道传输。
检查客户端是否要求单独发送剪贴板,必要时断开后重新建立会话。传工程文件改用 SCP 或 SFTP;不要把密码、私钥或完整签名资料放进共享剪贴板来测试功能。
超时通常发生在认证之前。核对 IP 与端口,检查本地网络是否限制该端口,再用详细日志观察连接停在哪一步。提示 Permission denied 时,重点检查用户名、公钥内容、文件权限与客户端选用的私钥。
ssh -v -i ~/.ssh/armvnc_build -p 22 build@HOST_IP
提交日志前删去用户名、IP 和本地敏感路径等非必要信息,绝不发送私钥或密码。主机指纹变化时,先确认是否发生过重装或实例变更,不要直接删除校验记录。
画面被裁切时,先看客户端的适应窗口或缩放设置,再检查节点“系统设置 → 显示器”。只调整客户端窗口大小,不一定会改变远端桌面的分辨率。
键盘错位时核对本地布局、客户端按键映射和远端输入法。先在普通文本编辑器中测试字母、数字与符号,再输入密码或命令;Windows 的 Ctrl / Alt 与 macOS 的 Command / Option 可能需要单独映射。
按使用指南准备环境;遇到开通、连接或计费问题,查帮助中心。尚未租用时,可先在下单页选择机型与节点。
仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),以 USD 结算。实际可用网关以结账时返回为准。