遇到问题?先按手册自查,再提工单

这页收录了连接、构建与网络三类最高频问题的排查命令。我们的工单里约 80% 的问题都能在 10 分钟内自助解决;剩下的,故障类工单首响不超过 2 小时。

Support Channels

支持渠道与响应 SLA

人工支持只有两条通道:控制台工单和邮箱。两条都由值班工程师直接处理,没有客服话术转接这一层。

控制台工单

适用:实例故障、退款申请、迁移预约等一切与具体机器相关的问题。路径:登录控制台 → 工单 → 新建。处理过程全程留痕,状态变化自动邮件通知。

首响 ≤ 2 小时

登录控制台提交工单

支持邮箱

适用:登录不了控制台、账户安全问题、发票与商务事项。发信到 support@armmini.com,正文写清注册邮箱与实例编号,能省一轮往返。

首响 ≤ 8 小时

文档与自助手册

本页的排查手册覆盖连接、构建、网络三类问题;如何连接有完整的 VNC/SSH 教程与故障速查表;常见疑问收录计费与权限类条目。先查手册,通常比等首响更快。

按严重级别的响应承诺

级别典型场景工单首响进展更新建议渠道
P1实例不可达 / 节点级故障≤ 30 分钟每 60 分钟控制台工单
P2单项功能受损(如 VNC 可用但 SSH 不通)≤ 2 小时每 4 小时控制台工单
P3使用咨询、配置求助≤ 4 小时按处理进展工单或邮件
P4建议反馈、商务与合作≤ 24 小时按处理进展邮件

支持团队按 UTC+8 与 UTC-8 双时区排班,SLA 按自然小时计,周末与节假日同样生效。级别由我们按影响面判定,不需要你在工单里自己标注。

提交工单前,请备好这些信息

Self Service

自助操作台:四个动作,零工单解决

重启、重装、重置凭据都不需要人工介入。控制台的电源操作走带外通道,系统彻底卡死也能生效——这是独享物理机的好处之一。

一键重启

路径:控制台 → 实例 → 电源 → 重启。整机断电再上电,约 90 秒恢复;磁盘数据不受影响,但未保存的工作会丢失。VNC 黑屏、系统无响应时的首选动作。

重装 macOS

路径:控制台 → 实例 → 系统 → 重装。可从版本列表中选择目标 macOS;重装是全盘擦除,25~40 分钟完成,新的 VNC/SSH 凭据通过邮件下发。每个计费周期含一次免费重装。

重置 VNC 密码

路径:控制台 → 实例 → 访问 → 重置 VNC 密码。即时生效,新密码只在页面上显示一次,请立即保存。忘记密码、怀疑泄露或交接机器时使用,不影响 SSH 与机内数据。

更换 SSH 公钥

路径:控制台 → 实例 → 访问 → SSH 公钥。粘贴新公钥后 60 秒内写入 authorized_keys,可勾选同时吊销旧密钥。支持 ed25519 与 RSA(≥3072 位),一台实例最多保留 5 把。

Troubleshooting

故障排查手册:三类最高频问题

按步骤走,每一步都有可核对的输出。走完仍未解决,把最后一步的命令输出贴进工单,我们能直接从中断点接手。

VNC 连上了,但屏幕全黑

症状:VNC 客户端显示已连接,画面纯黑或停在灰屏,鼠标键盘无响应。

  1. 先用 SSH 登录,确认机器本身在线。SSH 也不通,直接跳到控制台重启。
  2. 检查屏幕共享服务是否在运行(第 1 条命令),没有输出即服务未启动。
  3. 用 kickstart 重启共享代理(第 2 条命令),约 10 秒后重连 VNC。
  4. 关闭显示器休眠(第 3 条命令),避免长时间空闲后再次黑屏。
  5. 仍黑屏:控制台 → 电源 → 重启,90 秒后重连;还不行就提 P2 工单。
fix-vnc-blackscreen
$ sudo launchctl list | grep -i screensharing
$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent -console
Done.
$ sudo pmset -a displaysleep 0 sleep 0

SSH 连接超时或被拒绝

