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


    基于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 等工具开发出来后,我会上传到博客供下载免费使
    用。

     

     

     

     

     

     

  • 相关阅读:
    VVDocumenter升级后不能使用问题
    IOS APP结构思路
    statusbar 样式
    在framework中打包xib
    百度地图类参考整理
    UIView的layoutSubviews和drawRect方法何时调用
    写给喜欢用Block的朋友(ios Block)
    启动动画
    navigationcontroller剖析
    消息模式Toast.makeText的几种常见用法
  • 原文地址:https://www.cnblogs.com/zhangguihua/p/10194404.html
Copyright © 2020-2023  润新知