分类:
2010-08-19 15:49:13
apt-get install vnc4server
限制用户/etc/vnc4server
netstat -tlnp |grep vnc
每次退出时删除
/tmp/.X11-unix下的X*文件
$HOME/.vnc/下的pid、log文件
kill `ps aux |grep vnc |awk '{print $2}'`
---------------------------------------
VNC简介』
网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。
VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控的计算机的软件,其采用了GPL授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行VNC viewer控制被控端。
(在windows中也由一套著名的网络遥控软件――Symantec公司推出的pcAnywhere。
VNC server与VNC viewer支持多种操作系统,如Unix系列(Unix,Linux,Solaris等),windows及MacOS,因此可将VNC server 及VNC viewer分别安装在不同的操作系统中进行控制。如果目前操作的主控端计算机没有安装VNC viewer,也可以通过一般的网页浏览器来控制被控端。
整个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的安装与使用』
本人的操作环境:被控端 Redhat8.0,主控端Windows XP。
1. 载VNC Server与VNC viewer.
VNC Server下载地址:
VNC viewer下载地址:
2.安装。
rpm –Uvh vnc-3.3.6-2.i386.rpm (如果是源代码请看包里的说明)
安装winvnc.exe
3.在Linux上启动VNC Server
执行vncserver命令:
[root@linux root]# vncserver
You will require a password to access your desktops.
Password: ----为了不想任何人都可以任意遥控此计算机。因此当第
Verify: ---1次启动VNC server时,会要求设置网络遥控的密码。
New ‘X’ desktop is linux:1 ----一定要记住这一行稍后会用到。
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/linux:1.log
(经上述步骤后,便已启动了VNC Server。如果你想要更改VNC Server的密码,只要执行vncpasswd命令即可。)
4.在Microsoft Windows上运行VNC Viewer
直接运行“vncviewer.exe”,系统会出现”Connection details”对话框。
在“Connection details”对话框中的“VNC server”文本框中输入VNC Server的IP地址(或 主机名及显示装置编号,(请看3。在Linux上启动VNC server的这一行,New ‘X’ desktop is linux:1 得到此信息),例如:192.168.0.1:1(冒号后面的1是执行VNC Server生成的显示装置编号),单击“OK”按钮后,VNC Server即会开始检查所输入的信息,若是信息错误,系统会出现“Failed to connect to server”的错误信息:若是信息正确,则会接着出现“VNC Authentication”对话框。
若是在“VNC Authentication”对话框中输入的密码正确,就可以成功地打开Linux的桌面窗口。
5. 从浏览器远程遥控。
启动VNC Server 后直接打开浏览器,在地址栏中输入被控端的网址或IP地址,并在网址后加上“:5800+显示编号”的端口号即可操控该计算机。
例如: (如果显示编号为1,一般第一次设置的显示编号都是1,就用5800+1=5801。)
如果看到窗口,就说明你成功,在密码框输入密码,
6.FAQ
A. 如何以图形界面登录被控端?
编辑~/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
gnome-session &
startkde &
twm &
gnome-session是启动Gnome图形界面;
A. 如何开机时自动启动vnc服务
打开“系统设置”–>”服务器设置”–>”服务”,
修改 /etc/sysconfig/vncservers
VNCSERVERS=”1:root 2:phred 3:sysadmin” 1代表“桌面1”,root代表用户名;可同时启动多个用户桌面
VNCSERVERARGS[1]=”-geometry 800×600 -alwaysshared -depth 24″
-alwaysshared代表允许多用户同时登录 -depth代为色深,参数有8,16,24,32。
A.为什么连接后,不能显示桌面,而只有一个Terminal窗口?
试着修改/root/.vnc/xstartup,把最后一行 twm& 改成 gnome-session& or kde&(据说KDE在目前的VNC Viewer上的表现不太稳定)
B. 为什么重新启动VNC Server后,连接不上了?
因为重新启动VNC Server时,系统会指定一个新的显示编号,需使用此新的编号,否则就无法连接。
########################################################################
查看vnc已启用的桌面号及监听进程
[root@linux /]# netstat -tlnp |grep vnc
vncserver 命令带有一些很有用的参数,用vncserver –help 查看。
简单解释一下:
vncserver [:] [-name ] [-geometry x] [-depth ]
[-pixelformat format]
vncserver -kill :display
:
vnc服务的display号,可以自行指定,
vncserver :99
使用时必须输入正确的display号才能连接;
-name 指定vncserver桌面名字
比如要让名字显示为 “红帽”
vncserver -name 红帽
-geometry x指定显示桌面的分辨率,默认为1024×768
vncserver -geometry 800×600
这个命令实际中很有用,例如本地分辨率为1024×768 如果不设定远程vnc服务分辨率就会造成桌面显示不全的问题。
-depth 指定显示颜色,设定范围8~32
vncserver -depth 16
用16bits颜色显示
-pixelformat 指定色素格式 与-depth大致相同,只是表示方法不一样
vncserver -pixelformat RGB888
用24bits颜色显示
vncserver -kill :display
结束vnc服务及远程桌面
vncserver -kill :1
其它更详细的使用请用man查看。
vnc内定的窗口管理器是twm与大家使用的可能不同,
修改用户目录下的 .vnc/xstartup 文件
#!/bin/sh
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
twm &
将#!/bin/sh后面的内容全部注释掉,改成
~/.Xclients
保存文件
现在可以测试修改是否成功,先kill vncserver服务
vncserver -kill :
或
pa aux|grep Xvnc
kill PID
重新启动vncserver ,
在前面有vnc server 设置的文章(http: //) 里,
1. 口令传输是明文,很容易被侦听到.
2. 防火墙需要打开59xx端口,
幸运的是,我们有ssh这个强大的工具,象X11
假设vncserver运行在服务器 myserver (
情形一: vnc客户端为linux
这种情形很简单,
1. 用ssh登录到服务器
ssh -L 5901:localhost:5901 -lfoo myserver
或者直接用ip地址
ssh -L 5901:localhost:5901 -lfoo 192.168.x.x
2. 在本机的另外开的终端上,运行vncviewer (
vncviewer localhost:1
########################################################################
2.以 redhat linux 8.0 下面的安装和使用为例
Linux 下面利用 vnc 来图形界面的控制也是非常简单的。VNC 是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。
一、安装 vnc 的 rpm 包
1 安装 linux
1.1 图形界面下的安装要是在 KDE 或者 GNOME 下,直接点击 rpm 包,系统会自动开始安装。中间还会提示你设 置密码,端口等。
1.2 命令行下的安装。
下面还是说说命令行下的安装,其实也是非常简单的,一个命令就可以了。
cd /mnt/f/vnc/
rpm -ivh vnc-3.3.6-2.i386.rpm
2 设置 vnc server 的访问密码
vncpasswd
3 启动 vnc server
vncserver
4 linux 上的 vnc server 内定的管理环境是 twm,不好看,也不方便。
我们来把它改成 KDE。修改 $HOME/.vnc/xstartup这个文件。把 starttwm 改成 startkde 修改后要重新启动 vnc server。
二、远程连接
现在你可以在各种平台下控制 linux 了。服务器端 (vncserver)还内建了 Java Web 接口,这样用户通过服务器端对其他计算机的操作就能通过浏览器(必须支持 java applet)显示出来了,这样的操作过程和显示方式非常直观方便。
VNC(Virtual Network Computing)虚拟网络计算工具,本质上来说是一个远程显示系统,管理员通过它不仅仅可以在运行程序的本地机上察看桌面环境,而且可以从Internet上的任何地方察看远程机器的运行情况,而且它具有跨平台的特性。
Linux 要使用远程桌面需要安装VNC,好在Red Hat Enterprise Linux AS 4.0 已经自带了VNC,默认也已经安装了,只要配置一下就可以了。但是Windows客户端还是要安装的。
VNCServer 配置:
1. 启动 VNC Server:
打开终端执行:vncserver
2. 默认情况下VNC Viewer只能看到 VNC Server的命令行。
要VNC Viewer上可以看到Linux桌面需要做如下设置:
在VNC Viewer所在的机器上,取消/root/.vnc/xstartup文件中下面两行的注释即可:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
3. Linux启动后自动运行VNCServer
1) 在 系统设置>服务器设置>服务 中把 vncserver 打勾。
2) 打开配置文件/etc/sysconfig/vncservers,去掉下面这行的注释,
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600"
1表示VNC以桌面1运行,这样可以启动root的桌面。
4. VNC端口
如果需要从外网控制内网的某台Linux,则需要打开防火墙相应的端口,并在路由器上进行端口映射。
VNC给浏览器的端口是5800+N,给vncviewer的端口是5900+N,N是设置的display号
Windows 客户端 VNC Viewer 的配置:
1. 从 下载 VNC Free Edition for Windows Version 4.1.2
2. 打开 VNCViewer :
填入VNCServer 的IP:编号(1或2或...)
3. VNCViewer 切换全屏模式:F8
VNC启动模式
vncserver -geometry 800*600
vncserver -depth 16