基于UltraVNC实现客户端远程控制
前言
一般远程就直接用windows自带的,配置好动态IP花生壳,在任何地方都可以连回机子。最近项目里遇到这么个情况,需要快速接入远程控制功能,客户机的IP每次都会变,并且都是在外网,这样,就必须使用带有中转服务器的远程控制,网上查了一下有TightVNC和UltraVNC两个比较好的开源远程控制项目。
可惜TightVNC目前中转服务器端还在开发,下个版本可能才有。
所以果断选择使用UltraVNC!
介绍
VNC(Virtual Network Computing),为一种使用RFB协定的屏幕画面分享及远端操作软件。此软件借由网络,可传送键盘与鼠标的动作及即时的屏幕画面。
VNC与操作系统无关,因此可跨平台使用,例如可用Windows连线到某Linux的电脑,反之亦同。甚至在没有安装用户端程式的电脑中,只要有支援JAVA的浏览器,也可使用。
UltraVNC:加入了TightVNC的部份程式及加强效能的图型映射驱动程式,并结合Active Directory及NTLM的帐号密码认证,但仅有Windows版本。
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,其他远程工具都是浮云……