基于Tcp穿越的Windows远程桌面(远程桌面管理工具)

            1.《C# WinForm 跨线程访问控件(实用简洁写法)
            2.《基于.NET环境,C#语言 实现 TCP NAT
            3.《基于Tcp穿越的Windows远程桌面(远程桌面管理工具)
        距离上一篇文章《基于.NET环境,C#语言 实现 TCP NAT》已经很久没有发随笔了,而且文章阅读量不高,可能很多人对Tcp穿越不感兴趣。今天这篇文章是基于上一篇文章做的应用,一个远程桌面管理工具。
很多人肯定会说,免费且功能齐全的远程管理工具到处都是,何必再写一个呢?既然免费且管理功能齐全的远程桌面管理已经很多,笔者肯定不走寻常路,要不然根本没有必要写这篇博客了。话太啰嗦,还是先看看
界面吧,然后慢慢给各位道来。

我要做的远程桌面工具,除了具备常规远程桌面的功能外,最重要的,它是基于Tcp穿越和中继服务的,最终实现类似TeamViewer的功能。

我们分析一下常规远程桌面的利弊:

1)直连模式  你必须开启远程桌面端口3389,客户端跟被控计算机必须处于局域网或者被控制计算机有固定IP并做了相关路由映射设置。
2)安全风险  既然你能连接被控端,别人也能连接。特别是服务器,只要链路是通畅的,别人可以不断的连接并尝试密码,当然攻击手段
                     很多,不止这一种。不管怎么说,你肯定将远程桌面服务暴露到了互联网或者局域网。比如修改3389端口之类的,都是治标
                     不治本的事情。
3)可连接性  如果我现在人在公司,我要远程连接家里面的电脑怎么办?或者我要维护客户公司里面的服务器,但服务器又没有固定Ip,
                      通过常规工具无法连接的,只能用类(Teamviewer)的桌面分享工作。

4)画面流畅 

解决方案当然有,像Teamviewer类似的桌面分享工具就可以解决这个问题。但如果你是公司行为,管理很多服务器,Teamviewer的价格还
是不便宜。比如笔者公司做医药ERP项目,客户就非常多,经常维护服务器,很多医药批发公司都将服务器置于内网。可连接性是一个问题,
外记住用户名和密码也是一个问题。

笔者写的这个远程桌面工具,除了普通管理功能外,最重要的一点,就是像Teamviewer一样,解决了连接性的问题。只要这台计算机能上网,
并开启了远程桌面服务,你就可以从任何一个地方进行远程桌面连接到这台电脑。

本工具解决了以下问题:

1)安全风险  你不需要固定IP,也不需要做3389端口映射,不用将远程桌面服务暴露到互联网中。注:别人想通过远程桌面服务攻击你,都
                      找不到入口点。

2)可连接性  只要被控计算能上网,你就能远程桌面连接到该电脑。为确保可连接性,我们做了两种模式,P2P穿越和中继模式,确保100%
                      能连接到被控计算机。首选是P2P穿越模式,穿越不成功的情况下,我们做中继服务,也就是数据流通过我们公司的服务器进行
                      中转。有人肯定会说,通过中继模式,数据都到你服务器了,会不会有安全风险?理论上有,只是我还没有实力去解析Rdp协议

3)画面流畅  Rdp协议本身数据传输量就很小,画面就比较流畅。个人觉得比其它远程分享协议都好。

4)数据压缩  底层传输的Rdp协议数据,我们都采动态识别和压缩技术。举个例子,我们通过远程桌面向另外一台服务器复制一个SqlServer数
                      据文件,通常做法都是先压缩成一个包,再传输。毕竟这种文件一般较大,而通过我们的工具传输,你不用压缩了,只管理复制
                      和粘贴,底层会自动压缩数据,不用像以前一样经常压缩和解压缩。压缩和解压在传输过程中已经自动完成。方便使用者。这一
                      点需求,也是从我们公司长期使用远程桌面的操作中总结出来的,如果文件大,压缩都需要很长的时间。关键是传输过去,对方
                      计算机还不一定有解压软件。有时候只为做一件简单的事情,却搞得很复杂。关键是别人的服务器,还不一定让你装软件。

另外我们做了像TeamViewer一样的连接码,你只需要将码发给您的朋友,他就可以通过本工具连接到您的计算机。说到底,我们应用层就用的
微软的桌面控件,但底层数据传输,我们做了加工,通过什么通道,怎么传输,由工具负责。

                  

附1:目前应用层已经实现了远程桌面的所有的功能,您一个帐号可以管理多台计算机,数据传输层也实现了穿越和中继以及直连模式,正常
         使用是完全没有问题的。对于后期的规划,可能会增加桌面分享的功能,类似QQ和TeamViewer的功能。TeamViewer算是一个小工具,
         而且是国外的,在中国应该没有少挣钱,但国内类似的软件却基本没有。所以,我个人打算做一款软件,包含TeamViewer的所有功能,
         最好效率更高。
附2:关于P2P穿越,在实际使用中,发现有些运营商会禁止使用P2P穿越技术,但只要持续进行P2P连接尝试,很多时候都会成功。所以本
          软件实现了无损通道切换的功能,比如你现在使用的是中继连接,传输速度受中转服务器带宽的限制,一旦建立P2P穿越连接,我们将
          自动为你切换通道,上层的画面,数据传输不受任何影响,即画面不卡顿,数据传输如文件传输不中断。切换成P2P模式,最大的好处
          在速度不受中继服务器宽带的限制,对我们来讲,节省资源,对你来说,加快了速度,提升了效率。

如果您也正在做类似的开发工作,或者想做类似的工具,欢迎和我交流。QQ:243838541 等工具开发出来后,我会上传到博客供下载免费使
用。

 

 

 

 

 

 

posted on 2018-12-29 14:05  重庆-寂寞的风  阅读(6210)  评论(7编辑  收藏  举报