隔空貼

隔空貼

運作原理

複製之後發生了什麼,兩台電腦怎麼連上,連不上怎麼辦。

按下複製之後

文字、圖片、檔案都走同一條路。

  1. 偵測

    背景服務察覺剪貼簿變了。

  2. 傳輸

    文字和 50 MB 以內的檔案馬上送過去,更大的先送一筆記錄。

  3. 貼上

    另一台存到本機再放進剪貼簿,貼上的就是真正的檔案。

隔空貼的連線方式

同一個網路裡直接找到對方;不在同一個網路時,由伺服器牽線後盡量直連,連不上才中繼。內容始終加密。

隔空貼的連線方式 電腦 A 與電腦 B 之間是 WebRTC 直連;兩台電腦都透過信令連到伺服器;直連失敗時,資料經伺服器的 TURN 中繼。 信令與中繼服務 信令、STUN、TURN 中繼 信令:交換連線資訊 中繼:只在直連不通時 Mac 在這裡複製 Mac、Windows 或 Linux 在這裡貼上 WebRTC 直連,DTLS 加密 資料只在兩台電腦之間傳 資料(直連) 資料(中繼,備用) 信令
  • WebRTC 直連,DTLS 加密 資料只在兩台電腦之間傳
  • 信令與中繼服務 信令、STUN、TURN 中繼
  • 中繼:只在直連不通時

出問題的時候

常見的情況,都有處理。

在同一個網路裡找不到對方
配對時填上對方的位址,之後會記住。
打不通直連
經伺服器中繼,內容一樣加密。
對方睡眠或斷線
醒來後自動重新連線。
傳檔案時中斷
連上後從中斷處接著傳。
檔名在 Windows 上不合法
換成全形字元,檔名照樣看得懂。
複製的是密碼
Windows 上密碼管理工具複製的內容會被跳過。

技術規格

版本2.10.2,發布
Mac 用戶端macOS 13 Ventura 以上;Apple 晶片與 Intel 晶片各有一個安裝檔,約 25 MB,不需要 Rosetta;也有兩種晶片通用的版本,約 47 MB
Windows 用戶端Windows 10 與 Windows 11,x64;只為目前使用者安裝,不需要系統管理員權限;安裝檔約 23 MB
Linux 用戶端x64 與 ARM64;.deb(Debian、Ubuntu 等)或 tar.gz(其他發行版),約 22 MB;需要 X11 桌面,或附有 XWayland 的 Wayland 桌面(GNOME、KDE 等預設都有);GTK 3
伺服器用「服務」或在同一個網路裡都不需要。自建的話,支援 Linux x86_64/ARM64、macOS 與 Windows 10/11 x64。
介面語言簡體中文、繁體中文(台灣、香港)、English、日本語,預設跟隨系統,可在設定裡切換
同步的內容純文字、帶格式的文字、圖片與螢幕截圖、檔案、資料夾,可依類型個別關閉
傳輸WebRTC 資料通道,優先直連,打不通時經 TURN 中繼;同一個網路裡透過 mDNS 探索、UDP 8788 交換連線資訊;多出口網路逐一偵測每個出口;檔案以 tar + zstd 串流打包
加密與身分DTLS 端對端加密;裝置身分為 Ed25519 金鑰;信令訊息逐則簽章
配對6 碼配對碼,5 分鐘內有效,字元集去掉了 0/O、1/I 等容易混淆的字元;配對時人工核對安全指紋
自動同步上限預設 50 MB,可在 1 MB 到 1 GB 之間調整
隔空傳送傳給一台裝置,不限大小,檔案和整個資料夾都行;區域網路裡走加密的 TCP 通道(兩端需 2.5.1),用不了時退回 WebRTC;外網和中繼用 WebRTC;斷了接著傳,每個檔案用 SHA-256 校驗。Mac 傳 1 GB 到 Linux 虛擬機實測 144.3 MB/s,實際速度看網路和磁碟。
好友F 開頭的 7 位好友碼,經區域網路或「服務」交換,可以核對安全碼;好友之間只能互傳檔案和圖片,可附 200 字以內的備註,每批都要對方接受;好友看不到你的剪貼簿、複製記錄和裝置;收到的檔案去掉可執行權限,Mac 上加上隔離標記;兩端需 2.6 或更新版本
記錄保留預設 3 天,可在 1 小時到 30 天之間調整,到期自動清除
實測速度區域網路直連傳輸 20 MB 檔案約 330 毫秒,檢查碼一致
技術堆疊背景服務與伺服器用 Go(Windows 上以純 Go 呼叫 Win32,Linux 上以純 Go 走 X11 協定),介面用 Flutter(三個系統共用一套程式碼),訊息定義用 Protocol Buffers
授權GNU AGPL-3.0