基于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 等工具开发出来后,我会上传到博客供下载免费使
用。
基于Tcp穿越的Windows远程桌面(远程桌面管理工具)的更多相关文章
- windows7安装远程服务器AD域管理工具
目的:在win7上安装“远程服务器管理工具”,这样可以在客户端进行对服务器的AD域的操作,避免了远程登陆进服务器的麻烦. 前提条件:一般此工具只有管理员才具有有效使用权限,所以,在域administr ...
- Windows Azure Storage图形界面管理工具
上一篇我们介绍了用PowerShell将Windows Azure的存储服务当网盘来使用.如果感觉还不够简单,那么这次我们来看看还有哪些使用起来更方便的图形界面管理工具吧.当然,这些工具必要支持中国版 ...
- 全网最详细的Windows里Git client客户端管理工具SourceTree的下载与安装(图文详解)
不多说,直接上干货! 很多人用Git命令行不熟练,那么可以尝试使用SourceTree进行操作. 安装之前的必备 (1)Git的安装 Git学习系列之Windows上安装Git详细步骤(图文详解 ...
- windows下powershell的包管理工具
scoop github 开源地址:https://github.com/lukesampson/scoop 安装命令->powershell管理员模式下输入 Invoke-Expression ...
- 详细故障排除步骤:针对 Azure 中到 Windows VM 的远程桌面连接问题
本文提供详细的故障排除步骤,用于为基于 Windows 的 Azure 虚拟机诊断和修复复杂的远程桌面错误. Important 若要消除更常见的远程桌面错误,请务必先阅读远程桌面的基本故障排除文章, ...
- Windows Server 2019远程桌面服务配置和授权激活
参考Windows Server 2016远程桌面服务配置和授权激活方法可适用于Windows Server 2019 Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行 ...
- Python网络编程03 /缓存区、基于TCP的socket循环通信、执行远程命令、socketserver通信
Python网络编程03 /缓存区.基于TCP的socket循环通信.执行远程命令.socketserver通信 目录 Python网络编程03 /缓存区.基于TCP的socket循环通信.执行远程命 ...
- 如何修改windows Server 2012 远程桌面连接默认端口
如何修改windows Server 2012 远程桌面连接默认端口 修改windows 2012/win8.win7远程桌面连接默认端口一般需要修改注册表四个地方[HKEY_LOCAL_MACH ...
- Windows远程连接CentOS桌面
VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件.VNC的基本运行原理和一些Windows下的远程控制软件很相像 VNC基本上是由两部 ...
随机推荐
- java 代理模式-静态代理与动态代理
最近在研究SpringAOP,当然要学习AOP就要知道这么健硕.强大的功能的背后究竟隐藏着怎样不可告人的“秘密”?? 接下来就是查阅了许多资料详细的研究了一下Java的代理模式,感觉还是非常非常重要的 ...
- 062 Python必备库-从Web解析到网络空间
目录 一.概述 二.Python库之网络爬虫 2.1 Requests 2.2 Scrapy 2.3 pyspider 三.Python库之Web信息提取 3.1 Beautiful Soup 3.2 ...
- IDEA中运行测试方法
1. 2. 3. 4. 5.
- android 拍照 相册 剪切以及显示功能
一.概述 android的 图片拍照 ,相册选图,以及图片剪切功能可以说非常常用. 尤其是图片上传功能,必然用到此功能. 而公司最近的一个项目中正好用到该功能. 记录下来以便以后再次用到,直接拿来使用 ...
- Android 图片处理之 Fresco
一.关于 Fresco github: https://github.com/facebook/fresco API: http://www.fresco-cn.org/javadoc/referen ...
- 并发编程之线程创建到销毁、常用API
在前面一篇介绍了线程的生命周期[并发编程之多线程概念],在本篇将正式介绍如何创建.中断线程,以及线程是如何销毁的.最后,我们会讲解一些常见的线程API. 线程创建 Java 5 以前,实现线程有两种方 ...
- 使用DevExpress的PdfViewer实现PDF打开、预览、另存为、打印(附源码下载)
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- java8新特性使用
一.接口的默认方法(允许接口有非抽象方法)Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 代码如下: interface ...
- Springboot+Shiro+Mybatis+mysql
一 .shiro框架 Shiro是Apache 的一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.Shiro 主要分为两个部分就是认证和授权两部分 1.Subject代表了当前 ...
- nginx 模块
8.nginx开启目录浏览 提供下载功能 默认情况下,网站返回index指定的主页,但如果该网站不存在主页,则将请求交给autoindex模块 ##### 如果开启autoindex模块,则提供一个下 ...