Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

內網穿透實戰:以 VNC 實現 Linux/Unix 桌面遠端雙向控制

編輯:Linux 教學

面對「雙邊皆無公網 IP、中間隔著不可控上游伺服器」的典型內網拓撲,本文示範如何利用 SSH 反向通道與 VNC 被動連線模式,打通 FreeBSD (內網 A) 與 Windows XP (內網 D) 的桌面雙向控制通道。

網路拓撲與角色定義

A (FreeBSD 6.2 + x11vnc) ─► B (上游不可控) ─► Internet ◄─── C (公網路由/防火牆) ◄─── D (XP SP2 + VNC 4.1.2)
  • A:目標被控端,需安裝 x11vnc 並通過銳捷認證上網。
  • D:控制端,運行 VNC Viewer/Server。
  • C:擁有公網 IP 的路由節點,唯一可配置埠映射的點位。

核心思路:VNC 被動連線 + 埠映射

VNC 支援「Listening Mode」:Viewer 監聽本地埠 (預設 5500),被控端主動連向 Viewer IP:Port。結合 C 上的埠映射,即可繞過雙向 NAT。

實作步驟:D 控制 A (A→D 方向)

  1. A 安裝 x11vnc
    cd /usr/ports/net/x11vnc && make install clean
  2. D 安裝 VNC 4.1.2,版本最好與 A 一致以免相容性問題。
  3. C 配置埠映射:將 TCP 10000 映射至 D 內網 IP 的 5500 埠 (VNC Listening 埠)。
  4. D 啟動監聽:運行 vncviewer -listen (或 GUI 選單 Run Listening Viewer)。
  5. A 發起連線:x11vnc -connect C公網IP:10000,D 端即彈出 A 的桌面畫面。

反向控制:A 控制 D (D→A 方向)

  1. C 將 TCP 10001 映射至 D 內網 IP 的 5900 埠 (VNC Server 預設埠)。
  2. D 啟動 VNC Server 服務。
  3. A 執行 vncviewer C公網IP:10001 即可遠端操作 D 桌面。

關鍵提示

  • 確保雙邊 VNC 版本一致,避免協定不匹配導致黑屏/輸入失效。
  • 生產環境建議在 SSH 隧道內跑 VNC (ssh -L 5900:localhost:5900 user@C) 增強加密與認證。
  • 銳捷認證若掉線會中斷 A 的外網連線,需配合 keepalive 腳本維持心跳。
Copyright © Windows教程網 All Rights Reserved