症状:ssh 长时间无响应后报 Operation timed out,或立刻返回 Permission denied。

  1. 先 ping 实例公网 IP(第 1 条命令),不通则多半是网络链路问题,转网络自检
  2. 确认私钥文件权限是 600(第 2 条命令),权限过宽 ssh 会静默拒用该密钥。
  3. 加 -vvv 观察握手卡在哪一步(第 3 条命令):卡在 connect 是端口不通,卡在 auth 是密钥问题。
  4. 如果你改过机内 pf 防火墙,检查是否把 22 端口关掉了(第 4 条命令);被自己的规则锁在门外时,先用 VNC 登录桌面,执行 sudo pfctl -d 临时停用规则再修正。
  5. 密钥彻底丢失:控制台 → 访问 → 更换 SSH 公钥,60 秒内生效。
fix-ssh-timeout
$ ping -c 5 <实例公网IP>
$ chmod 600 ~/.ssh/id_ed25519
$ ssh -vvv -o ConnectTimeout=10 dev@<实例公网IP>
$ sudo pfctl -sr | grep 22

Xcode 命令行签名失败

症状:xcodebuild 在 CI 里报 errSecInternalComponent 或 User interaction is not allowed,本地 GUI 构建却正常。

  1. 这几乎总是钥匙串在无 GUI 会话里被锁定导致的。先解锁登录钥匙串(第 1 条命令)。
  2. 授权命令行工具访问签名私钥(第 2 条命令),否则每次签名都会等一个永远不会出现的弹窗。
  3. 确认签名身份确实存在(第 3 条命令),输出为 0 valid identities 说明证书没导入或已过期。
  4. 在 CI 脚本里,把第 1、2 条命令放在 xcodebuild 之前执行,密码走环境变量注入,不要写死在仓库里。
fix-codesign
$ security unlock-keychain -p "$KEYCHAIN_PASS" ~/Library/Keychains/login.keychain-db
$ security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASS" ~/Library/Keychains/login.keychain-db
$ security find-identity -v -p codesigning
1 valid identities found

更多连接类症状见「如何连接」页的故障速查表

CI Integration

CI 集成指引:把实例注册成 self-hosted runner

runner 安装包从你所用 CI 平台的 runner 设置页下载 arm64 macOS 版本,以下命令在实例的 SSH 会话里执行即可。

GitHub Actions runner

gha-runner-setup
$ mkdir ~/actions-runner && cd ~/actions-runner
$ tar xzf actions-runner-osx-arm64.tar.gz
$ ./config.sh --url <仓库或组织地址> --token <注册令牌> --labels self-hosted,macos,arm64
$ ./svc.sh install && ./svc.sh start
√ runner service started

svc.sh 装成 launchd 服务而不是前台跑 run.sh:断线自动重连、实例重启后自动拉起,不需要额外保活脚本。注册令牌有效期只有一小时,过期重新生成即可。

GitLab Runner

gitlab-runner-setup
$ brew install gitlab-runner
$ gitlab-runner register --executor shell --url <你的 GitLab 地址> --token <认证令牌> --tag-list macos,xcode,arm64
$ brew services start gitlab-runner
Successfully started `gitlab-runner`

executor 选 shell,构建直接跑在 macOS 用户会话里,能完整访问 Xcode 工具链与模拟器。并发数建议保持 1:Apple Silicon 上单 job 独占全部性能核,比两个 job 抢核更快。

keychain 与缓存持久化三要点

专用构建钥匙串

别把 CI 证书混进 login 钥匙串。建独立的 build.keychain,超时设 21600 秒(6 小时),每个 job 开头执行一次 unlock,签名弹窗问题从根上消失。

DerivedData 固定路径

给 xcodebuild 传 -derivedDataPath 指向 job 之外的固定目录。独享物理机上缓存跨 job 常驻磁盘,大型 Swift 项目增量编译比全量快 40%~70%。

模拟器预建

xcrun simctl create 预建常用机型并保持常驻,UI 测试跳过模拟器冷启动,单 job 通常省 60~90 秒。实例不回收,预建一次长期有效。

ci-cache-keychain
$ security create-keychain -p "$PASS" build.keychain
$ security set-keychain-settings -lut 21600 build.keychain
$ security unlock-keychain -p "$PASS" build.keychain
$ xcodebuild -scheme App -derivedDataPath ~/ci-cache/DerivedData build
Network Check

