通过noVNC实现远程连接windows桌面

JavaScript011

通过noVNC实现远程连接windows桌面,第1张

最近项目需要能够实现远程桌面,目标桌面是windows系统,发起源是我们后台管理系统的一个子页面,这就需要通过网页打开远程桌面并进行链接,所以我们选用了noVNC。网上大部分都是linux系统为服务器端,现在我就介绍下windows系统为服务器端的情况。

noVNC简介:我们集成在管理系统中的vnc访问客户端,提供一种在网页上通过html5的Canvas,通过这个在线网页发起vnc请求,访问目标机器上vncserver提供的vnc服务。

参考https://kanaka.github.io/noVNC/  

utralVNC简介:windows的vnc服务器,在你需要访问的目标机器上安装。

参考 http://www.uvnc.com/

websockify简介:noVNC是通过websockt建立链接,而VNC server不支持websocket,所以需要开启websockify代理来做 WebSockets 和 TCP sockets 之间的转换。

参考:https://github.com/kanaka/websockify

进入websockify-master\websockify-master\other\js

启动node服务器(这边直接$node websockify.js会报错,记得安装相关js模块 )

输入:node websockify.js 8000 localhost:5900 转发8000端口的http链接到5900端口(具体看vnc的设置,有些服务器的端口不一定是5900)即vnc服务器端口,从而建立链接。

下图是我们用的小米路由器的设置,其他路由器自行搜索方法。

注意:这边的外部端口(图中8001)是noVNC页面外网访问时候需要填写的端口,这边的内部端口(图中8000)是路由转发的端口,即这个端口必须和websockify.js监听的端口一致,参考第二步,websockify.js监听转发的端口也是8000。

Extension:

1.多台服务器可以在路由器转发的时候设置不同的端口来进行访问。

2.realVNC tightVNC的服务器测试均不能通过noVNC访问,有一些诡异的报错。

3.现在的链接都是非加密的,加密的链接还没尝试。python服务器的通信加密在linux机器下测试可行。

使用过Windows Server 2003操作系统的朋友,相信大家对系统中的“远程桌面”功能已经比较熟悉了,借助该功能,任何用户都可以轻松实现对服务器的远程访问和管理。

远程桌面 Web 连接是 ActiveX 控件,该控件实际上提供了与完整终端服务客户端相同的功能,但它旨在通过 Web 传递该功能。嵌入网页时,即使用户的计算机上并未安装完整的远程桌面连接客户端,远程桌面 Web 连接也可以作为与终端服务器连接的客户端会话的宿主。

1、必要组件安装

打开“控制面板”→“添加或删除程序”→“添加或删除Windows组件”→“应用程序服务器”→“详细信息”→“Internet信息服务(IIS)”→“详细信息”→“因特网服务”→“详细信息”→勾选“远程桌面Web连接”→连点三个“确定”→“下一步”等待完成。

2、启用或禁用远程连接

打开系统中的控制面板,在“远程”选项卡上,选中或清除“允许用户远程连接到您的计算机”复选框。单击“选择远程用户…”,在随后出现的对话框中添加或删除用户,单击“确定”(两次)。

3、在客户端应用

在“开始”→“运行”,在运行框中键入“http://服务器/TSWEB”(如图)→“确定”,若是第一次在本客户端使用,会要求下载ActiveX 控件,在“服务器”后的文本框中键入服务器名,在“大小”后的下拉列表中选择远程桌面的分辨率,请选择“全屏”,(否则远程桌面会显示在浏览器中),回车后即可看到登录窗口,键入用户名与密码即可进入远程桌面。其它就同使用本地机一样。

若要退出,请选择“注销”,若一会儿后还要进入,请选择“断开”,再进入时方法同前。当然如果权限足够大,还可选择“重新启动”、“关机”。

注意在使用时,不要直接关掉“远程桌机Web连接”的浏览器窗口,否则远程桌面相当于“断开”,并未注销。

4、终端服务配置

请依次单击“开始”和“控制面板”,双击“管理工具”,再双击“终端服务配置”。在控制台树中,单击“连接”。在详细信息窗格中,右键单击要配置客户端设备映射的连接,然后单击“属性”。若要使远程桌面也成为多媒体,请在“客户端设置”选项卡下选中“颜色深度的最大值”,并在下拉列表中选择适当的值。“禁用下列项目”下,请不要选中“音频映射”,以使远程桌面也能播放音乐。

默认的登录名设置

在“Internet 信息服务(IIS)管理器”下查找到TSWEB虚拟目录的具体位置,修改Default.htm文件,就不需要每次填入服务器名。用记事本打开Default.htm,找到input name="Server",修改Value=“服务器名或IP地址”,保存退出。

5、修改注册表开启远程桌面

第一步:远程修改Windows 2003注册表

在客户机系统中,点击“开始→运行”,在“运行”对话框中输入“regedit”命令,进入注册表编辑器。接着在主菜单栏中点击“文件→连接网络注册表”,弹出“选择计算机”对话框,在“输入要选择的对象名称”栏中填入要开启远程桌面功能的Windows 2003服务器的机器名(如SERVER1)最后点击“确定”按钮,打开Windows 2003服务器注册表。

