跳轉到

Tailscale 跨設備 GPU 共享(浮動 IP 場景)

概念概覽

透過 Tailscale P2P mesh VPN 讓電腦白痴朋友(浮動 IP、Windows RTX 5070 Ti)快速分享 GPU 給 WSL 端的 ComfyUI 工作流使用。涵蓋 Tailscale vs Cloudflared 方案選型、Windows 一鍵設置腳本(setup_friend_win.ps1)、WSL 端安裝除錯,以及 PowerShell 腳本中文編碼的實際踩坑記錄。

核心知識

方案選型:Tailscale vs Cloudflared

項目 Tailscale Cloudflared
設定難度 低(GUI 安裝即完成) 中(需設定 tunnel)
浮動 IP 支援 原生支援,自動處理 需額外設定
電腦白痴友好 高(Windows 版一鍵安裝)
SSH 支援 原生支援 TCP SSH 不原生支援 TCP SSH
適合場景 朋友 GPU 機、長期使用 HTTP 公開服務曝光、臨時存取

結論:浮動 IP + 對方為非技術用戶 + 需要 SSH → Tailscale 最優解。Cloudflared 適合 HTTP API 暴露場景。


朋友端(Windows)設置步驟

  1. 對方執行 setup_friend_win.ps1:自動安裝 OpenSSH Server、設定開機自啟、開放 Windows Firewall 規則
  2. 對方安裝 Tailscale Windows 版(GUI 一鍵)並登入**同一 tailnet 帳號**
  3. 腳本完成後自動輸出連線資訊,截圖傳給己方:
Tailscale IP: <tailscale-ip>
SSH user: info
GPU: NVIDIA GeForce RTX 5070 Ti, 16303 MiB
  1. 己方透過 ssh info@<tailscale-ip> 連入,再遠端協助設定 ComfyUI

重要:朋友端必須先登入同一 Tailscale 帳號才能被連到,這步驟需親自引導。


我方(WSL)安裝 Tailscale

curl -fsSL https://tailscale.com/install.sh | sh

# 若遇到 dpkg was interrupted 錯誤,先修復:
sudo dpkg --configure -a

# 然後重新安裝:
sudo apt-get install -y tailscale

# 啟動並加入 tailnet:
sudo tailscale up
  • WSL 是 Linux 環境,需安裝 Linux 版 Tailscale,不是 Windows 版
  • WSL 與 Windows 主機各自安裝自己的版本,兩者共存不衝突
  • 安裝完成後執行 tailscale status,確認雙端都出現在 tailnet 列表中再進行下一步
  • WSL 若無 systemd,Tailscale service 需手動啟動

PowerShell 腳本中文編碼問題

Write-Host "完成!截圖傳給對方"
# 實際輸出(錯誤):完æˆï¼æˆªåœ–å‚³çµ¦å°æ–¹

根本原因:Windows PowerShell 5.x 預設以系統編碼(Big5/ANSI)讀取腳本,UTF-8 無 BOM 的中文字元會被錯誤解析,導致語法錯誤:

  • TerminatorExpectedAtEndOfString(字串未正確結尾)
  • MissingEndCurlyBrace / Missing closing '}'(花括號不匹配)

解法(擇一): 1. 儲存時明確指定 UTF-8 with BOM 編碼 2. 將所有中文輸出改為英文 / ASCII,從根本規避問題


PowerShell 腳本「跑完啥都沒發生」

可能原因一execution policy 限制,需以系統管理員身份執行,或先設定:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

可能原因二:腳本處於靜默模式,加 -Verbose 查看詳細輸出。

設計原則:給非技術使用者的腳本,執行後**必須**有明確的成功/失敗文字輸出或彈出視窗,讓用戶知道是否完成。


RTX 5070 Ti 規格與可行性

  • VRAM:約 16GB(實測 16303 MiB)
  • 跑 14B WAN 2.2 動畫生成 workflow:足夠,不需升級到 5090
  • 跑 14B FP8 模型:勉強可行,需搭配 CPU offload
  • 若品質要求較高,建議使用 Q4/Q5 量化版本(會有輕微品質折損)
  • 對動漫風格動畫生成和遊戲 icon 工作流已足夠

