最后C:\Program Files\Stunnel这个文件夹应该是如下图所示:
测试连接
到此时为止所以的设置都已完成,为了测试,我们必须在客户端和服务段同时开启网络隧道,同时开启VNC服务端。
在服务端
在客户端
如果由于某种原因,没有能够成功的建立起连接,我们应该提高Stunnel的登陆级别,并且找出出错的原因,这时我们需要在stunnel.conf文件中添加一行:
debug = 7
然后重启stunel服务,并再次测试连接。
反向连接
在上面的设置中,只有当VNC具有独立的公网IP,或者与VNC客户端同处在一个局域网中,才能够进行成功的连接。如果VNC服务端处于NAT(network address translation)后面或者试图连接的信息包被丢弃,那么以上连接更本无法实现,那该怎么办?
由于VNC服务器具有"/listen"选项,所以有可能突破以上的限制,在传统的c-s模式传输中是由客户端发起连接的,但是现在不仅是客户端可以发起连接,服务端本身可以反向连接,唯一的要求就是服务端和客户端能够进行连接.当然,这个要求客户端不能在NAT反向代理之后,也不能被截住了信息包.
如前所述,VNC具有反向连接功能,要想使用这个功能,VNC服务器上的stunnel.conf文件应该做少量改动:
CAfile = CAcert.pem
CApath = certificates
cert = server.pem
client = yes
verify = 3
[vnc]
accept = 127.0.0.1:5500
connect = VNC_client_IP_address:443
同样,VNC客户端的stunnel.conf也应该做一下改动:
CAfile = CAcert.pem
CApath = certificates
cert = client.pem
client = no
verify = 3
[vnc]
accept = 443
connect = 127.0.0.1:5500
此时,服务端的stunnel软件变成了ssl的客户端,而客户端的stunnel则变成了ssl服务端。
当然服务端和客户端建立连接的方法也将改变,首先客户端打开vncviewer.exe,进入监听模式(依次打开开始菜单, RealVNC, VNC Viewer,Run Listening VNC Viewer).同时,在服务端,我们使用添加客户端选项,如图所示:
以上对于在NAT代理下的服务器非常有效,但是同时它也有个弊端,那就是必须要在服务器段进行手动操作,是否有一种方法可以不需要人为操作的建立上述连接了?
这个方案是可行的,它可以使用微软操作系统中的计划任务来实现,下图显示了如何通过计划任务来设置VNC服务端在每天的上午9点到下午9点每隔10分钟进行自动反向连接,当我们想在客户端进行连接的话,所要做的只是将vncviewer.exe设置为监听模式,最多10分钟就将等到来自服务端的主动连接.
相关名词解释:
SSH :(Secure Shell)用于提供的远程登录和其他网络服务。
SSL :(Secure socket Layer) 安全套接层
Tunnel:网络隧道,指的是利用一种网络来传输另一种网络。
VNC:(Virtual Network Computing)跨平台,免费,开放源代码的一款远程管理软件。由两部分部件组成:服务端(Server)和客户端(Viewer)。
Stunnel:一种程序,可以使用 OpenSSL 库对任意 TCP 会话进行加密。
OpenSSL:一个非常优秀的SSL/TLS开放源码软件包,它包括SSL库、加密算法库以及应用程序三大部分。
【责编:admin】
--------------------next---------------------