WINVNC Server详解

类别:软件工程 点击:0 评论:0 推荐:

WINVNC Server详解

 

(本文由VNC官方文档翻译和改编而来,如果需要更详细和更确切的信息,请参看VNC官方文档www.realvnc.com)

 

 

作者Somerset([email protected])

第一版(以后还会更新和修正)

常规选项(Properties窗口中) Accept Socket Connections

(默认为选中)服务器接受从vncviewer程序发送的直接的、基于socket的连接。如果未选中,则不接受任何连接。

Display Number

由客户viewer连接时指定的连接号(在viewer的地址输入框中制定)。通常不需要更改,保持默认值就可以了。

Auto

选中,则server自动选择未被使用的连接号;不选中,则指定使用所填写的连接号。

Password

制定连接的密码,客户viewer需要输入这个密码

Enable Java Viewer

客户端可以同过http://服务器ip:5800+连接号 的方式,在浏览器中使用java applet访问服务器。

When Last Client Disconnects

当最后一个客户断开连接的时候,可以选择干下面的事情:

1)  什么也不干

2)  锁定计算机

3)  注销

Disable Remote Keyboard & Pointer

客户端可以看到服务器的屏幕,按时不能操作

Disable Local Keyboard & Pointer

只能在NT/2000/XP下起作用。在连接期间,服务器本地的键盘和鼠标将无法操作。

Remove Desktop Wallpaper

是否在连接期间去除服务器桌面壁纸,以免浪费带宽。

Poll Full Screen

当客户有操作的时候,更新整个屏幕。

Poll Foreground Windows

当客户有操作的时候,只更新在最前端的窗口

Poll Window Under Cursor

当客户有操作的时候,只更新在光标下面的窗口

Poll Console Widows Only Poll On Event Received Onley

(以上几个Pool选项,我发现似乎对实际效果没什么影响,服务器总是会把所有窗口的更新都发送到客户端)

高级设置

winvnc的一些参数,需要在注册表中指定,可能在注册表的下面几个位置:

1)本地机器设置:这里的设置不会被其他位置的设置覆盖。

HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\

2)本地默认用户设置:

HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default

3)本地用户设置:这里的设置会覆盖“本地默认用户设置),如果没有当前用户,则使用SYSTEM用户

HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\<username>

4)全局用户设置:只有AllowProperties(下面会提到)设置为0,才可以读取这里的设置

HKEY_CURRENT_USER\Software\ORL\WinVNC3

AllowEditClients

是否显示“Add New Client”和“Disconnect All Clients”菜单项目。本地用户设置

AllowLoopback

是否允许viewer连接到在同一台机器上的server。本地机器设置

AllowProperties

是否允许查看properties对话框。本地用户设置

AllowShutdown

是否允许关闭winvnc。本地用户设置

AuthHosts

REG_SZ字符串类型,指定一个ip模板列表,只有符合这个模板的客户端才允许连接。该列表默认为空,任何地方的连接都是允许的。模板的形式如下:

+[ip-address-template]

?[ip-address-template]

-[ip-address-template]

[ip-address-template]表示ip地址最左边的部分。比如+158.97匹配158.97.12.10和158.97.14.2。多个模板之间用“:”隔开,而且后面的模板会覆盖前面的。比如-:+158.97将过滤掉除158.97打头的ip以外所有的连接。如果客户端ip在“?”打头的模板中,那么这个客户端连接上来之后,服务器会弹出一个对话框,提示是否让允许这个客户端连接。QuerySetting选项将决定AuthHosts选项的准确行为。本地机器设置

AuthRequired

默认情况下,除非服务器密码被设置为一个不为空的值,否则将不接受任何连接。这是为了安全性的考虑。设置这个值为0将取消掉空密码检查的限制。本地机器设置

AutoPortSelect

使得winvnc自动使用第一个可用的数字,和Properties对话框里的“Auto”选项作用相同。本地用户设置或全局用户设置

ConnectProiority

默认情况下,当一个非共享的连接通过验证后,wnc服务器会断开现存的其他连接。这个选项指定了当接受了一个非共享的连接后,服务器的行为:

0:断开所有现存连接

1:不断开其他连接

2:拒绝这个新连接

本地机器设置

DebugLevel,DebugMode

对log文件进行一些设置

DebugMode指定以什么方式记录log。

1=MSVC调试器

2=输出到Winvnc.log文件

4=输出到控制台窗口