注意:RTX 5090 使用 DISM 安裝 OpenSSH 可能卡在 100% 長達 5 分鐘,這是正常現象,需等待。

經驗教訓

  • Tailscale 是浮動 IP + 電腦白痴使用情境的最佳解,比 Cloudflare Tunnel 更適合需要 SSH 的場景,浮動 IP 問題由 Tailscale 自動處理,無需動態 DNS 或教對方查 IP

  • PowerShell 腳本含中文字串時,必須以 UTF-8 with BOM 存檔;最保險的做法是腳本全用英文輸出,從根本規避 PowerShell 5.x 的編碼解析問題

  • WSL 中 dpkg 中斷後必須先 sudo dpkg --configure -a 修復,否則後續所有 apt-get install 都會失敗

  • 給非技術使用者的腳本,執行後必須有明確的成功/失敗文字輸出或視覺回饋,靜默成功會讓使用者以為腳本沒作用

  • WSL 是 Linux 環境,安裝工具應選 Linux 版,即使主機是 Windows;WSL 版與 Windows 版 Tailscale 共存不衝突

  • Tailscale 帳號共用(同一 tailnet)可避免授權複雜度,是最簡單的多設備共享方式

  • 朋友端的設置步驟應盡可能壓縮到「跑一個腳本」,降低對方操作複雜度,再由己方遠端接手設定 ComfyUI

常見陷阱

  • PowerShell 5.x 對非 UTF-8 BOM 的中文字串解析失敗,出現 TerminatorExpectedAtEndOfString 或 MissingEndCurlyBrace,不易直覺察覺是編碼問題

  • Cloudflare Tunnel 不原生支援 TCP SSH,不適合需要 SSH 存取的 GPU 分享場景,誤選會導致架構重做

  • WSL 中 dpkg interrupted 狀態若不先以 sudo dpkg --configure -a 修復,後續所有 apt-get install 都會失敗

  • 朋友端 Tailscale 必須先登入同一帳號才能被連到,這步驟容易被忽略,導致 tailnet 裡看不到對方機器

  • PowerShell try-catch block 的 } 配對錯誤(Missing closing '}')需仔細逐行檢查腳本語法,不易察覺

  • WSL 裡安裝 Tailscale 與 Windows 本機安裝是兩件事;若在錯誤環境安裝,tailscale 指令會直接 command not found

  • RTX 5070 Ti 跑 14B FP8 模型需搭配 CPU offload,直接全 GPU 載入可能 OOM;建議先用 Q4/Q5 量化版測試

  • RTX 5090 使用 DISM 安裝 OpenSSH 可能卡在 100% 長達 5 分鐘,這是正常現象,強行中斷會導致安裝不完整

最佳實踐

  • 朋友 GPU 共享優先選 Tailscale,一鍵解決浮動 IP 問題

  • PowerShell 腳本存 UTF-8 with BOM 或全用英文輸出,避免 PowerShell 5.x 編碼解析問題

  • setup_friend_win.ps1 腳本完成後應自動輸出連線資訊(Tailscale IP、SSH user、GPU 型號),讓對方截圖傳給你

  • 設置完成後執行 tailscale status,確認雙端都出現在 tailnet 列表中再進行後續連線

  • 讓朋友只執行一個 PS1 腳本,腳本內含 OpenSSH 安裝、防火牆規則、進度提示,降低操作門檻

  • 連線建立後再幫朋友遠端設定 ComfyUI,減少對方需要理解的步驟

  • Tailscale 使用共用帳號(同一 tailnet)比分開帳號授權更簡單,適合信任的朋友間共享

相關概念

來源 Sessions

日期 Session 貢獻摘要

| - | 6a11d50e-fabd-4e49-90a1-34f9d114caff | 融合自原始頁面 comfyui-friend-gpu-sharing |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-04-11