sycnnj
发布于 2026-01-22 / 23 阅读

扔掉 TeamViewer:用浏览器实现“零信任”全功能远程桌面 (Web VNC)

关键词: Cloudflare Zero Trust, Web VNC, 远程桌面, 无客户端远程, TeamViewer替代方案, 内网穿透, 浏览器渲染, Mac 屏幕共享, Windows VNC, 运维安全

在上一篇教程中,我们成功把 OpenWrt 的 SSH 终端搬进了浏览器,实现了“随时随地敲命令”的梦想。但对于很多运维人员和极客来说,只有命令行是不够的。我们往往需要操作 Windows 服务器的图形界面,或者远程连接家里的 Mac 处理紧急文档,甚至需要帮父母远程调试电脑。

如果你仔细看了Cloudflare Access controls/应用程序,你会发现Cloudflare Access 设置中的 VNC 选项,没错,这正是 Cloudflare 隐藏的另一大杀器——基于浏览器的远程桌面渲染

今天,我们将深入挖掘这个功能,教你如何不花一分钱,搭建一套比 TeamViewer 更安全、比向日葵更纯净、无需安装任何客户端的远程桌面系统。

一、 痛点分析:传统远程桌面的“至暗时刻”

现有的远程桌面方案,总是让人爱恨交织:

  1. 商业软件的“割韭菜” (TeamViewer/AnyDesk)

    • 痛点:动不动就判定你为“商业用途”而断开连接,免费版限速严重,广告弹窗满天飞。

    • 风险:由于是第三方服务器中转,你的屏幕内容理论上经过了别人的服务器,隐私难以绝对保障。

  2. 直接暴露端口 (RDP/VNC)

    • 痛点:需要在路由器做端口映射 (3389/5900)。

    • 风险:这是安全界的禁忌!RDP 漏洞层出不穷(如 BlueKeep),VNC 协议本身加密较弱。一旦端口暴露在公网,你的电脑就等于在互联网上“裸奔”,勒索病毒最喜欢这种目标。

  3. VPN 方案

    • 痛点:为了连个桌面,先要拨号 VPN,手机、平板上操作繁琐,且受限于上传带宽。

二、 Cloudflare VNC 方案:降维打击

Cloudflare 的 Web VNC 方案(Browser Rendering)本质上是一种协议转译技术

1. 技术原理

  • 服务端 (你的电脑):运行标准的 VNC 服务(Mac 自带,Windows 可装 RealVNC/TightVNC)。

  • 传输层 (Tunnel):Cloudflared 抓取本地 TCP 5900 端口的流量,通过 HTTP2/QUIC 隧道加密封装,推送到 Cloudflare 边缘节点。

  • 渲染层 (Access):Cloudflare 的边缘服务器将 VNC 的图像数据实时转译为 HTML5 Canvas 画面,将你的鼠标键盘操作转译为 VNC 指令。

  • 客户端 (浏览器):你只需要一个支持 HTML5 的浏览器(Chrome/Safari/Edge),就能看到并控制远程桌面。

2. 核心优势

  • Clientless (零客户端):你在网吧、用女朋友的 iPad、甚至用特斯拉的车载浏览器,都能通过一个网址登录你的电脑。

  • Zero Trust (零信任安全):端口完全隐身。在看到登录画面之前,黑客必须先通过 Cloudflare 的邮箱/SSO 验证。连登录界面都摸不到,何谈破解?

  • 原生流畅:利用 Cloudflare 庞大的 CDN 网络加速,体验往往优于普通的内网穿透工具。


三、 实战教程:搭建 Web VNC 远程桌面

本教程将演示如何通过 vnc.xxx.com 在浏览器中访问内网的一台电脑(以 Mac 或 Windows 为例)。

⚠️ 前置准备:开启本地 VNC 服务

Cloudflare 只负责传输,不负责产生桌面。 你必须先在目标电脑上开启 VNC 服务。

  • 如果你是 macOS 用户 (最简单)

    • 打开 系统设置 -> 通用 -> 共享

    • 开启 “屏幕共享” (Screen Sharing)。

    • 点击右侧的 i 信息按钮,点击 “计算机设置”

    • 关键:勾选 “VNC 显示程序可以使用密码控制屏幕”,并设置一个简单的 VNC 密码(仅用于 VNC 握手,外层有 Cloudflare 保护)。

    • 记住你的 Mac 局域网 IP,例如 192.168.1.100

  • 如果你是 Windows 用户

    • 下载并安装 TightVNC ServerRealVNC Server (免费版即可)。

    • 安装后设置访问密码。

    • 确保服务已启动,默认端口为 5900。

    • 记住你的 Windows 局域网 IP,例如 192.168.1.101


第一阶段:配置隧道 (Tunnel) —— 搬运 TCP 流量

我们需要配置隧道,将 VNC 的原始流量搬运到 Cloudflare。

  1. 登录 Cloudflare Zero Trust 后台,进入 Networks -> Tunnels

  2. 点击你的隧道(例如 Hrt)-> Configure -> Public Hostname -> Add a public hostname

