Skip to content

VNC ​

VNC 資源使用內建基礎 VNC 客戶端打開。

配置項 ​

欄位說明
名稱資源顯示名稱
HostVNC 服務位址
Port預設 5901
UsernamemacOS ARD 認證用的 Mac 使用者名稱(傳統 VNC 密碼認證留空)
PasswordVNC 密碼

傳統 VNC 密碼認證不使用使用者名稱。連線 macOS 螢幕共享時如果走 ARD 認證(預設),需要填寫 Mac 的使用者名稱。

如果伺服器端需要密碼而資源裡沒有儲存密碼,打開時會彈出密碼輸入框。

畫質與頻寬 ​

資源編輯器中有兩個頻寬相關設定,均在建立連線時生效,修改後需退出並重新打開會話。

畫質壓縮 ​

控制 Tight 編碼中 JPEG 矩形的壓縮品質。100% 為無損(不使用 JPEG,僅 zlib 壓縮);90% / 80% / 60% 逐級降低 JPEG 品質,適合包含照片、漸層等豐富色彩的畫面。

顏色深度 ​

要求伺服器以更低的像素深度傳輸畫面,減少 Raw / zlib / ZRLE 等像素編碼的資料量:

選項格式說明
32-bit(預設)全彩畫質無損,頻寬佔用最高
16-bitR5G6B5像素資料約減半,漸層處可能有輕微色帶
8-bit256 色(R3G3B2)像素資料約降至 1/4,畫質損失明顯,適合極慢鏈路上的純文字遠端

注意:降低顏色深度在部分系統上會增加運算壓力。 伺服器的 framebuffer 通常是 32 位元;當要求的格式與之不同時,每次畫面更新都需要先做逐像素格式轉換(位元提取、縮放、重打包)再壓縮。部分伺服器在格式一致時有最佳化的快速路徑,格式不一致時只能走通用轉換——在效能較弱的裝置(NAS、開發板、老舊主機)上,省下的頻寬可能以畫面流暢度下降為代價。用戶端解碼時也需要把 2/1 位元組像素擴展回 32 位元渲染,解碼開銷略高於 32 位元直通路徑。頻寬緊張但伺服器效能富餘時收益最大;伺服器本身吃緊時建議先試 16-bit 並觀察流暢度。

兩者組合 ​

畫質壓縮與顏色深度可以同時生效,分別作用於不同類型的矩形:

  • 16-bit + 畫質壓縮:照片、漸層等區域由伺服器選擇 JPEG 編碼(大小取決於畫質檔位,與顏色深度無關);純色、文字等區域按低色深壓縮。文字居多的桌面受益於顏色深度,含桌布或影片的畫面受益於 JPEG 壓縮。
  • 8-bit 下畫質壓縮無效:JPEG 要求用戶端像素格式至少 16bpp,主流伺服器(TigerVNC 等)在用戶端為 8 位元時不會再使用 JPEG,全部矩形按 8 位元深度壓縮。

相容性 ​

  • 顏色深度透過 SetPixelFormat 協商。TigerVNC、x11vnc、TightVNC 等標準伺服器都會遵守;個別不規範的實作可能忽略該要求——設定不會有任何效果,但連線本身不受影響。
  • macOS 螢幕共享不適用:OmniGate 不會向 screensharingd 發送 SetPixelFormat(會導致其畫面擷取凍結),該設定對 macOS 連線無效。

顯示 ​

VNC 畫面會按螢幕比例縮放。支援雙指縮放,放大後會盡量以滑鼠位置為中心移動畫面。

橫屏時會隱藏導覽列,並顯示可拖動的即時網速浮動框。浮動框右側有關閉按鈕。

輸入 ​

VNC 支援觸控和虛擬鍵盤:

  • 短觸且沒有移動:單擊。
  • 滑動:移動滑鼠,不點擊。
  • 雙擊後第二下不鬆開並移動:拖動。
  • 雙指:右鍵。
  • 雙指上下滑動:模擬滑鼠滾輪,向上滑動對應向下捲動。
  • 豎屏時可使用虛擬鍵盤和 Windows 常用快捷鍵。

雙指操作優先識別為捲動。縮放需要明顯的雙指捏合動作才會觸發,避免滑動時誤觸縮放。

在 macOS 上,觸控板的捲動手勢會被識別為滑鼠滾輪,體驗與桌面 VNC 客戶端一致。

快捷鍵包含 Ctrl、Alt、方向鍵、PageUp、PageDown、Home、End 和 F1-F12。Ctrl 和 Alt 為粘滯狀態,用於發送組合快捷鍵。

自動重連 ​

當 VNC 連線意外斷開時(例如網路波動),OmniGate 會自動嘗試重連一次。

以下情況不會自動重連:

  • 使用者主動退出 VNC 頁面。
  • 伺服器端返回明確的認證失敗或連線拒絕等永久性錯誤。

