分享

web远程访问Windows桌面

 高观点笃者 2023-08-13 发布于上海

一、远程桌面的方法

Windows远程桌面连接可以使用微软自带的mstsc,还有比较常用的teamviewer、toDesk、向日葵和vnc等。其中teamviewer是商用软件,现在需注册登录,个人感觉不是很好用。

这些都是客户端桌面软件,这边要说的是,采用web浏览器的方式连接远程桌面。

二、web远程方案

这边要说的是,使用开源代码的方式实现:

mstsc,用的是node框架,其使用的是node-rdp。github地址:GitHub - citronneur/mstsc.js: A pure Node.js Microsoft Remote Desktop Protocol (RDP) Client 该方案在Windows server下会出现各种问题,远程桌面连接时会被中断,node-rdpjs里面的lay.js也问题,需要替换到特定的commit(9d4058d600aa3b6159fc5a1e2de20a0511d9c412)下。

使用vnc,需要使用noVnc做代理转发,然后在Canvas标签中显示出画面。

noVnc也是使用node。所以,必须在转发服务器安装node,对noVnc的调用是使用Websockify。vnc server可以使用除RealVNC意外的所有版本。

三、步骤

使用noVnc实现的步骤如下:

1. 在Windows server系统下,首先得配置支持远程桌面服务,可以在“服务管理器--添加角色--远程桌面服务”添加。这点很重要,因为如果要同时远程多个账号,没有添加远程桌面角色,即使在组策略管理中设置了可同时连接的用户数,也是无效的(默认2个用户)

2. 安装node。安装node,要带上npm模块。

3. 将noVnc和websockify放到指定目录,如D:\noVnc,cmd  将当前目录定到D:\noVnc下,使用npm下载安装ws、optimist和mime-types模块(这步安装其实可以省略)

4. cmd当前目录分别移到noVnc代码模块和websockify下,安装ws、optimist和mime-types模块

5. 添加防火墙入站规则,添加协议和端口(tcp:8084),这一步应该也可以不用的,只要设置允许node通过防火墙就行。

6. 执行 node .\websockify.js --web ..\..\noVNC 8084 http://192.168.1.10:5900(192.168.1.10是vnc server所在的IP)

7. 在任意电脑的浏览器上访问:http://192.168.1.10:8084/vnc.html  ----->  输入vnc访问密码

 四、问题

若使用普通app权限执行vnc server,在远程时必须登录要远程登录的账户,否则会提示没有UAC权限。可以使用Windows service方式执行vnc server。

noVNC:GitHub - novnc/noVNC: VNC client web application

websockify:GitHub - novnc/websockify-js: JavaScript WebSocket to TCP bridge

五、方案补充

计划在web远程访问Windows桌面(二)中做些方案补充,及另一种web远程Windows桌面的方案介绍。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多