跳轉到

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