魔石百科
VNC(Virtual Network Console)是一款由AT&T的欧洲研究实验室开发的远程控制工具软件,它是一款优秀的虚拟网络控制台,可在基于UNIX和Linux操作系统的免费开源软件中使用。VNC具有强大的远程控制能力和高效实用性,其性能可以与Windows和麦金塔中的任何远程控制软件媲美。用户可以使用vncserver和vncviewer这两个命令来进行远程控制。VNC还可以通过网络传输键盘和鼠标的动作以及实时屏幕画面。VNC(Virtual Network 计算机)是虚拟网络计算机的缩写,由Olivetti&Oracle数据库研究室开发,后来并入AT&T。
VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相像。VNC的服务器端应用程序在unix和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便地和安装了服务器端的应用程序(vncserver)的计算机相互连接。另外,服务器端 (vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过网景显示出来了,这样的操作过程和显示方式比较直观方便。
同样可能远程连入unix、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样,前者(VNC)是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,即使操作过程中“本地电脑与操作主机网络断开”,也不影响操作的顺利进行;而后者(XManager)是通过端口将主机服务器的UI界面引导到本地电脑进行展现,如操作过程出现“本地电脑与操作主机网络断开”,操作将中断失败!如果操作中进行的工作任务非常重要,不能中断,如ORACLE RAC实施,结果是灾难性的!更重要的是,VNC是免费的、开源的,Xmanager你可能用的是破解注册版的。
vncserver
此服务程序必须在在主(或遥控)计算机上运行。你只能作为使用者(不需要根用户身份)使用此项服务。
vncviewer
本地应用程序,用于远程接入运行vncserver的计算机并显示其环境。你需要知道远程计算机的IP地址和vncserver设定的密码。
vncpasswd
vncserver的密码设置工具。vncserver服务程序没有设置密码将不能运行(好习惯)。如果你没有设置,运行vncserver时它会提示你输入一个密码。所以,一般我不会单独运行这个命令来设置密码。
vncconnect
告诉vncserver连接到远程一个运行vncviewer的计算机的IP和端口号。这样我就可以避免给其他人一个接入的密码。
Xvnc
一个vnc“主控”程序,一般来说不需要直接运行。(vncserver和vncviewer实际上是Xvnc的脚本)
查找所有可用的选项,运行:
Xvnc --help
出于安全的考虑,一般不建议直接以超级用户帐号运行vncserver程序。如果你需要超级用户的环境,请以一般用户登录后再使用su命令登录到超级用户帐号。
VNC运行的工作流程如下:
(1) VNC客户端通过浏览器或VNC Viewer连接至VNC Server。
(2) VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。
(3)在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
(4)若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。
(5) VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。
(6) VNC Server将来由 X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。
安装VNC
yum install vnc-server
添加用户
useradd vnc
passwd vnc
设置用户的vnc密码
su vnc
vncpasswd
exit
编辑vnc配置文件
vi /etc/sysconfig/vncservers
在最后加上:
VNCSERVERS="1:vnc"
VNCSERVERARGS="-geometry 1024x768"
创建xstartup脚本
centos-6用户忽视此步
/sbin/servicevncserverstart
/sbin/servicevncserverstop
su vnc
vi ~/.vnc/xstartup
加入如下代码:
#!/bin/sh
# Add the following line to ensure you always have an xterm available.
( while true ; do xterm ; done ) \u0026
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] \u0026\u0026 exec /etc/vnc/xstartup
[ -r /.Xresources ] \u0026\u0026 xrdb /.Xresources
xsetroot -固体 grey
vncconfig -iconic \u0026
xterm -geometry 80x24+10+10 -ls -title " Desktop" \u0026
Twm \u0026
退出到root:
exit
启动vnc
/sbin/service vncserver start
测试vnc
7.1、使用java连接vncserver
在浏览器中输入http://192.168.0.10:5801登录桌面。
7.2、使用vnc viewer连接vncserver
打开vnc viewer,在server中输入192.168.0.10:1进行连接。
注意:192.168.0.10替换成自己的服务器IP。
(1)在服务器端启动 VNC Server。
(2) VNC客户端通过浏览器或 VNC Viewer 连接至VNC Server。
(3) VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。
(4)在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
(5)若是客户端通过 VNC Server 的验证,客户端即要求VNC Server显示桌面环境。
(6) VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。
(7) VNC Server将来由 X Server 的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。