==>http://stylusinc.com/Common/Concerns/SoftwareDevtPhilosophy.php

附: UltraVNC进阶技巧
1. 开机就玩远程控制
在“开始→运行”中输入“C:\winsock\UltraVNC\winvnc.exe -install”(不含引号)完成服务的安装,这样以\winsock\UltraVNC\winvnc.exe -remove”(不含引号),可以卸载服务。
2. 隐藏系统托盘图标
有时我们不需要UltraVNC在任务栏上显示图标,甚至希望UltraVNC在后台“默默”地运行,那么你可以打开“记事本”,输入如下内容,保存为REG文件,并运行将其导入注册表(Windows 9x用户修改第一行为REGEDIT4):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
"DebugMode"=dword:00000002
"DebugLevel"=dword:0000000a
"AllowLoopback"=dword:00000001
"MSLogonRequired"=dword:00000000
"UseDSMPlugin"=dword:00000000
"DisableTrayIcon"=dword:00000001
3. 禁止使用UltraVNC
打开“注册表编辑器”,依次展开[HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default],在其下建立“双字节值”,键名为“AllowProperties”,键值为“0”。设置后,其他人就无法再修改启动“UltraVNC服务器”了。
4. 局域网外如何使服务器端发出连接信号
控制端在公网, 而服务器端在内网, 用到“反向发起连接”的功能。
a. 在控制端,运行“Run UltraVNC Viewer (Listen Mode)”,这时,客户端在进行监听,等待请求连接的信号。
b. 在服务器端,添加新客户,直接填写,控制端的公网ip地址,这样就发送了请求控制的信号给客户端。之后连接成功,就可以从公网直接穿过防火墙,透过路由器,控制了在局域网内的机器。
c. 在局域网外如何使服务器端发出连接信号呢?可以利用windows的任务计划功能,添加如下的任务,
"c:/program files/ultravnc/winvnc.exe" - connect 202.158.14.36:display用你自己客户端之ip地址来代替上面的,就可以了,修改任务为在指定时间开始,如11点开始,每过5分钟运行一次。
这样就完成了设置。
如果多个人想控制一台服务器,也需要反向连接,否则按照一般办法,谁最后发控制命令,VNC server 会断开之前的连接,始终只有最后一个与服务器进行成功连接的客户端!除非反向连接。
附: Window Remote Desktop Connection设置
自Windows 2000开始,微软就提供一项终端服务(Terminal Server)这项服务可以将远程的桌面传递到本地。通过该服务,可视化的远程管理可以非常方便的实现。继Windows 2000之后,Windows XP也提供这项服务。在Windows XP 中的Terminal Server Client程序比Windows 2000中的那个有了进一步的发展,许多功能都强大了许多。
Windows Server 2003 Service Pack 1 Administration Tools Pack
技巧一:默认端口也修改
大家应该知道远程桌面连接默认使用的端口是3389
将下列两个注册表键中的 PortNumber 均改成自定义的端口即可:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\Tds\Tcp
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
值得注意的是在输入被访问计算机IP地址时需要使用类似ip:port的形式。
技巧二:"The remote computer has ended the connection" 的问题
把以下设成0就可以了,表示Enable Distributed File System.
HKLM\System\CurrentControlSet\Services\Mup\DisableDFS = 0
技巧三:二次远程混淆解决方法
技巧描述:大家看到这个技巧名字可能不太明白,其实意思就是说我们从家中计算机A通过远程桌面连接到单位计算机B后,在计算机B上再使用远程桌面连接到计算机C,这就称为二次远程。
混淆现象:家中计算机A使用ADSL上网,单位接入服务器B(外网IP为211.154.80.29,内网IP为10.82.0.29),单位内部服务器C(IP地址为10.82.0.240)。由于服务器C没有公网IP地址在家是不能直接访问的,所以要想在家能够通过远程桌面连接到服务器C进行控制就必须进行二次远程连接,即从计算机A远程连接到服务器B211.154.80.29上,再从服务器B连接到服务器C。由于采用全屏幕操作所以从B连接到服务器C上后远程桌面界面上方显示的IP地址仍为211.154.80.29,并不是10.82.0.240。这时候想将服务器C与服务器B的桌面连接断开就不行了,因为一旦点右上的关闭按钮则会关闭A与B的连接,以后再用远程桌面连接到B时界面仍是在服务器C上。如果选择注销虽然可以断开B与C的连接但刚刚登录C运行的程序会立即关闭。
解决方法:其实有两种方法来解决这个混淆问题。
√ 方法一:窗口法
不使用全屏幕模式而改用窗口模式。(如图4)这样窗口的标题将显示出211.154.80.29,而窗口内显示的是正常的10.82.0.240,从而直接点窗口中10.82.0.240旁边的关闭按钮就可以断开B与C的连接了。
图4 点击看大图
√ 方法二:隐藏浮动条法
在使用远程桌面成功连接到远程计算机上后会在界面最上方有一个条状区域显示当前IP地址,我们点这个条状区域最左边的那个按钮就可以让条状区自动隐藏,(如图5)这样在C上使211.154.80.29浮动条自动隐藏后则真正的IP地址10.82.0.240就显示出来了,这时候直接点关闭按钮就可以断开C与B的连接了,而C上运行的程序也不会被关闭。
图5
技巧四:非管理员也玩远程桌面连接
环境描述:大家都知道只有管理员组用户才可以通过远程桌面连接程序管理服务器,非管理员组用户是没有远程桌面使用权限的,不过笔者所在公司有专门的人负责服务器上数据库的管理工作,而本人负责只服务器的日常维护。为了提高安全数据库管理人员不是管理员组的用户而他们又需要在家中登录服务器管理数据库。这时候就涉及到非管理员组用户也要使用远程桌面连接的问题。
WIN2000解决方法:我们通过任务栏的“开始->设置->控制面板->管理工具->终端服务配置”,在“连接”的“RDP-Tcp”属性里进行设置。(如图6)RDP-TCP属性中选择“权限”标签,通过“添加”按钮将你容许远程访问的用户组添加近来并配置相应的权限即可完成非管理员组的远程桌面访问。
图6
WIN2003解决方法:在WIN2003中的配置相对简单,因为系统内置了一个REMOTE DESKTOP USERS组,(如图7)我们把容许远程访问的用户添加到REMOTE DESKTOP USERS组中即可完成非管理员组的远程桌面访问。
图7 点击看大图
技巧五:远程桌面也玩代理
环境描述:由于公司处在教育网内,所以在家通过ADSL访问公司服务器速度非常慢,可是远程桌面程序选项中也没有提供设置代理服务器的地方,这时我们可以通过第三方代理工具来解决远程桌面用代理的问题。
实现方法:远程桌面程序只能使用SOCKS代理,我们可以下载sockscap32代理程序,然后把终端连接程序加到代理列表中即可,(如图8)这样我们使用终端连接程序时就可以通过sockscap32中设置的代理连接到公司服务器了,加快了服务器的访问速度。