VPS Proxy Builder · Codex 執行入口
把配置、檢查與排障留給 Codex,讓使用者只處理購買、帳號登入、必要授權和無法遠端代辦的客戶端驗收。用使用者的語言溝通;不要求其理解協定參數,也不假設插件或一次腳本執行能保證成功。
先定位,再行動
本技能依賴整個 vps-proxy-skill 倉庫,不是獨立安裝包。從當前工作目錄定位包含 deploy/server-bootstrap.sh、deploy/preflight.py、cloudflare-worker/ 的倉庫。若技能被單獨複製到個人技能目錄,先獲取用戶可存取完整倉庫並切換到它;不要相對個人技能目錄執行部署。記錄本次 Git revision。歷史域名、IP、SSH alias、Cloudflare ID 與 US-* 名稱都是原實例記錄,不是用戶配置。
依據請求選擇模式:
- 僅閱讀/規劃/文件:解釋,不執行 SSH、部署、DNS 寫入或安裝插件。
- 新建:讀 準備與工具,再讀 部署步驟。
- 已有節點壞了:讀 診斷與恢復,先做唯讀對照;不得用完整 bootstrap 當修復按鈕。
- 驗收或交付:讀 驗收與交付。
涉及變更前讀倉庫 安全約定。僅載入當前階段需要的參考,不必讀完整歷史。
本次自動化的合約
用一段簡短計畫明確:目標 SSH alias/主機、系統、是否專用 VPS、域名歸屬、直連還是 Cloudflare 訂閱、允許改的服務與防火牆、預算限制和回退入口。目標不明確時只問最小缺失資訊。
確認這段計畫得到授權後,連續完成範圍內的檢查、配置和測試,不為每條普通命令重複詢問。購買、擴容、新建 VM、付費產品、改 IP、刪除現有業務、關閉監控、公開倉庫、輪換已使用的憑據或更改受影響範圍必須另獲授權。需要人工登入時暫停在那一步,說明點哪裡/授權什麼;禁止繞過權限或關閉 Codex 安全限制。
自動化基線:專用 Debian 13 / x86_64 / systemd / SSH 22 / 公網 IPv4 / 用戶控制的域名。ARM、Ubuntu、自訂 SSH 埠、NAT-only、僅 IPv6、共享業務主機屬於適配任務,不能跳過門禁硬跑。現有範本以中國家庭網路分流為場景;地域與策略必須向用戶說明,不把美國標籤套到其他國家。
必須保持的不變量
- 不能鎖出用戶:先用新會話證明非 root 管理員的金鑰登入和 sudo 可用,保留原會話/控制台。
ADMIN_SSH_VERIFIED=1是檢查結果的聲明,不是自動證明;腳本隨後會禁用密碼和 root SSH,並僅保留 22 埠。 - 不能覆蓋其他業務:列出監聽、Nginx、nftables/UFW、Docker 與 systemd 狀態。bootstrap 會重建本棧配置、替換 Nginx 預設站點、收緊入站規則、安裝固定版本並重啟。專用主機的快照/恢復控制台準備好後再部署。
- 不能重用作者配置:真實域名/alias 由用戶提供或已授權帳戶內驗證;Cloudflare 配置必須改用其 account/zone/KV。新入口不再內建作者預設值。
- 不能洩漏憑證:金鑰在伺服器產生;訂閱 URL 本身是 bearer 憑證,Base64 不是加密。私鑰/密碼/URI/YAML/令牌不進入 Git、日誌、聊天或公網轉換站。只交付用戶獨佔的檔案,參考交付章節。
- 不能把安裝當驗收:
active、TCP 可達、TLS 成功、完整協定可用、用戶網路可用是不同證據。用獨立臨時客戶端逐個測,不覆蓋其當前配置。 - 不能無限試錯:腳本第一次失敗先儲存脫敏證據並定位階段,不重複整套安裝、不並發部署。原節點惡化時先恢復已知配置。升級與證書簽發重試需針對根因,不用試錯消耗 ACME 配額。
依賴按能力檢查,不按插件名字猜測
- Codex 必須能讀取完整倉庫、執行本地終端、透過網路連接 SSH,且已獲得相應權限。VPS 不必安裝 Codex。
- GitHub 插件/連接器可用於倉庫存取;已授權的 Git/
gh也可以。插件不一定賦予終端克隆憑證。 - 選擇 Cloudflare 時推薦其官方插件並檢查可用工具與授權;缺少 DNS/Workers/KV/secret 能力時使用授權後的 API 或鎖定的 Wrangler。僅安裝插件不代表這些權限全有。
- 瀏覽器控制只在使用者希望協助控制台操作時使用;登入、MFA、付款留給用戶。不要要求其他無關插件,不安裝整包依賴。
工具安裝與官方資料入口見準備參考。不要求固定模型;能力不足、上下文遺失或工具受限時儲存可恢復進度,不承諾「任何模型無監督完成」。
完成定義與續接
交付兩個按客戶端標記的連結入口:Clash 與 v2rayN/v2rayNG/Shadowrocket;Cloudflare 沒配置好時只交付已驗證的直連入口。說明三種協定是同一台伺服器,不是多國出口;URI 訂閱不含 Clash 分流組。
報告已測試/失敗/待用戶測試,保留版本、日期、回滾位置、證書續期狀態和費用邊界。無法在用戶家庭網路測試時應明確「伺服器部署完成,家庭網路驗收待完成」,不能寫成全部驗收成功。
每個完整階段寫中文 worklog/YYYY-MM-DD-標題.md:做了什麼、為什麼、決策/坑、一句話亮點。恢復長任務只讀脫敏記錄與當前狀態,再繼續未完成步驟;不從頭部署,不記錄憑證。把新故障的條件、證據和可重用修復補入參考,而非把個案擴大或通用結論。