读书人

Linux上VNC远程控制的使用方法

发布时间: 2012-07-03 13:37:43 作者: rapoo

Linux下VNC远程控制的使用方法

『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

如果看到窗口,就说明你成功,在密码框输入密码,就能远程控制了。

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图形界面;startkde是启动KDE图形界面;twm是启动文本界面。三者选其一。

A. 如何开机时自动启动vnc服务

打开“系统设置”>”服务器设置”>”服务”,勾选上vncserver,“保存”。

修改 /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号,可以自行指定,尽量不要使用系统默认的以保证安全,必须为非0的正整数
vncserver :99
使用时必须输入正确的display号才能连接;用浏览器要在端口号加上display号,默认端口5800,远程连接输入 XXX.XXX.XXX.XXX:5899

-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的配置文件可以更换为自己喜欢的,方法如下:
修改用户目录下的 .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 ,用vncviewer连接远程桌面是不是已经变成自己喜欢的类型了。

在前面有vnc?server?设置的文章(http: //bbs.chinaunix.net/forum/viewtopic.php?t=368552&highlight=yunqing) 里,?我们已经可以在一个linux的服务器上运行vncserver来进行远程访问了,但需要注意的是,如果直接使用vncviewer来进行访问,有 两点不利因素:
1.?口令传输是明文,很容易被侦听到.
2.?防火墙需要打开59xx端口,这在通常的单位里是不可能的.
幸运的是,我们有ssh这个强大的工具,象X11?Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍.

假设vncserver运行在服务器?myserver?(ip地址为:192.168.x.x)的屏幕1,也就是侦听?192.168.x.x:5901,?用户名为foo

情形一:?vnc客户端为linux
这种情形很简单,一般的linux发行版本里面都默认安装了ssh套件.
1.?用ssh登录到服务器

ssh?-L?5901:localhost:5901?-l?foo?myserver

或者直接用ip地址

ssh?-L?5901:localhost:5901?-l?foo?192.168.x.x

2.?在本机的另外开的终端上,运行vncviewer?(或其它的类似工具)
vncviewer?localhost:1

情形二:?vnc客户端为windows
1.?下载一个ssh客户端,个人推荐putty,只有一个程序,不需要安装,简单而功能齐全.?到这里下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
下载putty.exe到桌面上直接运行即可。
2.?运行putty,输入服务器的ip地址,输入一个名字,这里myserver作为session的名字,按save保存。见附图一
3.?单击对话框左边的tunnels来选择相关设置,在source?port里输入5901,在Destination里输入localhost:5901,按Add添加,如附图二
4.?单击左边session,回到session设置,按save重新保存。按open即可登录到服务器。
5.?运行vnc-viewer?(如果没有,到这里下载http://www.realvnc.com/download.html,只要一个 exe的文件就行),在Server里输入localhost:1,见附图三,?输入口令后一个linux的桌面就会出现在windows里,并且是非常 安全的

读书人网 >UNIXLINUX

热点推荐