自動重連時導覽列會顯示「正在重連」提示。如果重連也失敗,需要手動返回資源列表重新打開。

macOS(螢幕共享) ​

macOS 內建的「螢幕共享」服務(screensharingd)基於標準 VNC,但加入了不少 Apple 私有改動。OmniGate 只實作標準 RFB 協定,因此連線 macOS 時存在以下相容性與限制:

macOS 內建的「螢幕共享」服務(screensharingd)基於標準 VNC,但加入了不少 Apple 私有改動。OmniGate 實作了標準 RFB 協定以及 macOS 的 ARD DH-AES 認證(參考 libvncserver 實作),但 Apple 私有的其他擴充(單螢幕切換、私有壓縮編碼等)不支援,因此連線 macOS 時存在以下限制:

認證方式 ​

macOS 螢幕共享支援兩種認證方式,OmniGate 均已支援:

ARD 認證(預設)

macOS 預設使用 Apple 私有的 DH-AES 認證(ARD 類型 30)。OmniGate 已實作該協定,連線時使用 Mac 的使用者名稱和登入密碼即可完成認證。在 VNC 資源中填入 Mac 使用者名稱和密碼,打開連線後會自動走 ARD 認證流程,無需在 Mac 上額外配置。

傳統 VNC 密碼(可選)

如果在 Mac 上開啟了傳統 VNC 密碼:

系統設定 → 一般 → 共享 → 螢幕共享 → ⓘ → 電腦設定 → 勾選「VNC 顯示程式可以使用密碼控制螢幕」,並設定一個專用密碼。

OmniGate 會優先使用傳統 VNC 密碼認證(類型 2)。該密碼與 Mac 登入密碼相互獨立,僅在 VNC 連線時使用。此時資源中的使用者名稱欄位不需要填寫。

解析度設定無效 ​

macOS 不支援客戶端發起的解析度調整——VNC 的 SetDesktopSize 指令會被它當作未知指令(unknown command 251)並斷開連線。因此 OmniGate 的解析度設定對 macOS 不生效,始終使用 Mac 當前的原生解析度。如需改變畫面尺寸,請在 Mac 端調整顯示器設定。

顏色深度設定同樣不適用於 macOS(見「畫質與頻寬」一節)。

多螢幕拼接 ​

當 Mac 連接了多台顯示器時,macOS 會把所有螢幕拼成一張大 framebuffer(例如兩塊螢幕拼成 3024×3404)一併向客戶端傳輸。標準 VNC 不提供每塊螢幕的座標資訊,因此:

  • 無法像 macOS 自帶的「螢幕共享」那樣精確切換「顯示器 1 / 顯示器 2」。
  • 需要透過縮放和平移在這張大圖裡瀏覽不同螢幕。
  • 精確的單螢幕切換依賴 Apple Remote Desktop(ARD)的私有顯示管理協定,OmniGate 不支援。(OmniGate 支援 ARD 認證,但不支援 ARD 的顯示管理功能。)

頻寬與效能 ​

macOS 不支援 Tight、Hextile 等常見壓縮編碼(會退化為未壓縮的 Raw)。OmniGate 已實作對 macOS 友善的 ZRLE 編碼來獲得壓縮,並採用伺服器端原生像素格式直接渲染(無需逐像素位元組序轉換),相比早期版本畫面流暢度有明顯改善。但 screensharingd 的增量更新粒度較粗,即便畫面只有微小變化也可能重發較大區域,因此在相同畫質下,頻寬通常高於 Linux 上的 TigerVNC 等伺服器端。Apple 私有的高強度壓縮編碼(Apple ZRLE / Apple Tight)未公開,OmniGate 不實作。若對頻寬敏感,可在 Mac 上改用支援 Tight 的第三方 VNC 伺服器端(如 RealVNC Server)。

不支援聲音 ​

標準 VNC 協定只傳輸畫面,不傳輸音訊。因此連線 macOS(以及任何 VNC 伺服器端)都不會有聲音。macOS 自帶「螢幕共享」的聲音走的是 Apple 私有通道,標準 VNC 客戶端無法接收。

剪貼簿 ​

OmniGate 支援基礎的雙向文字剪貼簿同步(需在資源中開啟)。macOS 對標準 VNC 剪貼簿的支援有限,圖片、檔案、富文字等複雜內容不在同步範圍內。

已知限制 ​

不同 VNC 伺服器端、解析度、HiDPI 和滑鼠模式會影響指標座標一致性。OmniGate 會顯示一個本地滑鼠位置小黑點,幫助判斷本地觸控位置和遠端指標位置。

當前內建 VNC 客戶端偏基礎,複雜編碼、剪貼簿同步和進階圖形最佳化不一定完整支援。

OmniGate App 使用者手冊