好友
阅读权限25
听众
最后登录1970-1-1
|
为什么会有这个项目
我平时主要用鸿蒙电脑工作,但有些 Windows 独占的软件还是绕不开,所以经常需要远程桌面到 Windows 台式机。
之前一直用的常规远程方案:Windows 开 RDP,鸿蒙端装个 RDP 客户端,走公司 WiFi 连。听起来没问题吧?
但实际体验很痛苦——公司人多,同一个 WiFi 下几十上百号人,一到上班高峰期,远程桌面就卡成 PPT:画面延迟几秒钟、操作不跟手、时不时断开重连。无线网络的本质决定了这不是换个软件能解决的。
后来想过用有线局域网,但工位没有预埋网线,拉一根长网线也不现实。
那还有什么物理链路是现成的?
USB 线啊。USB 本身就是高速串行总线,USB 3.0 的理论带宽到 5Gbps,延迟微秒级,而且专线专用——不受任何网络拥塞影响。
基本原理
鸿蒙系统自带的 hdc(HarmonyOS Device Connector)工具,本质上就是一个调试桥,类似 Android 的 ADB。它有一个非常实用的功能叫 rport(反向端口转发),可以把设备上的端口映射到电脑本地。
整个链路非常简单:
┌─────────────────┐ USB 数据线 ┌──────────────────┐
│ 鸿蒙设备 │ ════════════════ │ Windows 电脑 │
│ (手机/平板/PC) │ │ │ │
│ │ │ │ HShareTunnel │
│ HShare App │ │ │ (自动 hdc rport)│
│ ↓ │ │ │ ↓ │
│ 127.0.0.1:3389 │◄──────┴──────────│ 127.0.0.1:3389 │
│ (RDP 客户端) │ hdc rport 隧道 │ (Windows RDP 服务)│
└─────────────────┘ └──────────────────┘
数据流:
USB 数据线连接鸿蒙设备和 Windows 电脑
Windows 端运行 hdc rport tcp:3389 tcp:3389,把本机的 3389 端口反向映射到鸿蒙设备
鸿蒙设备上的 HShare App(或任何 RDP 客户端)连接 127.0.0.1:3389
数据全程通过 USB 物理链路传输,不经过任何网络设备
关键点:127.0.0.1:3389 对鸿蒙设备来说已经是本地回路地址了——因为 hdc rport 会把端口映射到设备自身的 localhost。这就是「USB 隧道」的通俗含义。
HShare 是什么
HShare 是为这个场景专门做的一个项目,包含两部分:
1. HShare App(鸿蒙端)
一个原生 HarmonyOS 应用(API 22,ArkTS + NAPI),主要功能:
USB 隧道引导 — 一步步引导用户开启 USB 调试、配置环境
隧道检测 — 自动扫描 127.0.0.1:3389 是否已就绪
内嵌 RDP 客户端 — 基于原生 C++ 实现的 RDP 协议栈,一键连接,不需要装第三方 RDP 软件
连接管理 — 断开/重连/状态监控
2. HShareTunnel(Windows 端)
一个 .NET 控制台工具,在 Windows 上运行,自动完成:
检测同目录下的 hdc.exe
连接鸿蒙设备
自动建立 hdc rport tcp:3389 tcp:3389 隧道
每 5 秒刷新检测连接状态
关于 hdc: hdc 是 HarmonyOS SDK 自带的工具。如果你装了 DevEco Studio,在 SDK 目录的 openharmony/toolchains/ 下就能找到 hdc.exe。也可以把 hdc.exe 和 libusb_shared.dll 提取出来放在 HShareTunnel.exe 同目录下。
硬核细节(给开发者看)
RDP 协议实现
HShare 的 RDP 客户端是自包含的 C 实现,不依赖 FreeRDP 或任何第三方 RDP 库:
功能 状态
TCP/X.224 传输层 ✅ 已完成
RDP Negotiation (RDP_NEG_REQ/RSP) ✅ 已完成
Fast-Path Input (键盘/鼠标/滚轮) ✅ 已完成
NAPI 桥接 (8 个 JS 接口) ✅ 已完成
ArkTS 集成 (import + 状态管理) ✅ 已完成
MCS Connect/GCC 完整协商 🔧 进行中
Security / Capability 协商 🔧 进行中
画面帧渲染 (XComponent) 📋 待实现
操作步骤(完整版)前提条件一套配齐需要:
一台 HarmonyOS 设备(手机/平板/PC,API 22+,即 HarmonyOS 6.0+)
一台 Windows 电脑(已开启远程桌面服务)
一根 USB 数据线
hdc 工具(可从 DevEco Studio SDK 提取)
第一步:Windows 端开启远程桌面
打开「设置」→「系统」→「远程桌面」
开启「启用远程桌面」
记下电脑名(后面连接会用到)
第二步:连接 USB 并开启调试
用 USB 数据线连接鸿蒙设备和 Windows 电脑
在鸿蒙设备上:设置 → 关于 → 版本号,连续点击 7 次直到提示「已进入开发者模式」
返回 设置 → 系统和更新 → 开发者选项
打开 USB 调试 开关
如果电脑上弹出授权弹窗,勾选「一律允许」并确认
第三步:建立隧道(Windows 端操作)
有两种方式:
方式 A:使用 HShareTunnel.exe(推荐)
把 HShareTunnel.exe、hdc.exe、libusb_shared.dll 放到同一目录
双击运行 HShareTunnel.exe
看到 ✅ hdc rport 隧道已建立 的提示即成功
方式 B:手动操作
打开 CMD(命令提示符)
进入 hdc.exe 所在目录
依次执行:
hdc list targets
hdc rport tcp:3389 tcp:3389
看到 Forwarding tcp:3389 to tcp:3389 success 即成功
第四步:鸿蒙端连接
方式 A:使用 HShare App
打开 HShare App
切换到「USB 隧道连接」标签确认隧道状态显示「已连接」
切换到「RDP 远程控制」标签
点击「启动 RDP 连接」
使用第三方 RDP 客户端 连接地址填:127.0.0.1:3389
推荐客户端:
AirDRP — 纯血鸿蒙 RDP 客户端
第五步:日常使用
隧道建立后,只要不拔 USB 线、不关闭 CMD 窗口,隧道会一直保持。你可以随时在 HShare App 里断开或重连 RDP。
如果断开后需要重连,在 CMD 中按 Ctrl+C 停止,再重新执行 hdc rport tcp:3389 tcp:3389 即可。
效果怎样
画面流畅度:USB 链路的延迟远低于 WiFi,鼠标拖动几乎零延迟
稳定性:不受任何网络波动影响,会议室、高峰时段都没问题
安全性:数据只走 USB 线缆,不经过公司网络,不用担心被嗅探
即插即用:USB 线插上就跑,不需要配 IP、不需要连 WiFi
局限性
需要 USB 数据线连接,不是无线的(有舍有得)
需要 Windows 开启远程桌面(大多数 Windows 专业版/企业版自带,家庭版需额外开启)
需要开发者模式 + USB 调试(建议日常使用时保持开启)
项目状态
目前是早期开发阶段,核心框架已就绪,RDP 协议实现在逐步完善中。
软件下载:
没有上架应用商店,需要小白调试助手侧载安装(自行百度安装)
文件:里面有鸿蒙安装软件包和win运行程序
通过百度网盘分享的文件:HShare
链接:https://pan.baidu.com/s/1QzM9DZDdGNnqESDweKPt-g?pwd=1234
提取码:1234
复制这段内容打开「百度网盘APP即可获取」
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|
|