VNC,全称为Virtual Network Computing,它是一个桌面共享系统。它的功能,类似于Windows中的远程桌面功能。VNC使用了RFB(Remote FrameBuffer,远程帧缓冲)协议来实现远程控制另外一台计算机。它把键盘、鼠标动作发送到远程计算机,并把远程计算机的屏幕发回到本地。viNLinux联盟
VNC
技术与平台无关,VNC Viewer可以和VNC Server在不同的操作系统上。VNC几乎支持所有的操作系统,也支持Java,甚至可以通过支持Java的浏览器来访问VNC Server。多个VNC客户端可以同时连接到一个VNC Server上。viNLinux联盟
VNC
最初由AT&T开发的,它的源代码是开源的。viNLinux联盟
viNLinux联盟
下面简单介绍一下如何利用VNCWindow client(Windows 2000)上访问远程Linux server(Fedora 6).

viNLinux联盟

vncpasswd

然后输入密码。viNLinux联盟
viNLinux联盟
接下来就可以启动VNC server了。在启动VNC server时,需要为你的server指定一个display参数。你可以把display理解为一个桌面,每个用户都可以有自己的桌面。VNC客户端在连接时,可以指定连接到哪个桌面上。在系统中,display号不能重复,也就是说,如果有用户已经建立了名为“:1”display,另外一个用户就不能再使用“:1”了,他可以使用“:2”viNLinux联盟
启动VNC server的命令是:

vncserver <display>

 

例如, 

vncserver :1

因为在Fedora 6display “:0” 已经被用掉,所以从”:1”开始viNLinux联盟
最后,需要配置一下防火墙,允许VNC客户端连接VNC serverVNC server监听的端口从5900开始,display :1的监听5901display :2监听5902,以此类推。Fedora 6的防火墙缺省是不允许连接这些端口的,所以需要使用下面的步骤打开防火墙(需要root权限)

vi /etc/sysconfig/iptables

找到下面的语句:

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

在此行之前,加上下面的内容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT

这句话的含义是,允许其它机器访问本机的59005903端口,这样,display:1, display:2, display:3的用户就可以连接到本机。viNLinux联盟
viNLinux联盟
然后使用root身份重新启动防火墙:

/sbin/service iptables restart

好了,现在就可以运行客户端软件,连接到VNC server上了。viNLinux联盟
VNC
客户端软件很多,在linux下有vncviewerKDE还提供了一个krdc(它的菜单项就是”Remote Desktop Connection",远程桌面连接)。viNLinux联盟
window也有不少vnc客户端,我建议一个OpenSource UltraVNC, 在可以去www.sourceforge.net下载。viNLinux联盟
viNLinux联盟
假设VNC serverIP地址是192.168.1.1display:1。在VNC viewerVNC server栏中输入:192.168.1.1:1,然后连接。OK,你可以看到自己的桌面了。以后不管你什么时候关闭自己的本地PC机都不怕了,只要server不关机,你只要连接到VNC server,你就可以看到你前一天关闭本地PC机时的桌面还保持着原样。viNLinux联盟
viNLinux联盟
不过...这个桌面太丑了!viNLinux联盟
原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOMEKDEviNLinux联盟
方法是,进入你自己的home目录,然后编辑这个文件:.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 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm &

gnome-session &

你可以把像上面这样把"twm &"这一行注释掉,然后在下面加入一行"gnome-session &",或者是"startkde &",分别启动GNOME桌面和KDE桌面。viNLinux联盟
viNLinux联盟
如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢?viNLinux联盟
viNLinux联盟
有!我们可以把VNC server启动成后台服务。执行如下步骤:viNLinux联盟
viNLinux联盟
首先要允许VNC server在系统启动过程中被启动。这可以通过系统设置-->服务器设置-->服务菜单来配置,把vncserver一项选上就可以了。viNLinux联盟
如果使用命令行的话,以root身份运行以下两条命令:

cd /etc/rc5.d

mv K35vncserver S35vncserver

然后编辑/etc/sysconfig/vncservers,以下是文件内容:

# The VNCSERVERS variable is a list of display:user pairs.

#

# Uncomment the line below to start a VNC server on display :1

# as my 'myusername' (adjust this to your own). You will also

# need to set a VNC password; run 'man vncpasswd' to see how

# to do that.

#

# DO NOT RUN THIS SERVICE if your local area network is

# untrusted! For a secure way of using VNC, see

# URL:http://www.uk.research.att.com/vnc/sshvnc.html.

VNCSERVERS="1:user1 2:user2 3:user3"

VNCSERVERARGS[1]="-geometry 1024x768"

VNCSERVERARGS[2]="-geometry 1024x768" VNCSERVERARGS[3]="-geometry 800x600"

解释一下这个文件:viNLinux联盟
VNCSERVERS
这一行是配置在系统启动时启动几个VNC server,上面的例子里运行了三个VNC server,其中user1display :1user2display :2user3display :3viNLinux联盟
VNCSERVERARGS
这三行,分别为VNC server 1, 2, 3配置启动参数,上面的例子里对user1user2使用屏幕分辨率1024x768,对user3使用800x600viNLinux联盟
其它支持的参数请使用“man vncserver”命令查询。viNLinux联盟
viNLinux联盟
编辑好这个文件后,保存,然后以root身份运行:

/sbin/service vncserver start

这样user1, user2, user3vncserver就启动了。viNLinux联盟
以后每次系统重启时,都会自动启动这三个用户的vncserverviNLinux联盟
viNLinux联盟
注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败!
首先需要配置 VNC 密码,密码在使用客户端连接服务器时使用。 viNLinux联盟
注意: VNC 密码保存在用户的主目录中 (/home/xxx) ,每个用户都可以设置自己的密码。因此,请使用你的用户名 ( 尽量不要使用 root) 运行上述命令
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