在注册表编辑器左栏中依次展开“server1/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server”项目,然后在右栏中找到“fDenyTSConnections”键,双击打开后将该键值修改为“0”,点击“确定”按钮,最后关闭注册表编辑器。

第二步:远程重启Windows 2003服务器

我们虽然通过远程修改注册表开启了Windows 2003远程桌面,但这时修改还没有生效,需要重新启动Windows 2003服务器。

在客户机中,点击“开始→运行”,在“运行”对话框中输入“CMD”命令,进入命令注意符窗口。键入“shutdown -m //SERVER1 r”命令,重新启动Windows 2003服务器(SERVER1为Windows 2003服务器的机器名)。

完成了以上两个步骤的设置,就开启了Windows 2003服务器的远程桌面,网络管理员就可以在客户端使用“远程桌面连接”维护Windows 2003服务器了。

注意:在客户端使用的域用户账号具有远程修改注册表和远程重启Windows 2003服务器的权限,一般域用户无此权限。

一 : 如何建立远程桌面服务Web访问端口?

远程桌面服务Web访问是一个很棒的功能,管理员可以用它为世界各地的用户发布托管的应用程序。

有了它,用户只需要一个浏览器登录到端口,并且使用的Windows版本支持远程桌面客户端软件(Vista及更高版本的Windows都可以,Windows XP也有一个专用的客户端),他们就能够从任何地方访问终端服务托管的应用程序。

对于一些高级的用户,可以通过组策略自定义用户权限范围内可以访问的应用程序,并进行更加细致的控制,当用户访问企业网络内的端口时,不同的用户根据其权限将显示出不同的应用程序。

要建立远程桌面服务Web访问的端口,事先要满足几个要求:

安装远程桌面服务的角色。

只能使用Windows Server 2008 R2作为远程桌面访问端口的服务器。

必须有一台服务器运行远程桌面会话主机和远程桌面连接代理的角色,两者都是通过Windows Server 2008的服务器管理器来进行安装。

远程桌面Web访问角色服务的安装

首先,将正确的代码部署到承载门户网站的服务器上。 以下步骤将安装远程桌面Web访问角色服务:

1.以管理员身份登录到远程桌面 Web访问端口的服务器。

2.单击开始>管理工具>服务器管理器。

3.在“角色概要”部分,单击“添加角色”项,在向导介绍页面单击“下一步”。

4.选择“远程桌面服务”角色,并单击“下一步”,在远程桌面服务页面单击“下一步”。

5.选择“远程桌面Web访问”角色服务。 在对话框提示中,单击“安装必需的角色服务”按钮,单击“下一步”。

6.在Web服务器(IIS)页面,单击“下一步”,在选择角色服务页面单击“下一步”。

7.在确认安装选择页面,单击“安装”。

现在远程桌面 Web访问端口已经就绪,唯一缺少的就是它托管的应用程序。它们可以是来自远程桌面连接代理服务器,远程桌面会话服务器或服务器场。 另外还需要将远程桌面Web访问服务器添加到远程桌面会话主机服务器的TS Web Access Computers安全组中。 当然,这很容易做到:

1.以管理员身份登录到https:// <server_fqdn>/ rdweb(远程桌面 Web访问服务的站点)。

2.选择“配置”页面。

3.选择“远程桌面连接代理服务器”或“一个或多个RemoteApp来源”。指定相应的地址,单击“确定”以保存更改。

配置RemoteApp和桌面连接属性

此时,需要在连接代理服务器上对远程应用程序进行相关属性的配置。它可以让web访问服务器和承载远程桌面服务的服务器相互交流,交换连接和会话信息。

1.在远程桌面连接代理服务器上,单击“开始”>“管理工具”>“远程桌面服务”>“远程桌面连接管理器”。

2.在界面左边的面板中,点击顶部的节点,然后在右边的面板点击“属性”。

3.在“连接设置”选项卡中定义显示名称和连接ID。

4.导航到“远程桌面Web访问”选项卡,在服务器名称文本框中为远程桌面 Web访问服务器键入完整的DNS地址。

5.单击“添加”按钮,然后单击“应用”,最后“确定”。

为RemoteApp列表添加相应的应用程序

最后一步是为访问的用户添加应用程序。这个过程相当简单:

1.在会话主机上,单击“开始”>“管理工具”>“远程桌面服务”>“RemoteApp管理器”。

2.在操作面板中,单击“添加RemoteApp程序”,在向导介绍页面中单击“下一步”。

3.从列表中选择要添加到RemoteApps中的程序。对话框显示的是所有用户开始菜单文件夹中的所有条目,也可以单击“浏览”按钮,然后指定一些位于磁盘中的应用程序。

4.单击“下一步”,查看设置,然后单击“完成”。

一切完成之后,用户便能访问门户网站,他们可以点击需要运行的应用程序的图标,他们的会话和连接也将自动建立。此时,应用程序运行在服务器端。这是一个受控的环境,用户的数据只保留在企业内部的网络上,客户端只负责呈现画面。