遇到問題?先照手冊排查,再送出工單

這頁整理了連線、建置與網路三大類最常見問題的排查指令。我們的工單裡約 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 搶核心更快。

鑰匙圈與快取持久化三要點

專用建置鑰匙圈

別把 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 小時,週末與假日同樣適用。