关键配置项:

  • Subdomain (子域):填写新潮的名字,例如 desktopvnc

  • Domain (域名):选择 xxx.com

  • Service (服务)

    • Type:选择 TCP (注意:这里不要选 SSH,也不一定要选 HTTP,标准的 VNC 走 TCP 协议)。

    • URL:填写 目标电脑的局域网 IP + 端口

      • 例如:192.168.1.100:5900 (Mac/Windows 的默认 VNC 端口是 5900)。

      • 特别提醒:不要填 localhost,除非 cloudflared 就装在那台电脑上。如果 cloudflared 装在 OpenWrt 路由上,这里必须填电脑的局域网 IP。

点击 Save hostname 保存。


第二阶段:配置应用程序 (Access Application) —— 开启图形渲染

这一步告诉 Cloudflare:“这个域名下的流量是 VNC 视频流,请帮我画在浏览器里。”

  1. 进入 Access -> Applications -> Add an application -> Self-hosted

步骤 2.1:基本信息

  • Application name:例如 Mac Remote Desktop

  • Session Duration:建议 1 hour (图形界面流量大,且为了安全,不宜过长)。

  • Application domain:必须与隧道设置一致。

    • Subdomain: vnc

    • Domain: xxx.com

步骤 2.2:安全策略 (Policy)

  • Policy nameMy Desktop Access

  • ActionAllow

  • Rules:Selector 选 Email,Value 填你的邮箱。

步骤 2.3:浏览器渲染设置 (Browser Rendering) —— 重中之重

  • 点击 Next 进入 Settings 页面。

  • 找到 Browser rendering

  • 在下拉菜单中,坚定地选择 VNC

    • 注:截图中的红框正是此处。

  • 点击 Add application 保存。


第三阶段:见证奇迹

  1. 打开浏览器(推荐 Chrome 或 Safari),访问 https://vnc.xxx.com

  2. Access 验证:输入邮箱,填写验证码。

  3. VNC 握手

    • 验证通过后,浏览器会出现一个灰色的连接界面,提示 Connect

    • 点击连接后,系统会要求你输入 VNC Password

    • 这里输入你在“前置准备”中设置的 Mac 屏幕共享密码或 Windows VNC 密码。

  4. 成功连接

    • 下一秒,你熟悉的电脑桌面就会完整地呈现在浏览器窗口中!

    • 你可以全屏显示,就像在使用本地电脑一样。


四、 进阶优化与避坑指南

为了让你用得更爽,这里有几个老司机的经验之谈:

1. 解决 Mac 上的“无限套娃”显示

如果你在 Mac 本机上用浏览器访问自己的 VNC 链接,你会看到屏幕在无限通过浏览器镜像自己,产生“镜中镜”效应。

  • 解决:这是正常现象。请在手机、iPad 或另一台电脑上测试。

2. 提升画质与响应速度

VNC 传输的是图像,对带宽有要求。

  • Cloudflare 的免费版带宽足够传输 1080P 的办公画面,但看视频会卡顿。

  • 如果觉得卡,可以在 Windows 的 VNC Server 设置中降低画质(颜色深度选 16-bit 或 8-bit),能显著提升流畅度。

3. 关于声音传输

特别注意:标准的 VNC 协议不支持传输声音

  • 你只能看到画面、控制鼠标键盘,但听不到电脑发出的声音。

  • 如果必须要有声音,需要极其复杂的音频转发方案,或者 Cloudflare 未来支持 RDP 渲染(RDP 支持声音,但配置更复杂)。

4. 手机端的操作技巧

在手机浏览器上打开时:

  • 单指滑动:移动鼠标指针。

  • 轻点:鼠标左键点击。

  • 双指点击:鼠标右键点击。

  • Cloudflare 提供了一个悬浮球,点击可以呼出虚拟键盘,用于输入密码或快捷键 (Ctrl/Alt/Cmd)。

五、 安全总结

通过这套方案,你构建了一个极其坚固的堡垒:

  1. 隐身术:通过 Shodan 等扫描工具扫描 xxx.com,黑客只能看到 Cloudflare 的 CDN 节点,根本找不到你家里的真实 IP,更别提扫描 5900 端口了。

  2. 看门人:Cloudflare Access 就像一个 24 小时在岗的保安。任何人想通过 VNC 看到你的屏幕,必须先交出此路条(邮箱验证码)。

  3. 隔离层:Web VNC 相当于在你的内网和互联网之间加了一层“空气墙”。即使浏览器端有恶意脚本,也很难穿透渲染层直接攻击到你的主机系统。

现在,你已经掌握了 SSH 和 VNC 两大运维神技。无论是只有命令行的路由器,还是图形界面的主力机,都已尽在你的掌控之中。

Enjoy your Zero Trust Desktop!


本文首发于 E路领航 (blog.oool.cc),转载请注明出处