也可以对以上数字进行组合,比如DebugMode=6将导致既记录到Winvnc.log文件也输出到控制台窗口

DebugLevel指定记录多少信息,可以是任何正整数。默认为0,即什么都不记录。10-12将导致记录所有的debug信息。本地机器设置

HTTPConnect

是否允许java applet客户端连接,和Properties对话框里的“Enable Java Viewer”相同。本地用户设置或全局用户设置

IdleTimeout

这个选项告诉Winvnc,客户端多少时间不操作,就断开连接。如果没有设置或设置为0,则没有超时限制。本地用户设置或全局用户设置

InputEnabled

是否允许客户端控制服务器。和Properties对话框中的“Disable Remote keyboard and pointer”相同。本地用户设置或全局用户设置

LockSetting

当所有连接断开后,服务器的行为

0:什么也不干

1:锁定计算机

2:注销

本地用户设置或全局用户设置

LoopbackOnly

只接受和server在一台机器上的viewer的连接。这个设置会覆盖AllowLoopback和AuthHosts设置。

Password

连接密码。本地用户设置或全局用户设置。

PollUnderCursor、PollForeground、PollFullScreen、OnlyPollConsole、OnlyPollOnEvnet

和上面提到的设置相同。本地用户设置或全局用户设置

PortNumber

设置vnc的端口号,先禁止掉AutoPortSelect,再设置这个。本地用户设置或全局用户设置

QuerySetting

用于定制AuthHost的设置,用于配置“+”、“?”、“-”这三种符号的作用。是DWORD值,范围从0到4(安全性越来越高)。以下列出了这个值如何影响AuthHosts的行为。

0 - +:Accept, ?:Accept, -:Query

1 - +:Accept, ?:Accept, -:Reject

2 - +:Accept, ?:Query, -:Reject [Default]

3 - +:Query, ?:Query, -:Reject

4 - +:Query, ?:Reject, -:Reject

默认情况下,认为值是2。本地用户设置和全局用户设置

QueryTimeout

是否允许连接对话框显示多少秒之后自动拒绝连接(参看AuthHost和QueryString选项)。本地用户设置和全局用户设置

RemoveWallpaper

和Properties对话框的选项作用相同。本地用户设置或全局用户设置

SocketConnect

和Properties对话框的选项作用相同。本地用户设置或全局用户设置

 

VNCHooks-高级设置

WinVNC使用了一个特别的库VNCHooks挂接到其他正在运行的程序中,用来捕获屏幕改变区域(这里的“改变区域”是名词短语)的通知。VNCHooks向可见窗口发送消息,来判断哪些屏幕区域需要更新。因为不是所有的程序都使用同样的方式更新屏幕,所以需要调整WinVNC来适应不同的需要。这些配置在注册表以下位置:

HKEY_CURRENT_USER\Software\ORL\VNCHooks\Application_Prefs

user_GetUpdateRect use_Timer use_KeyPress use_LbuttonUp,use_MbuttonUp,use_RbuttonUp use_Deferral 命令行参数 -run

运行winvnc,并且忽略后面的命令行参数。比如winnvc –run –install,将只运行vnc,而不执行-install

-install

注册winvnc为windows服务

-reinstall

移除winvnc服务,然后重新注册为服务

-remove

移除winvnc服务

-settings

显示正在运行的winvnc的User Properties窗口,显示当前用户的配置,如果没有winvnc正在运行,则不起作用。

-defaultsettings

显示正在运行的winvnc的Default Properties窗口,显示默认配置,如果没有winvnc正在运行,则不起作用。

-kill

关闭所有正在运行的winvnc

-about

显示正在运行的winvnc的about窗口。

-connent[host]

让正在运行的winvnc连接到制定主机的viewer。这个命令的作用和“Add New Client”菜单项相同。

一些问题 颜色数量的问题

实验过程:

1)  在liuqian上,连接DBSERVER,双方桌面都是32位真彩色,没有发现颜色数有变化。

2)  当liuqian设置位16位真彩的时候,发现DBSERVER窗口标题拦出现颜色渐变的断层。

实验结果:

vnc可以传输32位真彩的桌面

让vnc server作为服务(service)运行

方法1:从开始菜单的vnc菜单组中选择"Register VNC Server Service"

方法2:运行命令行:winvnc –install

向服务器发送Ctrl+Alt+Del的问题

这个功能似乎没起作用。。。

本文地址:http://com.8s8s.com/it/it36863.htm