−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

用 REST API 和 curl 管理 VPS:狀態、電源、重灌、續約

訂購伺服器後您在控制台裡做的一切——查看狀態、重新開機、讀取監控數據、改名、重灌系統、續約幾個月、取消與撤銷取消——都寫成可直接複製的 curl 指令,並附真實回應。

透過 API 訂購伺服器只需一個請求,詳見用 4 次 API 呼叫訂購 VPS。本頁講的是之後的一切:平時在控制台裡點來點去的日常操作,寫成可以貼進腳本的 curl 指令。

下面每條指令都在發布前對我們的 API 實際執行過,回應是傳回結果的精簡版。

準備

兩個變數讓指令保持簡短:

export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'

權杖來自 POST /auth/register,或控制台中的 Settings → API tokens。如果別人也用這台機器,別把它留在 shell 歷史中;用 export EQVPS_TOKEN=$(cat ~/.eqvps_token) 從檔案讀取即可。

找到您的伺服器

curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"

每筆記錄都有一個類似 47HZ7YF 的 id。這是其他所有呼叫都要用的服務代碼。接著是一台伺服器的完整資訊:

curl -s $API/services/47HZ7YF -H "Authorization: Bearer $EQVPS_TOKEN"
{ "data": {
    "id": "47HZ7YF", "status": "active", "queued": false,
    "product": { "slug": "nano", "name": "Nano" },
    "specs": { "vcpu": 2, "memory_mb": 1024, "disk_gb": 15 },
    "hostname": "agent-box",
    "vm": { "state": "running", "uptime": 5340 },
    "access": { "method": "ssh", "host": "203.0.113.10", "port": 21521, "user": "root", "nat": true, ... } } }

access 告訴您如何登入。在附獨立 IPv4 的方案上連接埠是 22;在 NAT 方案上是您的專屬轉發連接埠。這個呼叫只讀取,迴圈輪詢是安全的。

如果下單時沒有提供 SSH 金鑰,root 密碼只顯示一次:

curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"

伺服器還在開機時,回應為 password_pending,一次性顯示不會被消耗。等半分鐘再問一次。

電源:start、stop、reboot

curl -s -X POST $API/services/47HZ7YF/power \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"action": "reboot"}'

action 為 start、stop 或 reboot。尚未啟用的伺服器(仍在建立,或因欠費被暫停)會傳回 409 Service is not active。這不是您腳本的錯誤。先檢查 status。

監控數據

curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"

以時間序列提供 CPU、記憶體、網路和磁碟數據。timeframe 為 hour(預設)、day、week 或 month。適合用 cron 工作在磁碟持續成長時提醒您。目前計費週期的流量計數見檢查速度和流量。

修改伺服器名稱

curl -s -X POST $API/services/47HZ7YF/hostname \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"hostname": "web-01"}'

新名稱由客體代理程式在執行中的系統內套用,Linux 上無需重新開機。如果伺服器已停止,或您移除了 qemu-guest-agent,呼叫會傳回 409 agent_unavailable,什麼也不會改變。

重灌系統

這會清空磁碟。API 要求您在 confirm 中輸入伺服器目前的主機名稱,這樣服務 id 寫錯的腳本就無法誤刪另一台機器:

curl -s -X POST $API/services/47HZ7YF/reinstall \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"os_id": 4, "confirm": "web-01"}'

os_id 來自 GET /products 中您方案的 available_os 清單,或伺服器本身的詳細資料。重灌在背景進行;輪詢 GET /services/{id},直到 status 再次變為 active。

續約和餘額

伺服器每月從預付餘額自動續約。查看這台伺服器更長期限的價格:

curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"

一次呼叫預付例如三個月:

curl -s -X POST $API/services/47HZ7YF/renew \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"months": 3}'

months 為 1、3、6 或 12,12 依含折扣的年繳價格計費。回應會顯示 paid_from_balance: true 並給出新的到期日。如果餘額不夠,什麼都不會扣:您會收到 paid_from_balance: false 和這張帳單的 checkout_url。儲值後,POST $API/invoices/{invoice_id}/pay 會用餘額支付這張帳單;如果仍然不夠,它會傳回同樣的 checkout_url,不扣任何費用。查看餘額和儲值:

curl -s $API/balance -H "Authorization: Bearer $EQVPS_TOKEN"

curl -s -X POST $API/balance/topup \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"amount": 25}'

儲值回應中包含 checkout_url。這是加密貨幣付款:Base、Ethereum 或 Polygon 上的 USDT、USDC 或 ETH。付款在鏈上確認後餘額入帳。付款是腳本唯一無法替您完成的步驟,除非它持有錢包。

也可以用 Monero,但只能作為人工核對的餘額儲值:您傳送 XMR、提交交易 id,我們核實後入帳。參見用 Monero 付款。

取消,以及反悔

安全的取消方式會讓伺服器一直運作到已付週期結束,只是不再續約:

curl -s -X POST $API/services/47HZ7YF/cancel \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"type": "end_of_period", "reason": "moving the project elsewhere"}'

reason 必填,寫幾個字就好。在日期之前改變主意了?

curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"

還有 "type": "immediate"。它會立即刪除伺服器及資料,需要 "confirm": "<hostname>",且無法撤銷。除非您真的這麼想,請使用 end_of_period。

讓權杖保持有效

新權杖預設有效一年。每個已驗證的回應都帶有 X-Token-Expires-At 標頭,腳本可以提前察覺。把權杖換成新的:

curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"

舊權杖會立即失效,所以在做任何其他事之前先儲存新權杖。

值得處理的錯誤

代碼意義怎麼辦
401權杖遺失、已撤銷或已過期更新或新建一個
402只扣餘額的操作(例如換方案)餘額不足儲值後重複同一呼叫
409伺服器狀態不對(尚未啟用、操作進行中、沒有可撤銷的內容)讀 message、查 status,稍後重試
422某個欄位錯誤或缺少回應會指出是哪個
429請求過多等待 Retry-After

想用 AI 用戶端而不是腳本來做?同樣的操作也有 MCP 工具——參見 AI 代理如何透過 MCP 自行維護 VPS 和 API 參考。還沒有伺服器?選擇方案。

常見問題

自動化 VPS 需要 MCP 伺服器嗎?

不需要。MCP 是為 AI 用戶端提供的便利;每個 MCP 工具底層呼叫的都是同一個 REST API。Shell 腳本、cron 工作或 CI 流程都可以用同一個權杖直接呼叫 curl。

權杖從哪裡取得?

透過 POST /auth/register(代理自行註冊)或在控制台中:Settings → API tokens。新權杖預設有效期一年;POST /auth/token/refresh 可在到期前換成新權杖。

一條錯誤的指令會刪掉我的伺服器嗎?

只有兩個呼叫會銷毀資料:重灌和立即取消。除非在 confirm 欄位中重複伺服器的確切主機名稱,否則兩者都拒絕執行。重新開機、停止、改主機名稱和續約都不會碰到您的檔案。

續約怎麼付款?

從預付餘額扣除。餘額足夠時伺服器每月自動續約;POST /services/{id}/renew 一次呼叫即可預付 1、3、6 或 12 個月。餘額不足時,同一呼叫不會扣款,而是傳回一張附加密貨幣付款連結的帳單。

有請求頻率限制嗎?

有,依權杖和操作分別限制——例如每分鐘 10 次權杖更新、每分鐘 20 張工單。每隔幾秒查詢一次狀態的腳本沒問題;在迴圈裡狂刷電源操作的腳本會收到附 Retry-After 的 429。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。