SSH 登入
在控制台開啟對應實例,確認主機名稱、SSH 連接埠和使用者名稱。在本機終端機執行以下命令,並將大寫參數替換為實例提供的實際值。
ssh -p SSH_PORT USER@HOST
SSH 常用連接埠為 22,但實例可能使用不同的對外連接埠。首次連線前請確認主機指紋;若指紋變更,先查明原因,請勿直接忽略警告。
連線逾時時,先檢查主機名稱、網路和連接埠;若遭拒絕存取,再確認使用者名稱和驗證方式。請勿將密碼或私鑰貼到公開日誌。
先從控制台取得連線資訊,再測試 SSH 或螢幕共享。以下依實際操作順序,說明如何傳輸檔案、執行建置,以及在到期前妥善備份資料。
已租用?主機名稱、連接埠、使用者名稱與到期時間,請以登入後控制台顯示的實例資訊為準。請勿將本文範例視為實際連線資訊。
命令列工作使用 SSH;需要操作 macOS 圖形介面時使用螢幕共享;透過 SSH 傳輸專案和建置成果。請勿猜測連接埠並反覆嘗試。
在控制台開啟對應實例,確認主機名稱、SSH 連接埠和使用者名稱。在本機終端機執行以下命令,並將大寫參數替換為實例提供的實際值。
ssh -p SSH_PORT USER@HOST
SSH 常用連接埠為 22,但實例可能使用不同的對外連接埠。首次連線前請確認主機指紋;若指紋變更,先查明原因,請勿直接忽略警告。
連線逾時時,先檢查主機名稱、網路和連接埠;若遭拒絕存取,再確認使用者名稱和驗證方式。請勿將密碼或私鑰貼到公開日誌。
從控制台取得螢幕共享位址、連接埠和驗證資訊,並在本機螢幕共享 App 或相容的 VNC 用戶端中輸入。請勿沿用 SSH 連接埠。
VNC 常用連接埠為 5900,實際對外連接埠仍以實例資訊為準。請勿將螢幕共享驗證資訊放進截圖或團隊共用文件。
請優先使用安全的連線方式。若需要 SSH 通道,可將本機的 5901 轉送至實例上的 VNC 服務,再連線至本機位址。
ssh -N -L 5901:127.0.0.1:VNC_PORT -p SSH_PORT USER@HOST
只有在 VNC 服務於該實例上監聽,且允許 SSH 轉送時,以上轉送方式才適用。黑畫面與驗證失敗是不同問題,提交支援單時請分別說明。
先確認 SSH 可正常登入。檔案傳輸也透過 SSH 連接埠進行,不必另外開放檔案傳輸服務。小型檔案使用 scp;需要反覆同步專案目錄時使用 rsync。
scp -P SSH_PORT ./build.zip USER@HOST:~/
rsync -av -e "ssh -p SSH_PORT" ./project/ USER@HOST:~/project/
請注意,scp 的連接埠參數是大寫 -P,SSH 則是小寫 -p。rsync 來源路徑結尾的斜線,表示同步目錄中的內容。
首次同步時不要使用自動刪除選項。先確認目標路徑和檔案數量,再傳輸大量素材。下載完成後請驗證壓縮檔完整性,不能只看進度列是否跑完。
以下是用來辨識三個不同階段的操作範例。範例主機名稱並非可連線服務,輸出也不是即時工作狀態。
$ ssh admin@jp-0417.node.vpskeep.com
Welcome to your dedicated Mac mini.
$ xcodebuild -scheme App archive
** ARCHIVE SUCCEEDED **
$ fastlane beta
Successfully uploaded package to App Store Connect.
表示已進入遠端工作階段,不代表專案環境已安裝完成。接著執行 sw_vers 和 xcodebuild -version,並記錄系統與工具版本。
ARCHIVE SUCCEEDED 表示封存階段已成功。範例中的 App 是 scheme 名稱;實際專案還需指定 workspace 或 project、目標平台和輸出路徑。封存成功不代表已完成匯出或發佈。
beta 是專案自行定義的 lane,必須先設定簽章與發佈驗證。上傳成功後仍須檢查平台處理結果;本機命令執行完畢,不代表內容已可供測試。
疑難排解時,請保留失敗的命令、結束代碼,以及錯誤訊息前後的日誌。只提供最後一行「失敗」,通常不足以找出環境、簽章或網路問題。
同一專案在本機和遠端使用不同版本,可能導致相依套件解析或建置結果不同。先記錄版本,再逐項調整;請勿同時更新工具鏈和專案相依套件。
執行以下兩個檢查命令。若機器上安裝了多個 Xcode,可切換系統預設目錄;若只需影響目前工作,建議在程序環境中設定 DEVELOPER_DIR。
xcode-select -p
xcodebuild -version
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer xcodebuild -version
路徑必須對應實際安裝的 App。是否已預先安裝目標版本,請以實例環境為準;需要安裝其他版本時,請使用合法授權的安裝套件,並先確認磁碟空間足夠。
在 Xcode 設定中的平台或元件管理頁面,安裝與專案相符的執行環境。頁面名稱會隨版本不同;安裝後列出可用裝置,再選擇測試目標。
xcrun simctl list runtimes
xcrun simctl list devices available
df -h
模擬器、DerivedData 和封存都會占用儲存空間。大量測試前先以單一裝置驗證,再逐步增加並行工作數;模擬器測試不等同於 iOS 實機測試。
透過安全通道,將已授權的簽章憑證、配套私鑰和描述檔傳至實例。將憑證匯入工作使用的鑰匙圈,並依所用 Xcode 版本的要求安裝描述檔;接著確認 Team、Bundle ID、憑證有效期限和目標發佈類型。
security find-identity -v -p codesigning
CI 請使用獨立的建置鑰匙圈,並將密碼存放在存取受限的密鑰變數中。非互動式工作還須確認鑰匙圈已解鎖,且簽章工具具備存取權限;不能只因圖形介面看得到憑證,就認定設定完成。
離開實例前,請移除不再需要的簽章私鑰、權杖和描述檔。提交支援單時只提供憑證名稱和錯誤訊息,不要傳送私鑰、密碼或完整憑證資料。
Keep M4 L 配置為 M4 / 24GB / 512GB,可作為多分支建置的起點。並行數量應以專案實測為準,不能直接用 CPU 核心數推算可同時執行多少個 UI 測試。
前往儲存庫或組織設定中的 Actions runner 頁面建立註冊流程,選擇 macOS 和相符的架構,再依頁面提供的命令下載並註冊。註冊權杖只在必要期間使用,請勿寫入程式碼儲存庫。
為實例加上清楚的標籤,例如 macos、arm64 和團隊用途標籤。工作流程依標籤選擇機器,避免將簽章工作指派到未安裝憑證的環境。
runs-on: [self-hosted, macOS, ARM64]
先手動啟動 runner 並執行一項測試工作,再使用 runner 隨附的服務指令碼安裝常駐服務。執行帳號必須能存取專案目錄、Xcode 和建置鑰匙圈。
安裝符合實例架構的 GitLab Runner,在專案或團隊管理介面取得註冊資訊,再執行 gitlab-runner register。若需要原生 Xcode 工具鏈,可依團隊安全規範選擇 shell executor。
shell executor 會直接在機器上執行工作。僅接收可信任的專案,並限制可讀取簽章金鑰的分支與工作;請勿將不受信任的貢獻程式碼交給具備正式環境憑證的實例執行。
gitlab-runner --version
gitlab-runner verify
先確認註冊與工作派送正常,再依安裝方式設定服務。建置目錄、快取目錄和日誌輸出位置都應記錄在團隊交接文件中。
macOS 常駐程序通常由 launchd 管理。使用者層級的 LaunchAgent 和系統層級的 LaunchDaemon 啟動條件不同;若服務依賴圖形工作階段或使用者鑰匙圈,不能直接套用系統層級的啟動設定。
GitHub Actions runner 的診斷檔案通常位於安裝目錄的 _diag 資料夾;工作步驟日誌可在工作流程頁面查看。GitLab Runner 的服務輸出取決於安裝和啟動方式。自行設定 launchd 時,請明確指定 StandardOutPath 和 StandardErrorPath,不要假設系統一定有統一的日誌檔案。
記錄 runner 名稱、執行帳號、Xcode 版本、工作目錄和日誌路徑。並行工作請使用不同的 DerivedData 和產物目錄;若輸出檔同名而互相覆寫,偶發失敗可能會被誤認為是機器問題。
Keep M4 Pro 配置為 M4 Pro / 64GB / 2TB。統一記憶體由系統、模型和其他程序共用,不能把全部容量都當成模型權重的預算。以下僅估算權重用量,不代表執行速度或保證能夠運作。
| 模型參數量 | 4-bit 權重估算 | 8-bit 權重估算 | 載入前檢查 |
|---|---|---|---|
| 約 7B 參數 | 約 3.3 GiB | 約 6.5 GiB | 適合先驗證安裝、模型格式與短上下文生成。 |
| 約 14B 參數 | 約 6.5 GiB | 約 13.0 GiB | 先測試單一請求的記憶體峰值,再考慮批次工作。 |
| 約 32B 參數 | 約 14.9 GiB | 約 29.8 GiB | 長上下文和並行請求可能大幅增加 KV cache 用量。 |
換算公式:參數量 × 位元數 ÷ 8 ÷ 2³⁰,結果以 GiB 表示並四捨五入至小數點後一位。量化群組、縮放係數、未量化層、KV cache 和執行時緩衝區都會增加實際用量;模型檔案大小也不等於記憶體峰值。
先確認 Python 版本符合所用 MLX 套件的要求,再建立虛擬環境。安裝來源和模型檔案必須可供存取,且你已取得模型使用授權;下載前請確認磁碟空間足夠。
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install mlx mlx-lm
python -m mlx_lm.generate --model ./models/model --prompt "Explain unified memory." --max-tokens 128
./models/model 指向已準備好的相容模型目錄。首次執行時使用短輸入和少量輸出進行驗證,再逐步增加上下文長度。記錄模型版本、量化方式、輸入長度和記憶體峰值,以便重現結果。
若記憶體壓力持續升高或交換空間快速增加,請先縮短上下文、減少批次大小和並行請求數。增加 SSD 可擴充儲存空間,但不會增加統一記憶體,也無法取代妥善的模型記憶體配置。
日租、週租、月租和季租是四種可選計費週期。到期時間是安排工作的截止點,請勿等到最後一次建置才開始搬移資料。節點全年 365 天正常運作,租期和交付狀態仍以個別訂單資訊為準。
登入控制台,查看對應實例或訂閱的到期時間,再進入續租流程。付款前請確認機型、節點、所選週期、加購項目和應付總額。更換週期的生效時間及是否須補差額,請以該筆訂單顯示的規則和報價為準;付款後請確認新的到期時間已更新。
需要更多素材空間時,可查看 +1TB SSD 或 +2TB SSD;需要 Thunderbolt 5 並聯時,請先確認工作流程和設備是否支援。加購項目不會改變原機型的統一記憶體。請先在控制台確認可選項目、計費週期和交付要求,再提交設定變更;若涉及磁碟或工作調整,請先備份並停止相關寫入。
匯出程式碼、素材、建置成果和必要設定,下載至自行管理的儲存空間,並實際測試還原。停止 runner 和自動化工作,撤銷短期存取權杖,清除簽章私鑰和不再需要的憑證。請勿只因遠端目錄已打包,就認定備份完成。
請勿將到期後的資料保留視為備份方案。資料保留期限、清除進度及能否還原,請查看訂單中的資料處理說明;若內容不清楚,請提前透過支援單確認。已清除的資料不應假設可以還原,重要內容務必在到期前搬出。
登入控制台提交支援單,問題會與你的訂單一併處理。每個問題請保留一張支援單,後續測試結果也持續補充在同一筆紀錄,避免資訊零散。
提供寄存編號或訂單編號、機型,以及實際使用的節點:新加坡、日本(東京)、韓國(首爾)或香港。請勿附上登入密碼或私鑰。
註明開始時間和時區、問題是否持續發生,以及最後一次正常使用的時間。說明問題是 SSH 逾時、驗證失敗、VNC 黑畫面,還是某個建置命令出錯。
列出最精簡的重現步驟、系統和工具版本、完整錯誤訊息,以及已執行的檢查。截圖前先遮蔽憑證;日誌中請移除權杖、憑證密碼和其他敏感欄位。
提供訂單編號、金額和付款方式。僅支援 USDT-TRC20 和 Visa / Mastercard / Amex(透過 Stripe),一律以美元結算;實際可用的付款閘道以後端回傳為準。使用 USDT 付款請提供交易雜湊,使用信用卡付款請提供收據編號,請勿傳送完整卡號。
暫時無法登入控制台時,請寄送電子郵件至 support@vpskeep.com並在信中註明帳戶電子郵件和訂單編號。無須在信中附上連線憑證。
先確認連線、單次建置和產物下載都正常,再啟用自動化。還沒選好機器?可從三種配置和四種計費週期開始挑選。