html5之应用纯webrdp远程桌面连接
远程桌面连接技巧
![远程桌面连接技巧](https://img.taocdn.com/s3/m/2773b811cc7931b765ce150f.png)
自从Windows 2000开始,Microsoft推出了远程桌面连接(Remote Desktop Connection)这个好东西。
相信一部分人还没有怎么用过这个东西,那我就介绍一下它吧。
1. 简介“远程桌面连接”是一种远程操作电脑的模式,它可以用于可视化访问远程计算机的桌面环境,用于管理员在客户机上对远程计算机服务器进行管理等场合。
“远程桌面连接”的前身应该是Telnet。
Telnet是一种字符界面的登陆方式,微软将其扩展到图形界面上,显示了异常强大的功能。
2. 远程桌面连接的安装与启用远程桌面连接的服务器端在仅仅可以被安装在以下操作系统上:Windows 2000 Server,Windows XP(任意版本),Windows Server 2003(任意版本),Windows Vista(任意版本)。
下面分别介绍在各个系统下面的安装方法。
(1) Windows 2000 Server在Windows 2000 Server下面,需要安装终端服务(Terminal Service),才能使用远程桌面连接:控制面板->添加删除程序->添加删除Windows组件,选择终端服务,安装完成后重新启动就可以使用终端服务了。
注意安装过程需要Windows 2000的安装光盘。
注意在默认情况下,Windows 2000 Server的终端服务安装完成后,没有密码的帐户也可以通过网络访问。
Windows 2000 Server推出了远程桌面连接后,受到了广泛的好评。
但是在Windows 2000 下面使用远程桌面连接相对比较复杂。
下面可以看到,在Windows XP及以后系统中使用简便的相对简单。
(2) Windows XP在Windows XP下使用远程桌面连接相对简单。
因为Windows已经内置了中终端服务,不需要安装就可以使用了。
具体启用方法如下:控制面板->性能和维护->系统->远程桌面,将“允许用户远程连接到此计算机”前面勾上就可以了。
让IIS完美支持“远程桌面Web连接”功能
![让IIS完美支持“远程桌面Web连接”功能](https://img.taocdn.com/s3/m/3d116b3616fc700abb68fc65.png)
二、安装“远程桌面 Web 连接” “远程桌面 Web 连接”组件是集成在 IIS 中的功能,系统默认是没有安装 的,需要我们手动安装。
一、浏览器遥控 Windows 2003 的前提 在众多操作系统版本中只有 Windows 2003 具备这种通过浏览器远程遥控系 统操作的功能,因为在 Windows 2003 中新添加了名为“远程桌面 Web 连接”的 功能。他可将所有的设置都在服务器端完成,而客户端无需安装任何程序和做 任何设置。我们要做的就是直接打开浏览器,在地址栏中输入相应的服务器地 址,再输入合法的用户名和口令,就可以如同在本地一样操作远端的服务器。 这样,使得我们的远程控制变得更加方便和安全。
图1
第三步:在“Internet 信息服务(IIS)”设置窗口中找到“万维网服务” ,双击该服务进一步打开具体配置内容(如图 2)。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根保1据过护生管高产线中工敷资艺设料高技试中术卷资0配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中体2资2配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并术3试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
html5 远程桌面原理
![html5 远程桌面原理](https://img.taocdn.com/s3/m/1dc2f54dbb1aa8114431b90d6c85ec3a87c28b08.png)
HTML5远程桌面原理是基于HTML5技术的远程桌面解决方案,它利用HTML5的特性来实现远程桌面连接和操作。
其原理主要包括以下几个方面:
1.WebSocket通信:HTML5远程桌面使用WebSocket协议进行通信,WebSocket是一种在单个TCP连接上进行全双工通信的协议,可以实现实时的数据传输和交互。
2.Canvas绘图:HTML5远程桌面利用Canvas元素来进行图形绘制,将远程桌面的图像通过Canvas元素进行渲染,实现远程桌面的显示和操作。
3.触摸事件支持:HTML5远程桌面可以支持触摸事件,通过HTML5的触摸事件API来实现在远程桌面上的触摸操作,使得用户可以通过手势进行远程操作。
4.音视频传输:HTML5远程桌面还可以通过HTML5的音视频API来实现音视频的传输和播放,实现远程桌面的多媒体功能。
综上所述,HTML5远程桌面原理主要是利用HTML5的WebSocket通信、Canvas绘图、触摸事件支持和音视频传输等特性来实现远程桌面连接和操作。
这种基于HTML5的远程桌面解决方案具有跨平台、实时性好、交互性强等优点,逐渐成为远程桌面领域的主流技术。
04.使用远程桌面Web访问部署个人虚拟桌面循序渐进指南
![04.使用远程桌面Web访问部署个人虚拟桌面循序渐进指南](https://img.taocdn.com/s3/m/c53c7001f78a6529647d53d4.png)
使用远程桌面Web访问部署个人虚拟桌面循序渐进指南关于本指南本循序渐进指南将向您介绍在测试环境中使用远程桌面Web访问(RD Web Access)功能创建个人虚拟桌面的步骤。
通过这些步骤,您将创建包含下列组件的测试部署环境:∙ 一台远程桌面虚拟化宿主(RDVirtualization Host)服务器∙ 一台远程桌面连接Broker(RDConnection Broker)服务器∙ 一台使用重定向模式的远程桌面会话主机(RD Session Host)服务器∙ 一台远程桌面Web访问(RDWeb Access)服务器∙ 一台被配置为个人虚拟桌面的虚拟机本指南将假设您已经完成了安装远程桌面会话主机循序渐进指南(/fwlink/?LinkId=147292)中的步骤,并且已经部署了下列组件:∙ 一台RD会话主机服务器∙ 一台远程桌面连接客户端计算机∙ 一台Active Directory域服务域控制器在完成本指南中列出的步骤后,您将能够:∙ 在CONSOTO域中安装必要的服务器。
∙ 安装并配置用作个人虚拟桌面的虚拟机。
∙ 配置个人虚拟桌面。
∙ 验证个人虚拟桌面可以正常工作。
个人虚拟桌面的主要用途是为用户提供专用的虚拟桌面。
本指南未能提供的内容本指南并未提供下列内容:∙ 远程桌面服务概述。
∙ 设置Active Directory域服务或RD会话主机的指导。
该话题的详细信息可参考安装远程桌面会话主机循序渐进指南(/fwlink/?LinkId=147292)。
要获取该文档的可下载版本,可访问Microsoft下载中心网站的安装远程桌面会话主机循序渐进指南(/fwlink/?LinkId=147293)页面。
重要如果您曾在安装远程桌面会话主机循序渐进指南中配置过计算机,则需要在新环境中完成本指南列出的步骤。
∙ 安装和配额制虚拟桌面池的指导。
这些信息可参考使用远程桌面Web访问部署虚拟桌面池循序渐进指南(/fwlink/?LinkId=147906),要获取该文档的可下载版本,可访问Microsoft下载中心网站的使用远程桌面Web访问部署虚拟桌面池循序渐进指南(/fwlink/?LinkId=147907)页面。
外网如何远程桌面连接内网电脑
![外网如何远程桌面连接内网电脑](https://img.taocdn.com/s3/m/83adb16fcf84b9d528ea7adc.png)
外网如何远程桌面连接内网电脑
服务器部署在内网环境,在同一个局域网环境下可以直接相互远程访问,在外网环境如何远程桌面连接内网电脑?下面是小编给大家整理的一些有关外网环境远程桌面连接内网电脑的方法,希望对大家有帮助!
外网环境远程桌面连接内网电脑的方法
开始运行regedit进入注册表,修改默认的远程端口3389为其他自定义端口。
注册表方式修改端口后,需要重启电脑后才生效,这个需要注意。
也可以自行通过其他修改端口工具进行操作。
只有开启了远程其他机子才能访问,我的电脑属性允许外网远程开启,如服务器有开启防火墙的,同时需要在windows控制面板的防火墙入规则添加一个端口允许访问的规则开放这个端口让可以访问。
在服务器上安装启用nat123客户端。
可以将它当成一个定位端,借助它来实现外网直接连接内网的装置。
登录客户端添加一个非网站映射。
将内网远程桌面地址映射到外网地址。
内网地址填写远程桌面固定的地址,如是本机可以直接填写127.0.0.1或localhost这种格式地址。
在外网访问远程时,使用映射后的外网地址和外网端口。
为保持外网可以正常远程,不要关闭内网映射客户端,在使用过程中。
END
看了“外网如何远程桌面连接内网电脑”的人还看了
1.外网远程桌面如何连接内网服务器
2.如何实现内网IP映射局域网端口发布外网访问
3.局域网怎么搭建让外网远程访问
4.端口映射内网映射外网访问怎么设置。
Windows远程桌面连接与使用指南
![Windows远程桌面连接与使用指南](https://img.taocdn.com/s3/m/f6c17ccfdc88d0d233d4b14e852458fb770b38d4.png)
Windows远程桌面连接与使用指南第一章:什么是Windows远程桌面连接Windows远程桌面连接是一种实现远程访问和控制的技术,用户可以通过远程连接软件在远程计算机上控制和操作目标计算机。
它是一种非常方便且常用的远程协作工具,适用于个人用户和企业用户。
第二章:Windows远程桌面连接的配置与设置2.1 远程桌面连接协议(RDP)远程桌面连接协议(RDP)是Windows远程桌面连接的核心技术,它实现了客户端与服务器之间的安全通信和数据传输。
在Windows操作系统中,RDP已经内置了远程桌面连接功能,无需额外安装。
2.2 配置远程桌面连接的目标计算机要使用远程桌面连接功能,首先需要在目标计算机上进行配置。
打开控制面板,选择“系统与安全”,进入“系统”设置,点击“远程设置”选项。
在弹出的窗口中,勾选“允许远程连接到此计算机”,并根据需求选择其他设置。
2.3 配置客户端计算机在使用远程桌面连接功能之前,需要对客户端计算机进行相应的配置。
打开远程桌面连接软件(一般为Windows自带的“远程桌面连接”),在“计算机”栏中输入目标计算机的IP地址或计算机名,点击“连接”。
第三章:Windows远程桌面连接的使用技巧3.1 远程文件传输通过远程桌面连接,在本地计算机和远程计算机之间可以方便地传输文件。
在远程连接的窗口中,选择“开始”菜单,点击“访问”或“连接到”选项,即可打开目标计算机上的文件资源管理器,实现文件的传输。
3.2 远程协作与会议远程桌面连接不仅可以实现对目标计算机的远程操控,还可以在远程连接的窗口中进行协作与会议。
通过远程桌面连接软件提供的功能,用户可以在远程计算机上打开文档、编辑文件、进行实时交流等,实现远程协同工作。
3.3 远程技术支持与故障排除作为一种远程协作工具,远程桌面连接还可以用于远程技术支持和故障排除。
例如,当用户遇到计算机故障时,可以通过远程桌面连接将计算机的控制权交给技术支持人员,以便他们远程诊断和解决问题。
远程桌面协议(RDP)
![远程桌面协议(RDP)](https://img.taocdn.com/s3/m/8f3c500942323968011ca300a6c30c225801f052.png)
远程桌面协议(RDP)远程桌面协议 (RDP) 允许您远程访问计算机。
多年来,它免除了许多系统管理操作,无疑是一项非常有用的技术。
RDP 长期以来一直提供远程访问支持,而且越来越好。
该协议于 1998 年在 Windows NT 4.0 Terminal Server Edition (TSE) 中引入,自此以后,几乎在 Windows? 的每个发行版本中都有所改进。
从 Windows 2000 开始,几乎任何人都可以轻松地远程访问服务器系统,因为终端服务已作为可选的 Windows 组件引入,并且可以对其进行配置,因此您可以将系统用作实际的终端服务器或用作我们现在所说的远程桌面。
Windows Server? 2003 和 Windows XP 提供本机远程桌面功能,允许您像在本地进行控制一样控制系统。
现在,我每天都使用远程桌面远程访问我的家庭 PC 和服务器及使用 Media CenterE某tender。
Windows XP 和更高版本的 Windows 中增加了远程协助,远程协助可提供与远程桌面相似的体验,但远程协助是专门为本地用户向远程用户请求协助而设计的。
随着远程访问支持的不断演变,Windows Vista? 现在允许远程用户提供远程协助(如果组策略允许)。
正如您会看到的,远程桌面将此强大的功能提升到了一个全新的级别,您会感激它提供的一切。
当然,远程桌面存在一些限制,但同优点、缺点以及绝妙之处对于 Windows XP(Media Center Edition 除外),主要限制是每次只能登录一个交互式用户。
当 Windows XP 中的快速用户切换允许登录多个用户时,无论这些用户对于 PC 是本地用户还是远程用户,只有一个用户可以交互地使用鼠标或键盘。
对于Windows Server 版本(不作为终端服务器运行),可以一次连接两个远程桌面会话。
要在 Windows Server 2003 中通过远程桌面连接到实际控制台会话,您需要使用可选参数 /console 启动终端服务客户端应用程序 (MSTSC.e某e)。
如何远程访问局域网中的设备
![如何远程访问局域网中的设备](https://img.taocdn.com/s3/m/45be9055a31614791711cc7931b765ce05087a96.png)
如何远程访问局域网中的设备远程访问局域网中的设备已经成为现代工作和生活中的常见需求。
随着互联网的普及和技术的发展,人们希望能够方便地在任何地点远程访问家庭或办公室中的设备,例如摄像头、路由器、服务器等。
本文将介绍如何通过不同途径实现远程访问局域网中的设备。
一、使用虚拟专用网络(VPN)虚拟专用网络是一种在公共网络上建立安全连接的技术,可以实现远程访问局域网中的设备。
首先,在主服务器中配置VPN服务器,并为用户分配唯一的VPN账号和密码。
用户可以在远程设备上安装VPN客户端,通过输入正确的账号和密码,建立与VPN服务器的安全连接。
一旦连接成功,用户就可以通过远程设备访问局域网中的设备,享受与直接连接一样的体验。
二、使用远程桌面协议(RDP)远程桌面协议是一种能够远程访问计算机桌面的协议。
在局域网中,用户可以通过RDP将远程设备连接到主机,并实现对主机的完全控制。
用户只需要在远程设备上安装支持RDP的客户端,并输入主机的IP地址和账号密码即可。
RDP的优势是操作简单、便捷,适用于远程控制服务器等需要高度操作自由度的设备。
三、使用远程访问软件除了VPN和RDP之外,还有一些专门的远程访问软件可以实现远程访问局域网中的设备。
例如,TeamViewer和AnyDesk等软件可以通过创建一个虚拟的会话窗口,实现用户对目标设备的远程控制。
用户只需在目标设备和远程设备上同时安装并启动该软件,并输入对应的访问码,即可建立起远程连接。
这些软件通常提供了方便实用的操作界面和功能,适用于一般用户和非专业人士。
四、使用云服务如果局域网中的设备支持云服务,用户可以通过云平台访问和管理设备。
云服务通常提供了Web界面和手机应用,用户只需在任何地方登录云平台账号,即可远程访问和控制设备。
云服务的优势在于无需配置复杂的网络设置,适用于普通用户和非技术人员。
总结起来,远程访问局域网中的设备可以通过多种方式实现,包括使用虚拟专用网络、远程桌面协议、远程访问软件和云服务等。
远程桌面WEB方式连接及应用
![远程桌面WEB方式连接及应用](https://img.taocdn.com/s3/m/b51910116c175f0e7cd13791.png)
远程桌面WEB方式连接及应用By Welkin一、介绍远程桌面其实可以为我们做很多事,而且不久的将来,其所发挥的作用将更大,简单地说,远程桌面管理,就是可以让我们坐在家里就可以连接到远程电脑的桌面,可以操作远程的电脑为你做任何事,如收发邮件了,查看报表了,进行用户管理了,进系统维护更新了,就像实际操作那台电脑一样。
有些第三方的软件也有很强的远程桌面的功能,如PC Anywhere,VNC等等。
在Windows xp已经完全集成了远程桌面,操作也很方便,对于Windows 2000 在Server 版本中有终端服务器,也可以用于远程桌面控制。
远程桌面,主要包括客户端和服务器端,每台WINDOWS XP 都同时包括客户端和服务器端。
对于Windows 2000 在Server 版本中安装终端服务器既服务器端,在其它电脑中安装终端服务客户端就可以使用了,当然最方便是时使用远程桌面的WEB 客户端,呵呵,不需要安装任何东东,这也是本文的主要目的。
二、网络示意图本文主要说明如何使用Web进行远程桌面连接,当然需要Web服务器了。
基本示意图如下:三、配置和使用工作PC的配置工作PC最好是使用WINDOWS XP 系统,这样系统中已经直接提供了远程桌面服务的支持,只需要进行起用就可以了。
其次也可以采用Windows 2000 Server 版本,在上面安装终端服务器后也可以使用。
对于 Window 2000 Professional版本已经更低的版本如Windows 98等则无法提供支持。
1、Windws XP系统的配置一般情况下,在Windows xp 装好之后,就可以了,当然如果你的XP是不用密码自动登录的,那就不行,没有密码是不让你进行远程桌面连接的,不然还不任何人都可以操作,安全无法保证。
故使用前需要对用户设置密码再起用服务。
在我的电脑进行右击,选择属性后出现如下窗口,在远程这个属性页面把“允许用户远程连接到这台计算机”选中就起用了,然后进行用户的设置,点击“选择远程用户”进行配置,一切OK!2、Windows 2000 Server 版本的配置在安装Windows 2000 Server的时候没有现在好终端服务,则必须在控制面板上面的添加删除程序里面添加添加删除程序/添加删除windows组件里,安装终端服务和终端授权给随后,在开始菜单/程序/管理工具上面就出现终端服务管理器,终端服务客户端生成器,终端服务配置,终端服务授权。
使用 HTML5 WebSocket 构建实时 Web 应用
![使用 HTML5 WebSocket 构建实时 Web 应用](https://img.taocdn.com/s3/m/d3c1fd88a0116c175f0e4825.png)
使用HTML5 WebSocket 构建实时Web 应用作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。
这其中有“Web 的TCP ”之称的 WebSocket 格外吸引开发人员的注意。
WebSocket 的出现使得浏览器提供对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道。
Web 开发人员可以非常方便地使用WebSocket 构建实时 web 应用,开发人员的手中从此又多了一柄神兵利器。
本文首先介绍HTML5 WebSocket 的基本概念以及这个规范试图解决的问题,然后介绍 WebSocket 的基本原理和编程接口。
接下来会通过一个简单案例来示范怎样实现一个 WebSocket 应用,并且展示 WebSocket 如何在功能强大和编程简单易用上达到的完美统一。
最后介绍了目前主流浏览器对 WebSocket 支持的状况、局限性以及未来的展望。
实时Web 应用的窘境Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏、在线证券、设备监控、新闻在线播报、RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可能已经过时了。
所以保持客户端和服务器端的信息同步是实时Web 应用的关键要素,对Web 开发人员来说也是一个难题。
在WebSocket 规范出来之前,开发人员想实现这些实时的Web 应用,不得不采用一些折衷的方案,其中最常用的就是轮询(Polling) 和Comet 技术,而Comet 技术实际上是轮询技术的改进,又可细分为两种实现方式,一种是长轮询机制,一种称为流技术。
web远程访问
![web远程访问](https://img.taocdn.com/s3/m/957a96007cd184254b353579.png)
在一般情况下,我们是通过客户端上的远程桌面连接器连接到远程桌面服务器,使用的端口默认是3389,但企业内部服务器的3389端口往往是不会在防火墙上对外部开放的,这时就要考虑另一种访问方法,通过部署远程桌面Web访问,使客户端可以通过http协议来访问到远程桌面和RemoteApp应用程序1.安装远程桌面Web访问组件按图点击【添加角色服务】勾选【远程桌面Web访问】远程桌面Web访问需要IIS组件支持,点击【添加所需的角色服务】自动勾选上了IIS的一些组件点击【安装】点击【关闭】后完成安装2.为网站绑定证书证书已经在第三章申请完毕,这里直接绑定,打开IIS管理器,在默认站点上右键点击【编辑绑定】选择https,点击【编辑】选择证书3.测试桌面Web访问来到客户端,打开IE输入远程桌面服务器的Web访问地址,这里是https:///rdweb输入账号密码登录登录后可以通过Web界面看到我们之前发布的RemoteApp程序运行word,选择RemoteApp程序可以使用到本机的哪些资源,点击【连接】输入账号密码可以看到成功打开了word也可以通过浏览器测试一下对远程服务器的桌面访问,回到主页面中切换到【远程桌面】标签,填写远程桌面服务器名称,点击【连接】连接到远程服务器时,也要求选择可以使用到本机的哪些资源最后输入账号密码登录成功连接到远程桌面,到这里远程桌面Web访问测试全部完成注意:经实测,通过TMG发布远程桌面Web访问,如果只是发布了443端口,那么外部用户通过Web访问是不能打开RemoteApp应用程序和远程桌面的,因为Web界面只是一个发布的窗口,最终在发生RemoteApp连接时,还是得用到远程桌面的端口,也就是3389端口,所以还要发布【RDP服务器】才可以通过Web访问正常打开RemoteApp应用程序和远程桌面,如果想把数据完全封装在https里,单走443端口的话,那就必须得用到远程桌面网关服务器了,后续会做讲解。
在web端使用html5访问远程桌面
![在web端使用html5访问远程桌面](https://img.taocdn.com/s3/m/6efb1972dcccda38376baf1ffc4ffe473368fdbb.png)
在web端使⽤html5访问远程桌⾯背景: 2019年12⽉5⽇,微软宣布放弃浏览器Edge,转⽽推出⼀款新的浏览器,⽽这款新浏览器将会采⽤⾕歌的Chromium 内核。
好了,反正已经⽆⼒吐槽,微软烂尾的项⽬也不是⼀个两个了,之前放弃IE转Edge,现在有把Edge丢掉拥抱Chromium,彻底结束了IE家族;居于这个原因,之前项⽬中有使⽤过⼀些跟IE绑定的ActiveX插件,也不得不做出改变了。
现状: ⽹上搜索“web访问远程桌⾯”,没有找到合适的解决⽅案,基本上有以下⼏种: 1、在Google浏览器上使⽤“IE TAB”插件,这个插件是Google浏览器应⽤商店上的插件;试过之后确实可以运⾏IE上的ActiveX插件;缺点: 1)最重要的,需要FQ,由于国内不能直接⽅法Google应⽤商店,所以要安装这个插件必须FQ出去;这在⼤部分情况下就不适合,因为很多⼈不会; 2)操作冗余,每次打开插件都需要在Google菜单栏点击⼀个⼩按钮,如何页⾯才会跟着转换,这会很奇怪; 3)兼容性糟糕,如果js在不同的ie浏览器下调试通过的,那在Google上也需要右键“IE TAB”按钮,找到属性栏,选择对应的IE版本;这体验就⾮常不好,因为很多⽤户根本不会使⽤浏览器插件,更不要说去设置参数 4)还是FQ,这个插件居然还引⽤了⼀个ajax的js⽂件,这个⽂件刚好是在Google域名下的;这就会导致设置插件属性的时候不FQ根本打不开; 5)放弃。
2、使⽤IIS的远程桌⾯,基于“Remote desktop web connection”技术,详细可浏览这篇⽂章缺点: 1)页⾯和操作步骤不可定制,只能使⽤IIS封装好的页⾯ 2)每次离开需要重新输⼊账户,很不⽅便 3)需要服务器该功能⽀持,以及各种配置操作 4)优先级低下,放弃。
3、微软最新的退出的“Remote Desktop”技术,详细可浏览这篇⽂章以及官⽅介绍:缺点: 1)需要windows service 2016⽕灾windows service 2019,并且安装RD⽹关; 2)配置太繁琐,⾮⼈类操作,看官⽅的安装配置介绍的⾮常不清晰,各种配置、各种⼯具⽀持、各种命令,要是决定使⽤这个⽅案,怕是会忍不住砸了电脑; 3)放弃放弃。
在远程桌面服务中配置RD网关直接访问内网
![在远程桌面服务中配置RD网关直接访问内网](https://img.taocdn.com/s3/m/a19eb6c95fbfc77da269b17a.png)
在远程桌面服务中配置RD网关直接访问内网2013-02-24 20:42:45RD网关内网虚拟化版权声明:原创作品,谢绝转载!否则将追究法律责任。
远程桌面网关(RD 网关)是一项角色服务,使授权远程用户可以从任何连接到 Internet 并且可以运行远程桌面连接 (RDC) 客户端的设备连接到内部企业网络或专用网络上的资源。
网络资源可以是远程桌面会话主机(RD 会话主机)服务器、运行 RemoteApp 程序的RD 会话主机服务器或启用了远程桌面的计算机。
RD 网关使用 HTTPS 上的远程桌面协议 (RDP) 在 Internet 上的远程用户与运行其生产力应用程序的内部网络资源之间建立安全的加密连接。
简单来说,如果企业内部网络有多个远程桌面(终端服务器)要发布到Internet,在通常的情况下,是需要将这些远程桌面服务器通过防火墙发布到Internet(使用不同的端口),Internet上的用户使用不同的端口连接到不同的内网服务器。
而在Windows Server 2008 R2中,通过配置RD网关,可以让Internet使用“远程桌面连接”程序,通过RD网关服务器直接连接到内网的多个远程桌面计算机。
下面通过图1所示的实验拓扑进行介绍。
图1 RD实验拓扑在图1中,主机安装Windows 8,在主机上安装VMware Workstation 9。
VM1、VM2是VMware Workstation中的两台虚拟机,VM1安装Windows Server 2008 R2,配置有两块虚拟网卡,第一块虚拟网卡使用VMnet8,设置192.168.80.10的IP地址,另一块虚拟网卡使用LAN Segment网卡(创建lan21),设置192.168.11.10的IP地址。
另一虚拟机VM2配置一块虚拟网卡,使用lan21,这个用来模拟内网。
在配置完RD网关之后,192.168.80.1的计算机可以使用“远程桌面”直接连接到192.168.11.11的主机,而正常情况下是不能直接连接的。
在web端使用html5访问远程桌面
![在web端使用html5访问远程桌面](https://img.taocdn.com/s3/m/23cfa63c2bf90242a8956bec0975f46527d3a782.png)
在web端使⽤html5访问远程桌⾯前⼏天看见⼀篇⽂章很受启发,通过,但是⽂中给的两段代码实在没有多⼤⽤途,于是这⼏天正好西安封城,就研究了⼀下简单实现了,不过还不太稳定,先发布出来。
1、原理简介服务器端就是被控制的电脑,开启websocket端⼝监听,可以⽤封装好的fleck包。
接收到客户端信息解析键盘和⿏标事件,然后在本机上发送这些键盘和⿏标按键(⽤现成的组件KeyMouseHook)。
加个定时器每隔500毫秒执⾏截屏,并给所有客户端发送。
2、服务器端代码using Fleck;using Newtonsoft.Json;using System;using System.Collections.Generic;using ponentModel;using System.Configuration;using System.Data;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Loamen.KeyMouseHook;using Loamen.KeyMouseHook.Native;namespace服务器{public partial class Form1 : Form{List<IWebSocketConnection> allSockets;WebSocketServer server;InputSimulator sim = new InputSimulator();[DllImport("user32.dll")]public static extern bool PrintWindow(IntPtr hwnd, // Window to copy,Handle to the window that will be copied.IntPtr hdcBlt, // HDC to print into,Handle to the device context.UInt32 nFlags // Optional flags,Specifies the drawing options. It can be one of the following values.);public Form1(){InitializeComponent();}private void fsAddConsole(string message){if (richTextBox1.Text.Length > 50000){richTextBox1.Clear();}richTextBox1.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"));richTextBox1.AppendText("" + message);richTextBox1.AppendText("\r\n");richTextBox1.ScrollToCaret();//写⽇志if (checkBox3.Checked){string path = ConfigurationManager.AppSettings["check_log_path"].ToString() + "/" + DateTime.Now.ToString("yyyy-MM-dd");if (!Directory.Exists(path)){Directory.CreateDirectory(path);}File.AppendAllText(path + "/wsserver" + "_巡检⽇志.log", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + "" + message + "\r\n", Encoding.UTF8); }else {}}private void button1_Click(object sender, EventArgs e){//管理SocketallSockets = new List<IWebSocketConnection>();//配置地址server = new WebSocketServer("ws://" + textBox1.Text + ":" + textBox2.Text);//出错后进⾏重启server.RestartAfterListenError = true;//开始监听server.Start(socket =>{//关联连接建⽴事件socket.OnOpen = () =>{Invoke((new Action(() =>{fsAddConsole("Open!");})));allSockets.Add(socket);//allSockets.ToList().ForEach(// s => s.Send (ImageToBytes(pictureBox1.Image))// );};//关联连接关闭事件socket.OnClose = () =>{Invoke((new Action(() =>{fsAddConsole("Close!");})));allSockets.Remove(socket);};//接受客户端消息事件socket.OnMessage = message =>{Invoke((new Action(() =>{fsAddConsole(message);if (checkBox2.Checked){var cmd = JsonConvert.DeserializeObject<ClientCmd>(message);if (cmd.action == "mousemove"){var point = new Point(cmd.x, cmd.y).ToAbsolutePoint();sim.Mouse.MoveMouseTo(point.X, point.Y);}else if (cmd.action == "mousedown"){sim.Mouse.LeftButtonDown();}else if (cmd.action == "mouseup"){sim.Mouse.LeftButtonUp();}else if (cmd.action == "click"){sim.Mouse.LeftButtonClick();}else if (cmd.action == "dbclick"){sim.Mouse.LeftButtonDoubleClick();}else if (cmd.action == "rightclick"){sim.Mouse.RightButtonClick();}else if (cmd.action == "keypress"){//sim.Keyboard.KeyPress();}else if (cmd.action == "keyup"){List<VirtualKeyCode> modifiedkey = new List<VirtualKeyCode>();if (cmd.shift){modifiedkey.Add(VirtualKeyCode.SHIFT);}if (cmd.ctrl){modifiedkey.Add(VirtualKeyCode.CONTROL);}if (cmd.alt){modifiedkey.Add(VirtualKeyCode.MENU);}sim.Keyboard.ModifiedKeyStroke(modifiedkey, (VirtualKeyCode)cmd.key);}else{//其他指令}}else {//查看模式,不响应远程指令}})));//allSockets.ToList().ForEach(// s => s.Send("bili: " + message));};//socket.OnPing});fsAddConsole("开始监听");}private void Form1_Shown(object sender, EventArgs e){textBox1.Text = ConfigurationManager.AppSettings["ip"].ToString();textBox2.Text = ConfigurationManager.AppSettings["port"].ToString();}Image imgTemp;private Image GetWindowImage(IntPtr windownHandle){Control control = Control.FromHandle(windownHandle);Bitmap image = new Bitmap(control.Width, control.Height);Graphics gp = Graphics.FromImage(image);IntPtr dc = gp.GetHdc();PrintWindow(windownHandle, dc, 0);gp.ReleaseHdc();gp.Dispose();return image;}private void button2_Click(object sender, EventArgs e){try{// imgTemp = GetWindowImage(Handle);Bitmap bt = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.FromImage(bt);g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.PrimaryScreen.Bounds.Size);//获取屏幕截图 imgTemp = SaveJpg(bt, 10);//设置图⽚清晰度////mm = GetWebImage(mm, 360, 240);//改变截屏图⽚⼤⼩////mm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);//// pictureBox1.Image = tmgTemp;// PrintScreen ps = new PrintScreen();//imgTemp = ps.CaptureScreen();//ps.CaptureScreenToFile(di + $"\\screenShoot{Guid.NewGuid()}.png", ImageFormat.Png);fsAddConsole("获取屏幕成功");}catch (Exception ex){fsAddConsole("获取屏幕出错"+ex.Message);// throw;}}public Image SaveJpg(Image image, long value)//设置图像质量1—100{ImageCodecInfo icInfo = null;ImageCodecInfo[] infos = ImageCodecInfo.GetImageEncoders();foreach (ImageCodecInfo info in infos){if (info.MimeType == "image/jpeg"){icInfo = info;break;}}EncoderParameters ep = new EncoderParameters(2);ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, value);//质量,定义图⽚的清晰度ep.Param[1] = new EncoderParameter(pression, (long)pressionLZW);//压缩,似乎⽆效果return image;}///<summary>/// Convert Image to Byte[]///</summary>///<param name="image"></param>///<returns></returns>public byte[] ImageToBytes(Image image){MemoryStream ms = new MemoryStream();image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);return ms.ToArray();}private void button3_Click(object sender, EventArgs e){allSockets.ToList().ForEach(s => s.Send(ImageToBytes(imgTemp)));}private void button4_Click(object sender, EventArgs e){byte[] xx = ImageToBytes(imgTemp);MessageBox.Show(xx.Length.ToString());}private void checkBox1_CheckedChanged(object sender, EventArgs e){timer1.Enabled = checkBox1.Checked;}private void timer1_Tick(object sender, EventArgs e){button2_Click(sender, e);button3_Click(sender, e);}}}3、服务端界⾯截图不做过多解释,上⾯的控件名称都是默认的,容易找到。
让IIS完美支持“远程桌面Web连接”功能
![让IIS完美支持“远程桌面Web连接”功能](https://img.taocdn.com/s3/m/f148c3b9fd0a79563c1e7288.png)
让IIS完美支持“远程桌面Web连接”功能相信管理过服务器的读者都知道在Windows 2000 server,XP,2003中有一个系统自带的名为远程桌面连接的控制程序,通过他可以帮助我们利用网络来远程管理服务器,所有操作都好象在本机进行一样。
虽然“远程桌面”使得远程控制更为方便,但它们有一个共同的缺点,那就是在客户端必须安装相应的客户程序方可连接。
如果没有安装这个连接程序再高明的网络管理员也难为无米之炊。
不过今天笔者则要打破陈规用浏览器来远程遥控Windows 2003,从而省去安装客户程序的操作,让远程桌面应用场合更加广泛。
一、浏览器遥控Windows 2003的前提在众多操作系统版本中只有Windows 2003具备这种通过浏览器远程遥控系统操作的功能,因为在Windows 2003中新添加了名为“远程桌面Web连接”的功能。
他可将所有的设置都在服务器端完成,而客户端无需安装任何程序和做任何设置。
我们要做的就是直接打开浏览器,在地址栏中输入相应的服务器地址,再输入合法的用户名和口令,就可以如同在本地一样操作远端的服务器。
这样,使得我们的远程控制变得更加方便和安全。
因此我们了解到要想打破陈规用浏览器遥控服务器,首先要保证服务器上安装的操作系统为Windows 2003,接下来还需要我们安装“远程桌面Web连接”组件。
二、安装“远程桌面Web连接”“远程桌面Web连接”组件是集成在IIS中的功能,系统默认是没有安装的,需要我们手动安装。
第一步:一般来说Windows 2003系统在安装完都会默认安装IIS组件,不过“远程桌面Web连接”功能是不包含在内的。
因此我们需要将其添加到Windows 2003系统中。
方法是在服务器上通过“开始->控制面板->添加/删除程序”,选择添加删除WINDOWS组件。
第二步:在弹出的Windows组件向导窗口选择“应用程序服务器”。
之后选择“internet信息服务(IIS)”,双击该服务打开具体配置信息(如图1)。
Win2008 R2 VDI 5 配置远程桌面Web访问
![Win2008 R2 VDI 5 配置远程桌面Web访问](https://img.taocdn.com/s3/m/95d148b1b0717fd5360cdc45.png)
Win2008 R2 VDI 配置远程桌面Web访问
本文中我们要把RDWA配置为远程桌面Web访问服务器。
RDWA使用了Windows Server 2008 R2的操作系统。
远程桌面Web访问其实就是终端服务中的TS Web访问,这个角色估计很多朋友都有过使用经验。
通过远程桌面Web访问,我们可以用浏览器作为客户端,对远程终端服务器上的应用程序和桌面进行访问。
在今天的实验环境中,远程桌面Web访问还允许我们通过浏览器访问后台的虚拟机。
在RDWA上打开服务器管理器,如图1所示,选择"添加角色"。
图1
角色当然要选择"远程桌面访问"。
图2
如图3所示,接下来要为"远程桌面服务"选择角色服务,当我们选择"远程桌面Web访问"时,向导提示我们这个角色服务需要IIS的支持。
点击"添加所需的角色服务",向导会自动安装所需的组件。
图3
如图4所示,向导列出了远程桌面Web访问所需要的IIS组件,点击"下一步"继续。
图4
如图5所示,点击"安装"就可以进行角色部署了。
图5
如图6所示,角色安装完毕。
支持,VDI所需要的服务器角色都已经部署完成,接下来的后续文章中我们要进行服务器角色的配置和虚拟机设置了。
图6
在下篇文章中,介绍远程桌面虚拟机配置,敬请关注。
html5之应用纯webrdp远程桌面连接
![html5之应用纯webrdp远程桌面连接](https://img.taocdn.com/s3/m/a8cdead8aa00b52acfc7ca27.png)
html5之应用,纯web rdp 远程桌面连接html5之应用,纯web rdp 远程桌面连接2013-11-28 20:00705人阅读评论(0)收藏举报分类:杂类(265)目录(?)[+]10.23补充最近在网上找到了一个开源的web rdp引擎,可以参考一下,通过界面介绍,感觉好不错。
/又找了一个开源的,试过之后感觉cpu 占用率挺高的,估计没有优化好。
https:///FreeRDP/FreeRDP 最近一直在琢磨如何方便部署和开发堡垒机,Linux堡垒机很多地方不方便,尤其是人机交互和常用软件不够丰富,window堡垒机的部署不太方面,尤其需要安装客户端。
所以就在想是否有纯web方式的远程桌面连接。
后来研究了发现还真有,但是利用了HTML5的很多特性,目前还有一些浏览器还不支持,但是从长远来看,趋势是比较明显的尤其是现在的平板电脑和手机应用还是优先支持Html5。
原理篇:直接转录了网上的一篇文章。
Earlier this week, I wrote about my initialthoughts on the Chromebook, and I talked a little bit about HTML5 remote desktop clients, specifically AccessNow from Ericom. In the comments, we also heard from the creator of Spark View, Walter Wang. Walter's comment, plus a subsequent phone call with Ericom, helped to shed some light on exactly how Chrome (and other HTML5 compliant browsers, which is all of the big ones now, I think) use HTML5 technologies to show remote desktops. In that article, I speculatedthat Ericom was somehow wrapping RDP and shipping it to the client. It turns out that what actually is happening is a bit more complex, and it involves translating RDP data for consumption by the browser. Before I get too far ahead, though, let's break thisdown.There are two key technologies that enable remote desktop clients within a browser, WebSockets andCanvas. WebSockets is how the remote desktop data is sent from your environment to the browser, and Canvas is the technology that allows it to be redrawn on the screen.WebSockets is a protocol/API that is built in to all the recent browsers that allows for continuous transmission of data via one TCP socket, as opposed to HTTP, which requires each request to have a response. Multiple requests, then, require multiple connections,which is pretty complex and inefficient for anything that needs to have a realtime feel to it. WebSockets changes this by essentially opening a channel between the client and the server that remains open between requests. The main drawback of WebSockets isthat it only supports textual data, not binary data (which is what remote protocols use), which we'll get into later.Canvas was created by Apple way back in 2004, and has grown into being a native HTML5 element. Canvasenables the ability to control every single pixel discretely through the use of JavaScript, which allows the browser to render 2d graphics dynamically. Whenyou see animations or games that play in the browser and don't use Flash (i.e. HTML5 games like AngryBirds for Chrome), you're seeing Canvas in action. For remote desktop connections, the client (in this case, mostly a javascript program) consumes the data coming in via WebSockets and draws the desktop on the screen via Canvas.Right now you may be thinking "Canvas...no binary data support...that's not RDP at all," which is absolutely correct. But if what you're using at the client isn't RDP, then how is this working? The secret there is with a gateway of sorts. Ericom calls thisAccessNow Server (which is really just a lightweight service), and Spark View calls it a Spark Gateway. In both cases, these gateways establish an RDP session with the remote host and translate (or re-encode) that binary data into textual data for use withWebSockets. That text data is sent on to the browserwhere the client interprets that data and draws it on the screen with Canvas.The entire process looks something like this (click for larger image):Ericom has also introduced a version of AccessNow that works with VMware View. There's an added step that involves hosting the web client on a View server so that it can take advantage of the View Open Client, which handles authentication and desktop selection before handing the connection off to the AccessNow Server (remember, that's more of a service than a server). Ultimately, they view this as a way to expand endpoint support for VMware View to anything with anHTML5-compliant browser, which will level the playing field with Citrix when it comes to number of client devices supported by the platform.At this point, AccessNow does not support virtual keyboards like what you would find on iOS or Android devices. It appears that only Spark View supports those types of devices today, although I haven't had a chance to actually look at the product yet. We knowWalter reads this blog, though, so maybe he can comment :) Ericom has said that they are close to providing it, they just want to make sure they get it right before releasing the next version.Since the Citrix HTML5 client hasn't been released yet, I'm not sure how it works. I imagine it has the same basic architecture, though, while utilizing some of Citrix's existing components (web interface, connection broker, NetScaler, etc...). It's my planto do a HTML5 remote desktop client roundup when Citrix releases theirs, but if that winds up being too far out, I'll do it without them. It's all so new, though, it seems only fair to give it a little more time.Based on his comment, Walter believes that WebSockets will be amended to include binary data at some point in the future, which may or may not eliminate the need for a gateway in the middle. There's not much doubt, though, that this article will be obsoletein the near future as more advances are made with HTML5 and remote desktop connections.从原理上来看,比较容易理解,但做起来还是有些难度。
RDP协议的连接流程
![RDP协议的连接流程](https://img.taocdn.com/s3/m/637f7d413a3567ec102de2bd960590c69ec3d802.png)
RDP协议的连接流程若磐RDP远程桌面协议承担将远程服务器的图形显示信息传送到用户终端计算机,并且将用户终端计算机的输入命令传送到远程服务器,以此来促进用户终端计算机与远程计算机系统的交互。
其中用户终端计算机的输入命令会在远程服务器上进行重放。
若磐的该协议还提供了可扩展的传输机制,其允许在用户终端计算机上的组件和在远程服务器上运行的组件之间进行专门的通信。
连接顺序可以分为十个不同的阶段:1. ConnectionInitiation(连接初始化):客户端通过向服务器发送Class 0 X.224 ConnectionRequest PDU启动连接请求。
服务器使用Class 0 X.224Connection Confirm PDU进行响应。
2. BasicSettings Exchange(交换基本设置):通过使用MCS Connect Initial PDU和MCS Connect Response PDU在客户端和服务器之间交换基本设置。
连接初始化PDU包含通用会议控制(GCC)会议创建请求,而连接响应PDU包含GCC会议创建响应。
3. Channel Connection(通道连接):基本连接建立成功之后,客户端向服务器端发送一个MCS Erect Domain Request PDU,然后紧接着再发送一个MCS Attach User Request PDU,该包附上了MCS域的用户身份标识。
服务端收到这两个包之后,回复一个MCS Attach User Confirm PDU进行响应,该PDU包括用户通道ID号。
然后,客户端根据得到的通道ID号加入用户虚拟通道。
4. RDP SecurityCommencement(RDP安全初始化):如果正在使用标准RDP安全机制并且加密有效,则客户端发送Security ExchangePDU(包含加密的32字节随机数)到服务器。
该随机数用服务器的公钥加密。
服务器应用之远程连接
![服务器应用之远程连接](https://img.taocdn.com/s3/m/43d0eb7fa26925c52cc5bf74.png)
服务器应用之“远程桌面连接”(部署篇)远程桌面连接”是一种远程管理模式,它主要是用于网络管理员在服务器上对远程计算机进行管理。
在默认情况下,远程桌面连接(以前称为“终端服务客户端”)安装在所有Windows Server 2003家族操作系统上。
可以使用远程桌面连接与终端服务器相连接,或者与运行Windows Server 2003家族操作系统之一的计算机桌面相连接,还可与安装有Windows XP系统的计算机连接,进行远程管理。
在此,我们仅限远程连接的发起方(也称“远程连接客户端”)只是运行Windows Server 2003系统的服务器;而远程连接的服务器端只能是安装了“终端服务器”的Windows 2000 Server,或者Windows XP和WIindows Server 2003家族系统的计算机。
下面我们来具体介绍如何部署这种“远程桌面连接”模式的远程管理。
一、远程桌面连接的部署远程桌面连接也属于C/S(客户/服务器)模式的,所以在建立连接前也需要配置好连接的服务器端和客户端。
这里的服务器端是指接受远程桌面连接的计算机一方;而客户端是发起桌面连接的计算机一方。
因为“远程桌面连接”远程管理模式是属于Windows Server 2003服务器(还可以是Windows XP系统计算机)管理远程工作站(或成员服务器)计算机的,所以发起远程桌面连接的当前就是Windows Server 2003服务器。
作为远程桌面连接的服务器端,必须要安装了“远程桌面连接”的服务器端程序,而目前仍只有Windows XP、Windows Server 2003家族系统,以及安装了“终端服务器”程序的Windows 2000 Server系统才可能具有,其它版本Windows系统计算机都不可能成为“远程桌面连接”的服务器端。
所以实际上这种远程桌面连接的服务器端与客户端都不需要太多的配置(Windows 2000 Server外)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
html5之应用,纯web rdp 远程桌面连接html5之应用,纯web rdp 远程桌面连接2013-11-28 20:00705人阅读评论(0)收藏举报分类:杂类(265)目录(?)[+]10.23补充最近在网上找到了一个开源的web rdp引擎,可以参考一下,通过界面介绍,感觉好不错。
/又找了一个开源的,试过之后感觉cpu 占用率挺高的,估计没有优化好。
https:///FreeRDP/FreeRDP 最近一直在琢磨如何方便部署和开发堡垒机,Linux堡垒机很多地方不方便,尤其是人机交互和常用软件不够丰富,window堡垒机的部署不太方面,尤其需要安装客户端。
所以就在想是否有纯web方式的远程桌面连接。
后来研究了发现还真有,但是利用了HTML5的很多特性,目前还有一些浏览器还不支持,但是从长远来看,趋势是比较明显的尤其是现在的平板电脑和手机应用还是优先支持Html5。
原理篇:直接转录了网上的一篇文章。
Earlier this week, I wrote about my initialthoughts on the Chromebook, and I talked a little bit about HTML5 remote desktop clients, specifically AccessNow from Ericom. In the comments, we also heard from the creator of Spark View, Walter Wang. Walter's comment, plus a subsequent phone call with Ericom, helped to shed some light on exactly how Chrome (and other HTML5 compliant browsers, which is all of the big ones now, I think) use HTML5 technologies to show remote desktops. In that article, I speculatedthat Ericom was somehow wrapping RDP and shipping it to the client. It turns out that what actually is happening is a bit more complex, and it involves translating RDP data for consumption by the browser. Before I get too far ahead, though, let's break thisdown.There are two key technologies that enable remote desktop clients within a browser, WebSockets andCanvas. WebSockets is how the remote desktop data is sent from your environment to the browser, and Canvas is the technology that allows it to be redrawn on the screen.WebSockets is a protocol/API that is built in to all the recent browsers that allows for continuous transmission of data via one TCP socket, as opposed to HTTP, which requires each request to have a response. Multiple requests, then, require multiple connections,which is pretty complex and inefficient for anything that needs to have a realtime feel to it. WebSockets changes this by essentially opening a channel between the client and the server that remains open between requests. The main drawback of WebSockets isthat it only supports textual data, not binary data (which is what remote protocols use), which we'll get into later.Canvas was created by Apple way back in 2004, and has grown into being a native HTML5 element. Canvasenables the ability to control every single pixel discretely through the use of JavaScript, which allows the browser to render 2d graphics dynamically. Whenyou see animations or games that play in the browser and don't use Flash (i.e. HTML5 games like AngryBirds for Chrome), you're seeing Canvas in action. For remote desktop connections, the client (in this case, mostly a javascript program) consumes the data coming in via WebSockets and draws the desktop on the screen via Canvas.Right now you may be thinking "Canvas...no binary data support...that's not RDP at all," which is absolutely correct. But if what you're using at the client isn't RDP, then how is this working? The secret there is with a gateway of sorts. Ericom calls thisAccessNow Server (which is really just a lightweight service), and Spark View calls it a Spark Gateway. In both cases, these gateways establish an RDP session with the remote host and translate (or re-encode) that binary data into textual data for use withWebSockets. That text data is sent on to the browserwhere the client interprets that data and draws it on the screen with Canvas.The entire process looks something like this (click for larger image):Ericom has also introduced a version of AccessNow that works with VMware View. There's an added step that involves hosting the web client on a View server so that it can take advantage of the View Open Client, which handles authentication and desktop selection before handing the connection off to the AccessNow Server (remember, that's more of a service than a server). Ultimately, they view this as a way to expand endpoint support for VMware View to anything with anHTML5-compliant browser, which will level the playing field with Citrix when it comes to number of client devices supported by the platform.At this point, AccessNow does not support virtual keyboards like what you would find on iOS or Android devices. It appears that only Spark View supports those types of devices today, although I haven't had a chance to actually look at the product yet. We knowWalter reads this blog, though, so maybe he can comment :) Ericom has said that they are close to providing it, they just want to make sure they get it right before releasing the next version.Since the Citrix HTML5 client hasn't been released yet, I'm not sure how it works. I imagine it has the same basic architecture, though, while utilizing some of Citrix's existing components (web interface, connection broker, NetScaler, etc...). It's my planto do a HTML5 remote desktop client roundup when Citrix releases theirs, but if that winds up being too far out, I'll do it without them. It's all so new, though, it seems only fair to give it a little more time.Based on his comment, Walter believes that WebSockets will be amended to include binary data at some point in the future, which may or may not eliminate the need for a gateway in the middle. There's not much doubt, though, that this article will be obsoletein the near future as more advances are made with HTML5 and remote desktop connections.从原理上来看,比较容易理解,但做起来还是有些难度。