网络自检:先测链路,再提工单

五个节点各有一个与业务实例同机柜出口的测试地址,测它就等于测你的实例。各地实测延迟参考值见「如何连接」页的节点延迟表

节点测试地址机房区域说明
东京ping.tyo.armmini.com东亚与东京实例同出口,延迟可代表实际体验
首尔ping.icn.armmini.com东北亚与首尔实例同出口
硅谷ping.sjc.armmini.com北美西岸与硅谷实例同出口
network-selfcheck
$ ping -c 20 ping.tyo.armmini.com
20 packets transmitted, 20 received, 0% loss
$ mtr -rwzbc 100 ping.tyo.armmini.com > mtr-report.txt
-r 报告模式 -c 100 采样一百个包,约两分钟

网络工单怎么提才快

  1. 本地跑 mtr -rwzbc 100 到对应节点测试地址,保存报告。
  2. SSH 登录实例,反向对你的本地公网 IP 再跑一次——单向报告只能看到一半链路。
  3. 工单里注明运营商、接入方式(家宽/企业专线/蜂窝)与故障时间段。
  4. 把两份报告原文粘进工单,选 P2 级别。

机房出口侧的问题我们当天处理;跨网中间链路的丢包需要与上游逐跳核对,定位通常需要 1~2 个工作日,处理进展会在工单里持续更新。

Availability & Incidents

可用性与事故机制

所有节点全年 365 天连续运行,不存在需要你预约配合的服务中断;节点侧硬件更换以备机顶替完成,不占用你的使用时间。真出了故障,流程如下,全程可核对。

T+0

监控告警触发,值班 SRE 介入。五节点均为 7×24 有人值守轮班。

T+10min

确认影响面,向受影响用户发送第一封事故邮件:症状、范围、预估恢复时间。

处理中

每 60 分钟邮件更新一次进展,直到恢复,不玩「静默修复」。

恢复 +24h

按月度 99.5% 在线承诺核算故障时长,应补偿的服务时长自动计入账户,不需要主动申请。

恢复 +72h

复盘报告发布:根因、完整时间线、改进项,通过邮件发送并同步在控制台公告。

你能核对什么

月度在线承诺99.5%
首封事故邮件≤ 10 分钟
处理中更新频率每 60 分钟
补偿入账恢复后 24 小时内
复盘报告恢复后 72 小时内

时长补偿的具体档位与除外条款(不可抗力、用户自身操作)见服务条款第五章。如果你监测到的中断没收到我们的事故邮件,请直接提 P1 工单,我们按你的监测记录核对。

Migration

迁移协助:跨节点或从别处搬过来,人工免费

换节点、从其他服务商或本地 Mac 迁到 ArmMini,工程师提供一对一免费协助。范围和边界如下,先看清再预约。

免费协助包含

  • 迁移方案评估:按数据量与目录结构给出 rsync/scp 命令与预计耗时
  • CI runner 重新注册:新实例上的 runner 配置与标签迁移指导
  • 防火墙规则复刻:把源实例的 pf 规则与端口策略搬到新实例
  • 迁移后 24 小时观察期:期间迁移相关问题按 P2 优先处理

边界(不包含)

  • 机内商业软件的重新授权与激活,请联系对应软件厂商;
  • 超过 500GB 的数据搬运不承诺完成时限,以链路实测带宽为准;
  • 从 ArmMini 迁出到第三方环境的反向操作,仅提供数据导出命令。
migrate-rsync
$ rsync -avzP --exclude 'Library/Caches' -e ssh ~/work/ dev@<新实例IP>:~/work/
-P 支持断点续传,东京→首尔同区段实测约 45~80MB/s
sent 182.4G  speedup is 1.31

如何预约

  1. 控制台 → 工单 → 新建,分类选「迁移协助」;
  2. 提前 48 小时提交,注明源环境、目标节点与数据量;
  3. 跨节点迁移建议保留源实例到验证完成再退订,同节点升档可按剩余天数补差价,规则见套餐页;
  4. 约定时段内工程师在工单里同步每一步操作,你随时可以叫停。

排查完还没解决?给我们 2 小时

把最后一步的命令输出贴进工单,值班工程师从你的中断点直接接手。故障类工单首响不超过 2 小时,周末与节假日同样生效。