家里翻出 3 台没插 SIM 卡、电池还能撑两小时的旧安卓。不扔,但塞抽屉里吃灰。
最直接的复活方式不是装摄像头、不是装音乐盒,是把它变成一台桌面级的远程安卓机:插电源、连 Wi-Fi、装 droidVNC-NG,电脑上浏览器一开,屏幕、键盘、鼠标、剪贴板、文件传输,全套远程桌面能力。不需要装 VNC 客户端——它内置 noVNC,浏览器就是客户端。
TL;DR
- droidVNC-NG 是开源 Android VNC 服务器,基于 Android 7+ 新 API,免 Root(旧 droid-VNC-server 要 Root,这是 NG 的核心卖点)。
- 内置 noVNC Web 客户端:浏览器直接控,不用下 VNC 客户端;传统 VNC 客户端(TightVNC 等)也能连。
- 局域网场景够用:密码、剪贴板共享、文件传输、开机自启、多客户端各自独立鼠标指针、Zeroconf 自动发现。
- 跨网段 / 回家连:有反连模式(Reverse VNC,设备主动连出去)和 UltraVNC Mode-2 repeater 中介,不用在自己家路由器上开 5900 端口。
- 和 TeamViewer/向日葵的差异:开源、自托管、无账号、不花订阅费;代价是没有云端穿透,跨网要自己搭中继或反连。
它和 TeamViewer/向日葵到底差在哪?
先把定位说清,不然读者以为是要"替代向日葵":
| 维度 | droidVNC-NG | TeamViewer / 向日葵 / RustDesk |
|---|---|---|
| 协议 | 经典 VNC(TCP) | 各自私有协议 + 部分支持 VNC |
| 客户端 | 浏览器(noVNC 内置)+ 任意 VNC 客户端 | 专用 app / 网页 |
| 账号体系 | 无 | 有(登录、云端绑定) |
| 跨网穿透 | 反连 + repeater,需自管 | 云端中继,开箱即用 |
| 费用 | 免费开源(F-Droid / Play) | 个人免费 + 商用订阅 |
| 隐私 | 数据走你自己网络 | 走厂商云端 |
| Root | 否(Android 7+ API) | 视功能而定 |
一句话:droidVNC-NG 解决的是"局域网内 / 已搭好穿透"场景下的安卓远程控制,不是"出差在外一键连云端"。
浏览器直连这件事,为什么值得单拎
多数安卓远程方案(scrcpy 系、Vysor、甚至不少 VNC 客户端)都要在电脑上装 app。droidVNC-NG 内置 noVNC Web 客户端——设备上起服务后,浏览器输入 http://<设备IP>:5900,就能直接看到画面、操作。
这对两类场景价值最大:
- 临时救急:不想为一台旧手机装客户端,浏览器就够。
- Kiosk / 公共设备:一台无头安卓当签到机 / 展示屏,现场任何一台有浏览器的设备连上去就能查 / 操作,不装东西。
noVNC 本身是 Web 端 VNC 协议实现,支持 RFB 协议 + WebSocket,画面和交互走浏览器原生,不用装插件。
反连模式和 repeater:怎么不自己开端口回家用
这是 droidVNC-NG 比"纯局域网 VNC"多出来的关键两招:
1. Reverse VNC(反连) 传统 VNC 是客户端连服务器。反连反过来:设备(安卓)主动连到一个监听中的客户端(你电脑上的 VNC 监听端)。意味着你家路由器不需要对公网开 5900,安卓出门 / 在外网照样能"拨回来"。
2. UltraVNC Mode-2 repeater(中继) 双方都连到一个中间中继服务器,由中继撮合连接。适合双方都在 NAT 后、没法直接建链的场景。中继可以是公开的,也可以自托管——自托管就完全掌握在自己手里。
这两招配合,就能做到"不在家也能连家里的旧安卓",同时不需要把 5900 直接暴露在公网(安全上比直接开端口好一截)。
键盘鼠标、剪贴板、文件传输——实际能用度
几个常被问的能力:
- 键盘:支持 Latin-1 + 部分特殊键;Android 14+ 可控制任意 UI 控件,旧版只能写 EditText(输入框)——这是 Android 无障碍服务 API 的能力边界,不是 droidVNC 的限制。
- 鼠标:每个连接客户端显示各自独立的鼠标指针,多人同时连不抢指针。
- 剪贴板:客户端 → 设备方向支持;设备 → 客户端靠 Android 的 Share-To 机制把文本"分享"给 droidVNC-NG,再回传。
- 文件传输:走 TightVNC 1.3.x 客户端实现;noVNC Web 端主要是查看和操控,文件传输仍建议用桌面 VNC 客户端。
- 缩放:服务端 frame buffer 缩放,画面大网慢的时候可降分辨率。
它适合谁 / 不适合谁
适合:
- 家里有闲置安卓、想变"远程桌面 / 远程查屏 / Kiosk"
- 自架党,不想把手机交给云端 SaaS(隐私)
- 临时远程排障一台局域网安卓(服务器房 / 办公室 / 店里)
不适合:
- 出差在外、想"一键"连云端,不想搭中继——那用 RustDesk / 向日葵更省事
- 需要高频输入汉字:键盘支持偏 Latin-1,中文输入场景弱
- 想要流畅 60fps 游戏画面推流——这是 VNC 协议,不是视频流方案
常见问题
Q1: 真的不用 Root 吗?为什么旧的 droid-VNC-server 要 Root?
A: droidVNC-NG 基于 Android 7+ 的官方 API(无障碍 + 媒体投影等),所以免 Root。旧的 droid-VNC-server 走旧版 screen capture,依赖系统级权限,才要 Root。
Q2: 不搭中继,能不能在外网直接连家里?
A: 不能直连——5900 默认在你家 NAT 后面。要么用内置反连 / repeater(推荐),要么在自己家路由器上做端口映射(把 5900 暴露到公网,安全性差,不推荐)。
Q3: 浏览器 noVNC 能操作,为什么还要装传统 VNC 客户端?
A: 文件传输依赖 TightVNC 1.3.x 这类桌面客户端。纯 noVNC Web 端做查看和操控足够,文件传输回桌面客户端。
Q4: 多台安卓同时连会乱吗?
A: 不会。每个客户端独立鼠标指针,互不遮挡;画面是同一帧。
Q5: 旧安卓电池已经鼓包 / 很老,能装吗?
A: 主要看系统版本——Android 7+ 理论免 Root。太老的机子装不上 NG,可回退到要 Root 的旧版 droid-VNC-server;或者干脆别当远程桌面,改当音乐盒 / 摄像头。
Q6: 安全上要注意什么?
A: 一定设密码(macOS 自带 Screen Sharing 连它必须密码)。跨网走反连 / 自托管中继,别直接映射 5900 到公网。局域网内广播是 0 成本但 0 防护,公共 Wi-Fi 下别裸连。