純 SSH 接力 vs 瀏覽器 code-server
純 SSH:OpenSSH 登入+可選埠轉發。code-server:TLS 後 WebSocket 串流編輯 UI,行程仍在 Mac。比的是暴露面與工作階段形狀,不是「瀏覽器可省分帳號」。
| 維度 | 純 SSH 接力 | code-server(瀏覽器) |
|---|---|---|
| 主要傳輸 | SSH+可選 TCP 轉發。 | TLS(常見 443)+長連 WebSocket 到 Node。 |
| 埠口故事 | 多人本機轉發易撞埠。 | 對外常單一監聽;預覽埠仍須分段(如 31xxx/32xxx)。 |
| 權限隔離 | 對齊每使用者 Unix 帳號;可用 ForceCommand。 |
權杖/SSO 外仍要分 OS 使用者;否則延伸可跨席讀權杖檔。 |
| 併發衝突 | CPU、flock 逾時;shell 變慢人會自限。 |
語言伺服器+ extension host 吃 RAM/CPU,易隱性抖動。 |
| 延遲敏感度 | 按鍵路徑薄,較耐高 RTT。 | 吃抖動;要穩定 WS 與代理緩衝策略。 |
| 斷線/不穩 Wi‑Fi | tmux、ControlMaster 恢復快。 |
重載易丟延伸狀態;自動儲存與信任規則須寫死。 |
埠口、權限與併發在同一主機
22 或 443 進線都共用同一顆核心與簽章現實。SSH 多把服務綁 127.0.0.1 再轉發,撞埠來自兩人選同一本機埠;code-server 收斂編輯器樹,但語言伺服器與預覽仍占高埠,請 runbook 劃段(例 31xxx/32xxx)。
權限:分帳號、共用群組管產物、umask 027,CI 與個人鑰匙圈分離。瀏覽器鑑權屬閘道層;全員同一 OS 使用者則延伸仍可互讀權杖。
併發:模擬器、公證、大包、GPU 任務應書面獨占並用日曆/Runner 標籤/檔案鎖;規則屢破則加機而非加隧道。
決策矩陣(if/then)
多列指向「拆池」=預算優先第二臺節點或獨立 CI,勿再堆轉發。
| 你觀察到的訊號 | 傾向選擇 | 備註 |
|---|---|---|
| 外包不便裝 SSH/管金鑰 | SSO/權杖+code-server | 短效權杖、每席獨立家目錄。 |
| 每人常態五條以上穩定轉發 | SSH+小型邊界反代 | API 收斂單一 TLS vhost。 |
| 政策禁對外 443 不明二進位 | 僅 SSH | 稽核經跳板;code-server 審完再上。 |
| 同 repo 頻繁交接 | 固定 URL 的 code-server | 仍守分支與鎖策略。 |
| 夜間 CI 常態吃滿 CPU | 拆池 | 先加算力/佇列,連線型態次要。 |
可執行閾值與反向代理注意
以下為單一池化 Apple Silicon、二~四人基線,依核心/磁碟上修。
- 互動併發:未限語言伺服器時,同機 code-server 建議 至多 2;編譯時閒置 RAM 中位常態 > 8 GiB 才考慮第三席。
- 自動化併發:與人同事機,吃滿編譯的 Runner 平行 1~2,其餘排隊。
- SSH keepalive:
ServerAliveInterval 30、ServerAliveCountMax 4、ControlPersist 10m;常換網改 30m。 - HTTP/WS 閒置逾時:對齊最長連結,常見 2700~7200 s,免 TLS 終止在連結中斷線。
- Extension host:關閉多餘內建延伸;每席 RSS 目標 < 約 1.5 GiB 再加人。
反向代理(不點名廠牌):TLS 在前終止;轉發保留 Upgrade/Connection;編輯器路由關回應緩衝;HTTP 與 WS 閒置逾時對齊或 WS 更寬。前有邊界網時確認 HTTP/2 合併不剝逐跳標頭。SSH 走 TCP 直通,避免被當 HTTP。
# 環境變數示例(路徑請自調;以專用 Unix 使用者執行)
export PASSWORD="" # 建議改權杖檔+SSO,勿長期明文
export HOST=127.0.0.1
export PORT=8443 # 僅迴圈繫結;對外 TLS 由反代終止
# 可選:暖機延伸時限制新連線
# export CODE_SERVER_SESSION_LIMIT=2
延遲與衝突驗收清單
每條路徑(直連、VPN、跳板、瀏覽器)各跑一次:量 RTT 與編譯抖動並入 runbook。
- RTT:SSH 日常中位 ≤ 80 ms;code-server 抖動低可略寬。
- 編輯延遲:延伸閒置時打字到畫面 p95 < 150 ms,否則減延伸或減席。
- 埠:壓力測後約定區間
LISTEN零重疊。 - 恢復:強制斷線後兩路徑 < 120 s 可編譯、無需輪替根密鑰。
FAQ
Q:code-server 能消 SSH 埠衝突?
會轉移:仍要分帳號、分埠、佇列;22 仍可給自動化;瀏覽器不序列化編譯器。
Q:何時仍以純 SSH 為預設?
tmux/rsync/worktree 主力、禁網頁 IDE、RTT 低求最簡;無法直連再加跳板。
Q:TLS 後逾時?
覆蓋重構建 p95,常 45~120 分;WS 與 HTTP 閒置對齊或 WS 更寬。
Q:幾個瀏覽器 IDE 該加機?
兩個以上重語服+一個吃滿編譯=警訊;三席互動 IDE 宜拆到新節點或獨立 CI。
小結:code-server 解的是協作入口與外包摩擦;SSH 解的是CLI 密度與政策相容。兩者都不解算力與公平佇列。落地入口:MeshMac 首頁、免登入方案與套餐、幫助中心。
MeshMac:互動席次與共享構建資源
當瀏覽器 IDE 與 CLI 搶同一顆 SoC 時,優先租第二臺節點或把 CI 拆線;連線型態無法替代核心數。無需登入即可瀏覽 公開方案與套餐,連線與權限說明見 幫助中心,硬體與服務邊界見 MeshMac 首頁。協作 FAQ、池化配額與多節點擴容的站內文章連結已置於頁首導言。