`
daweiangel
  • 浏览: 326489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

用VNC实现远程桌面共享的方法

阅读更多
VNC,全称为Virtual Network Computing,它是一个桌面共享系统。它的功能,类似于windows中的远程桌面功能。VNC使用了RFB(Remote FrameBuffer,远程帧缓冲)协议来实现远程控制另外一台计算机。它把键盘、鼠标动作发送到远程计算机,并把远程计算机的屏幕发回到本地。 

  VNC技术与平台无关,VNC Viewer可以和VNC Server在不同的操作系统上。VNC几乎支持所有的操作系统,也支持Java,甚至可以通过支持Java的浏览器来访问VNC Server。多个VNC客户端可以同时连接到一个VNC Server上。
  VNC最初由AT&T开发的,它的源代码是开源的。大多数linux发行版都带了VNC Server的发行包,只要选择安装就可以了。

[root@localhost ~]# uname -a
[root@localhost ~]# rpm -q vnc-server   //查看是否安装了rpm版本vncserver


比如我的Redhat as 4 update 7 就安装了 4.0版本

2、启动VNC Server
首先需要配置VNC密码,密码在使用客户端连接服务器时使用。
 注意:VNC密码保存在用户的主目录中,每个用户都可以设置自己的密码。因此,请使用你的用户名(尽量不要使用root)运行下列命令:
[user@localhost ~]$vncpasswd


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

 [user@localhost ~]$vncserver

    passwd: //如果这个帐号是第一次运行vncserver,则会要求你输入连接的密码。 
    verify:  //再次确认密码
    New 'server1.linux:4 (demo)' desktop is server1.linux:4 
    Starting applications specified in /home/demo/.vnc/xstartup 
    Log file is /home/demo/.vnc/server1.linux:4.log 


上面这段话表示起动了一个图形终端,编号为4,要记住这个编号,等下登录时需要提供这个编号。
如果你要停止这个进程,使用:

   
[user@localhost ~]$ vncserver -kill :4


1、VNC Server的配置

    配置一下防火墙,允许VNC客户端连接VNC server。VNC server监听的端口从5900开始,display :1的监听5901,display :2监听5902,以此类推。

   
[root@localhost ~]#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

  这句话的含义是,允许其它机器访问本机的5900到5903端口,这样,display:1, display:2, display:3的用户就可以连接到本机。

  然后使用root身份重新启动防火墙:

  
[root@localhost ~]#/sbin/service iptables restart     


   好了,现在就可以运行客户端软件,连接到VNC server上了。
 
  关于在使用客户端软件连接vncserver是会出现的一下无法连接的问题,很多都是由于防火墙的端口没有设置正确,解决的方法是使用
  
[root@localhost ~]#netstat -alp | grep Xvnc
查看vncserver所占用的端口,找一个包括被占用的端口的范围,配置到防火墙上即可。

3、客户端连接

    VNC客户端软件很多,在linux下有vncviewer,KDE还提供了一个krdc(它的菜单项就是“Remote Desktop Connection",远程桌面连接)。

  在window也有不少vnc客户端,你可以到http://www.realvnc.com/去下载一个,安装就可以用了。

    假设VNC server的IP地址是192.168.1.1,display是:1。在VNC viewer的server栏中输入:“192.168.1.1:1”,然后连接。OK,你可以看到自己的桌面了。以后不管你什么时候关闭自己的本地PC机都不怕了,只要server不关机,你只要连接到VNC server,你就可以看到你前一天关闭本地PC机时的桌面还保持着原样。

如果防火墙配置没有出错的话,之后会提示输入用户名与密码的提示框,之后就会出现一个远程连接的桌面,但是屏幕会事灰色的。是由于默认的vnc-server是使用 twm 窗口管理器,需要对起进行美化才可正常使用。

4、美化界面

    虽然此时可以登录,但是登录后看到的界面是X term的界面,还不是正常的X Window界面。原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOME或KDE。 方法是,进入你自己的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桌面。

    
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

      这行是关于文本模式的配置,我理解是有这行后在事业弄个vncviewer连接vnc-server后,会有一个终端显示,不知道是否正确

   5、把VNC Server做成后台服务

    如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢?

  有!我们可以把VNC server启动成后台服务。执行如下步骤:

  首先要允许VNC server在系统启动过程中被启动。这可以通过“系统设置——>服务器设置——>服务”菜单来配置,把vncserver一项选上就可以了。

  然后编辑/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" 

  解释一下这个文件:

  VNCSERVERS这一行是配置在系统启动时启动几个VNC server,上面的例子里运行了三个VNC server,其中user1在display :1,user2在display :2,user3在display :3。

  VNCSERVERARGS这三行,分别为VNC server 1, 2, 3配置启动参数,上面的例子里对user1和user2使用屏幕分辨率1024x768,对user3使用800x600。

  其它支持的参数请使用“man vncserver”命令查询。

  编辑好这个文件后,保存,然后以root身份运行:

 
 /sbin/service vncserver start


  这样user1, user2, user3的vncserver就启动了。

  以后每次系统重启时,都会自动启动这三个用户的vncserver。

  注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败!   














分享到:
评论

相关推荐

    视易网关服务器VNC远程桌面共享搭建.zip

    视易网关服务器VNC远程桌面共享搭建.zip

    VNC viewer远程桌面

    VNC(Virtual Network Computing)是一种基于远程帧缓冲协议的远程桌面技术,允许用户通过网络连接到另一台计算机并控制其桌面。VNC Viewer是VNC技术的一种实现,它作为一个客户端工具,让用户能够轻松地访问远程...

    redhat6.5 企业环境使用vnc服务远程桌面.doc

    使用 VNC 服务实现 RedHat 6.5 企业环境中的远程桌面 在 Linux 服务器中,许多朋友可能会遇到这样的困惑:工作中需要使用 Linux 服务器,但是 Linux 操作系统大多数都是直接命令行操作的,而有一些软件需要图形化...

    VNC客户端远程桌面工具

    对于Linux用户来说,由于其图形界面的复杂性和多样性,VNC远程桌面工具成为了一个不可或缺的工具,使得非命令行熟练的用户也能轻松应对远程Linux系统。 总的来说,VNC客户端远程桌面工具如VNC Viewer 提供了高效、...

    远程桌面工具VNC

    总结,VNC是一款强大且实用的远程桌面工具,适合有一定技术背景的用户使用。其灵活性和可扩展性使其在各种场景下都能发挥重要作用,无论是日常办公、远程技术支持还是系统管理,都是一个值得信赖的选择。

    非常好用的远程桌面VNC

    远程桌面技术是IT领域中一种广泛使用的工具,它允许用户通过网络访问并控制另一台计算机的桌面环境。VNC(Virtual Network Computing)是这种技术的一种实现,尤其在跨平台操作和远程支持方面表现出色。VNC系统基于...

    C# 版VNC、远程连接

    C# 版VNC(Virtual Network Computing)是一种基于C#编程语言实现的远程桌面控制软件,它允许用户通过网络从一个计算机上访问和控制另一台计算机的桌面环境。VNC技术的核心是通过远程帧缓冲协议(RFB)来实现屏幕...

    vnc一对一服务器远程桌面共享服务器repeater

    This is my Linux port of Ultravnc repeater source code. Compile with command: Make You should now have a repeater file, start it with command ./repeater [inifilepathandname] Various settings can be ...

    realVNC windows和linux远程桌面共享工具

    windows和linux之间远程桌面连接工具,方便两个系统之间互相远程桌面连接,因为windows里是RDP协议,端口3389,而linux是VNC协议,端口5900,为了互相可以连接,必须一方妥协使用另一方的协议和端口才可以,因此在...

    VNC viewer 远程桌面控制软件

    总的来说,VNC Viewer作为一款功能强大且易于使用的远程桌面工具,极大地便利了远程协作和设备管理。通过深入理解和熟练运用VNC Viewer,用户能够高效地进行远程工作和维护,无论距离多么遥远,都能如同坐在远程...

    VNC实现windows远程访问ubuntu自带桌面

    为了能够实现Windows到Ubuntu 16.04的远程桌面访问,首先需要在Ubuntu侧做好相应的设置。 ##### 2.1 设置Ubuntu 16.04允许远程控制 1. **开启桌面共享功能**: - 进入系统设置中的“桌面共享”选项,或直接在...

    vnc 开源.rar_vnc_vnc源代码_vnc编程_远程控制_远程桌面

    首先,通过查看源代码,我们可以理解VNC如何实现高效的远程桌面传输,包括如何压缩和解压缩图像数据,以及如何处理键盘和鼠标输入。其次,源代码可以用于创建自定义版本的VNC服务器或客户端,添加特定功能或者优化...

    windows操作系统与银河麒麟互相远程桌面连接

    总的来说,Windows与银河麒麟V10之间的远程桌面连接主要依赖于桌面共享软件和VNC Viewer,通过配置防火墙和安全设置,可以实现跨平台的高效协作。了解这些步骤对于IT专业人员来说至关重要,特别是需要在不同操作系统...

    远程桌面远程控制linux

    Windows用户可以通过多种方式实现类似远程桌面的功能来管理Linux系统。以下将详细介绍这一主题,包括常用的方法、工具以及相关配置。 一、SSH(Secure Shell)远程登录 SSH是最常用的远程控制Linux的方式,它提供了...

    远程桌面系统-tightVNC

    TightVNC就是这样一个强大的远程桌面共享工具,它具有跨平台的特性,支持Windows、Linux以及Mac OS等操作系统,极大地扩展了用户的远程访问能力。 TightVNC的主要功能包括: 1. **远程控制**:用户可以实时查看和...

    VNC远程控制软件

    VNC(Virtual Network Computing)是一种基于远程桌面协议(RDP)的开源远程控制软件,它允许用户通过网络访问和控制远程计算机。VNC的工作原理是通过在本地计算机上安装一个客户端,而在远程计算机上安装一个服务器...

    VNC_V463远程桌面

    VNC_V463是VNC的一个特定版本,专为Windows 7系统设计,提供高效、稳定的远程桌面访问功能。 VNC的核心原理是通过开放的RFB(Remote Framebuffer)协议工作,该协议允许一台计算机(客户端)显示另一台计算机...

    VNCviewer远程工具

    VNCViewer是一款强大的远程桌面控制软件,尤其在Linux系统中被广泛应用。它的全名是Virtual Network Computing Viewer,常被简称为VNC Viewer。这个工具允许用户通过网络连接到另一台计算机,实现远程操控其图形用户...

Global site tag (gtag.js) - Google Analytics