基于UltraVNC实现客户端远程控制

前言

一般远程就直接用windows自带的,配置好动态IP花生壳,在任何地方都可以连回机子。最近项目里遇到这么个情况,需要快速接入远程控制功能,客户机的IP每次都会变,并且都是在外网,这样,就必须使用带有中转服务器的远程控制,网上查了一下有TightVNC和UltraVNC两个比较好的开源远程控制项目。

可惜TightVNC目前中转服务器端还在开发,下个版本可能才有。

所以果断选择使用UltraVNC!

介绍

VNC(Virtual Network Computing),为一种使用RFB协定的屏幕画面分享及远端操作软件。此软件借由网络,可传送键盘与鼠标的动作及即时的屏幕画面。

VNC与操作系统无关,因此可跨平台使用,例如可用Windows连线到某Linux的电脑,反之亦同。甚至在没有安装用户端程式的电脑中,只要有支援JAVA的浏览器,也可使用。

UltraVNC:加入了TightVNC的部份程式及加强效能的图型映射驱动程式,并结合Active Directory及NTLM的帐号密码认证,但仅有Windows版本

地址:http://www.uvnc.com/

UltraVNC包括客户端与服务端,请求协助的一方称为被协助方,或者(远程协助)服务端;响应的一方称这里命名被协助方为Cv,而协助方命名为Cs,中转服务器为Sr。为协助方,或者(远程协助)客户端,

Repeater为中转服务器Sr,当Server连接Viewer是,通过Sr相互转发数据。对Cs的监控端口为5500,Cv的监控端口为5900,当然5500、5900都是vnc的默认端口,这样会引起其他一些VNC软件的冲突,所以Cs和Cv监控端口都需要修改。

原理

一般连接模式包括两种

1) 协助用户Cv和请求协助用户Cs1在同一局域网内,这时Cv与Cs1可以直接通过IP地址进行TCP通信;

2) 协助用户Cv和请求协助用户Cs2不在同一局域网内,这时Cv与Cs2只能通过中转服务器相互转发数据进行通信。

其中2)中repeater包括两种模式,如图所示,第一种是repeater在内网,第二种是repeater在外网,我们主要介绍第二种。

 

官方文档也介绍的比较详细了,相关信息可以直接查看。

实现

统一下载地址:http://www.uvnc.com/downloads/ultravnc/111-download-ultravnc-1205.html

注意:实现过程中都使用默配置

1、找一台公网服务器安装运行repeater

2、在客户机安装UltraVNC,设置为windows服务,使其每次开机都启动。

3、配置客户机

输入:-id:54 -autoreconnect -connect 12.34.56.78 

其中54改为你自己设置的机子编号,12.34.56.78改为repeater所在的地址,这样,每次启动都会运行命令,使用设置的id号连接repeater了。

当然也可以手动连接,右键托盘图标->add new client

4、使用客户端通过repeater直接连接服务端。

 

这样,就可以直接在(客户端)协助方自己通过设置好的id,访问(服务端)被协助方了,再也不用担心ip的问题。

但是这也有一个问题:

repeater其实也相当于一个服务端,只不过自动接受了客户端发过来的连接请求,当真正使用客户端通过repeater连接服务端的时候,其实就相当于通过repeater这个服务端回连客户端,这个过程就不需要登录密码,所以如果其他人知道了repeater的地址和ID号,那么也可以连接上客户端了,安全性有待提高!

 

自从用了TeamViewer,其他远程工具都是浮云……

posted @ 2015-03-17 01:45  leestar54  阅读(5162)  评论(0编辑  收藏  举报