对内部网络机器进行远程控制最方便的方法是在路由器上做端口映射,另外也可以通过tcp反向连接来实现。
这里介绍一下可以采用反向连接的一款软件UltraVNC,UltraVNC是开源作品,源代码可以到官方网站
源代码可以用VC++来编译。
下面主要介绍一下ultravnc的使用。
----------- -----------
| | | |
| 主控端 | ----------------- | 被控端 |
| | | |
----------- -----------
A机器 B机器(位于内部网络)
一般情况下被控端是作为Server,程序对某端口进行侦听并接受主控端连接。
反向连接的情况下:主控端进行侦听并接受被控端连接。
我们这个例子是位于公网的A机器控制位于内部网络的B机器,步骤如下:
1) 在主控端A机器启动UltraVNC Viewer进行侦听
默认是开启5500端口,如果需要在其它端口侦听,可以加上 -listen [port] 参数,例如在80端口侦听,我们可以在命令行下运行:
vncviewer.exe -listen 80
2) 确认被控端B机器上的VNC Server服务已经启动
被控端在安装UltraVNC后,重新启动计算机VNC Server服务会自动启动,如果不想重启计算机可以在控制面板->管理工具->服务中
启动VNC Server服务。
也可以在命令行输入:net start winvnc 启动。
3) 被控端B机器连接主控端A机器
被控端运行开始菜单->程序->UltraVNC Server->Run service helper
屏幕右下脚托盘上会出现图标,右键单击图标弹出菜单选择Add new client
在 Host Name 中输入主控端A的IP地址,格式为IP::Port (注意是两个冒号),如果主控端使用默认端口,可以不加端口。
例如:220.185.239.185::80
连接成功后,在主控端A机器上会自动弹出一个用于控制B机器的窗口即可实现远程控制。