当前位置: > Linux服务器 > VNC >

VNC介绍和如何远程连接到远程的Linux界面?

时间:2015-12-08 16:58来源:linux.it.net.cn 作者:IT
 
  1.   
今天突然需要使用VNC,但是从来没有使用过这个玩意儿!后来通过查找关于这方面的信息,下面就是我粗略对VNC的理解和使用。

 

下面对VNC的来源的基本组成就不一一介绍了,我相信没有比百度百科有更好的介绍了。

 

 
  1. http://baike.baidu.com/link?url=Z6-B80x_mQUjxotyvIFstCc-cce2IJXKSclfwbAPz0JUMuhIBqmfRg4u2ycN7jQ4rbLTcwMwfGF2bJML5cRnfK  
但是要注意一点:
 
  1.     <span style="white-space:pre">    </span>同样可能远程连入UNIX、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样,  
  2. <span style="white-space:pre">    </span>前者(VNC)是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,  
  3. <span style="white-space:pre">    </span><span style="color:#ff0000;">即使操作过程中“本地电脑与操作主机网络断开”,也不影响操作的顺利进行;</span>  
  4. <span style="white-space:pre">    </span>而后者(Xmanager)是通过端口将主机服务器的UI界面引导到本地电脑进行展现,  
  5. <span style="white-space:pre">    </span><span style="color:#ff0000;">如操作过程出现“本地电脑与操作主机网络断开”,操作将中断失败!如果操作中进行的工作任务非常重要,  
  6. <span style="white-space:pre">    </span>不能中断,如ORACLE RAC实施,结果是灾难性的!</span>  
  7. <span style="white-space:pre">    </span>更重要的是,VNC是免费的、开源的,Xmanager你可能用的是破解注册版的。  

 

Linux的版本可以通过:

 
  1. [root@localhost sysconfig]# cat /etc/issue  
  2. Red Hat Enterprise Linux Server release 5.5 (Tikanga)  
  3. Kernel \r on an \m  
 
  1.   
 
  1. 查看是否安装了vnc:  
 
  1. [root@localhost sysconfig]# rpm -qa| grep vnc-server  
  2. vnc-server-4.1.2-14.el5_3.1  

 

在window中下载vnc viewer :http://download.csdn.net/detail/u011218159/8340161

在服务端配置有两种方式:

1. 通过界面操作来配置:System——preference——远程桌面——勾选所有选项除了(ask  you for confiromation选项)

2. 通过命令来配置:

 
  1. [root@localhost ~]# vncserver :1  
  2.   
  3. You will require a password to access your desktops.  
  4.   
  5. Password:  
  6. Verify:  
  7.   
  8. New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1  
  9.   
  10. Creating default startup script /root/.vnc/xstartup  
  11. Starting applications specified in /root/.vnc/xstartup  
  12. Log file is /root/.vnc/localhost.localdomain:1.log  

 

配置好了以后,通过可客户端的vnc viewer来连接我这里是出现了一些问题:

1. 连接被拒绝:是因为防火墙的原因哦

一种解决方法:关闭防火墙

 
  1. [root@localhost ~]# /etc/init.d/iptables stop  
  2. Flushing firewall rules:                                   [  OK  ]  
  3. Setting chains to policy ACCEPT: filter                    [  OK  ]  
  4. Unloading iptables modules:                                [  OK  ]  
  5. [root@localhost ~]# ls  
  6. anaconda-ks.cfg  Desktop  install.log  install.log.syslog  
配置到防火墙配置文件中:

 

 

 
  1. 基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下  
  2. [root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT  
  3. [root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT  

 

2. 连接界面在上面的两种中是不一样的,解决方式:

 

 
  1. 配置VNC图形桌面环境为KDE或GNOME桌面环境  
  2. 如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下  
  3. 之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件  
  4. [root@testdb ~]# <span style="color:#ff0000;">vi /root/.vnc/xstartup</span>  
  5. #!/bin/sh  
  6.   
  7. # Uncomment the following two lines for normal desktop:  
  8. # unset SESSION_MANAGER  
  9. # exec /etc/X11/xinit/xinitrc  
  10.   
  11. [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
  12. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
  13. xsetroot -solid grey  
  14. vncconfig -iconic &  
  15. xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &  
  16. twm &  
  17.   
  18. 将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境  
  19. 将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境  
  20.   
  21. 重新启动vncserver服务的方法:  
  22. [root@testdb ~]# vncserver -kill :1  
  23. [root@testdb ~]# vncserver :1  

 

这样以后就应该没有问题了,终于写完了!!

 

下面是我参考的,假如我上面写的还不够完整请看下面 的内容:

1.确认VNC是否安装  

  1. 默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。  
  2. 确认是否已经安装VNC服务及查看安装的VNC版本  
  3. [root@testdb ~]# rpm -q vnc-server  
  4. vnc-server-4.1.2-9.el5  
  5. [root@testdb ~]#  
  6.   
  7. 若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下  
  8. rpm -ivh /mnt/Server/vnc-server-4.1.2-9.el5.x86_64.rpm  
  9.   
  10. 2.启动VNC服务  
  11. 使用vncserver命令启动VNC服务,命令格式为“vncserver :桌面号”,其中“桌面号”用“数字”的方式表示,每个用户连个需要占用1个桌面  
  12. 启动编号为1的桌面示例如下  
  13. [root@testdb ~]# vncserver :1  
  14.   
  15. You will require a password to access your desktops.  
  16.   
  17. Password:  
  18. Verify:  
  19. xauth:  creating new authority file /root/.Xauthority  
  20.   
  21. New 'testdb:1 (root)' desktop is testdb:1  
  22.   
  23. Creating default startup script. /root/.vnc/xstartup  
  24. Starting applications specified in /root/.vnc/xstartup  
  25. Log file is /root/.vnc/testdb:1.log  
  26.   
  27. 以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。  
  28. BTW:/root/.vnc/目录下还有一个“testdb:1.pid”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。  
  29.   
  30. 3.VNC服务使用的端口号与桌面号的关系  
  31. VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下  
  32. 桌面号为“1”  ---- 端口号为5901  
  33. 桌面号为“2”  ---- 端口号为5902  
  34. 桌面号为“3”  ---- 端口号为5903  
  35. ……  
  36. 基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下  
  37. 桌面号为“1”  ---- 端口号为5801  
  38. 桌面号为“2”  ---- 端口号为5802  
  39. 桌面号为“3”  ---- 端口号为5803  
  40. ……  
  41. 基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下  
  42. [root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT  
  43. [root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT  
  44.   
  45. 4.测试VNC服务  
  46. 第一种方法是使用VNC Viewer软件登陆测试,操作流程如下  
  47. 启动VNC Viewer软件 --> Server输入“144.194.192.183:1” --> 点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功  
  48. 第二种方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下  
  49. 地址栏输入http://144.194.192.183:5801/ --> 出现VNC viewer for Java(此工具是使用Java编写的VNC客户端程序)界面,同时跳出VNC viewer对话框,在Server处输入“144.194.192.183:1”点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功  
  50. (注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp这里下载最新的JRE进行安装)  
  51.   
  52. 5.配置VNC图形桌面环境为KDE或GNOME桌面环境  
  53. 如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下  
  54. 之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件  
  55. [root@testdb ~]# vi /root/.vnc/xstartup  
  56. #!/bin/sh  
  57.   
  58. # Uncomment the following two lines for normal desktop:  
  59. # unset SESSION_MANAGER  
  60. # exec /etc/X11/xinit/xinitrc  
  61.   
  62. [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
  63. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
  64. xsetroot -solid grey  
  65. vncconfig -iconic &  
  66. xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &  
  67. twm &  
  68.   
  69. 将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境  
  70. 将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境  
  71.   
  72. 重新启动vncserver服务的方法:  
  73. [root@testdb ~]# vncserver -kill :1  
  74. [root@testdb ~]# vncserver :1  
  75.   
  76. 6.配置多个桌面  
  77. 可以使用如下的方法启动多个桌面的VNC  
  78. vncserver :1  
  79. vncserver :2  
  80. vncserver :3  
  81. ……  
  82. 但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为oracle用户为例进行配置如下:  
  83. 格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"  
  84. [root@testdb ~]# vi /etc/sysconfig/vncservers  
  85. VNCSERVERS="1:root 2:oracle"  
  86. VNCSERVERARGS[1]="-geometry 1024x768"  
  87. VNCSERVERARGS[2]="-geometry 1024x768"  
  88.   
  89. 7.修改VNC访问的密码  
  90. 使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,例如在我的这个实验中,root用户和oracle用户需要分别修改,修改过程如下:  
  91. [root@testdb ~]# vncpasswd  
  92. Password:  
  93. Verify:  
  94. [root@testdb ~]#  
  95.   
  96. 8.启动和停止VNC服务  
  97. 1)启动VNC服务命令  
  98. [root@testdb ~]# /etc/init.d/vncserver start  
  99. Starting VNC server: 1:root  
  100. New 'testdb:1 (root)' desktop is testdb:1  
  101.   
  102. Starting applications specified in /root/.vnc/xstartup  
  103. Log file is /root/.vnc/testdb:1.log  
  104.   
  105. 2:oracle  
  106. New 'testdb:2 (oracle)' desktop is testdb:2  
  107.   
  108. Starting applications specified in /home/oracle/.vnc/xstartup  
  109. Log file is /home/oracle/.vnc/testdb:2.log  
  110.   
  111.                                                            [  OK  ]  
  112. 2)停止VNC服务命令  
  113. [root@testdb ~]# /etc/init.d/vncserver stop  
  114. Shutting down VNC server: 1:root 2:oracle                  [  OK  ]  
  115.   
  116. 3)重新启动VNC服务命令  
  117. [root@testdb ~]# /etc/init.d/vncserver restart  
  118. Shutting down VNC server: 1:root 2:oracle                  [  OK  ]  
  119. Starting VNC server: 1:root  
  120. New 'testdb:1 (root)' desktop is testdb:1  
  121.   
  122. Starting applications specified in /root/.vnc/xstartup  
  123. Log file is /root/.vnc/testdb:1.log  
  124.   
  125. 2:oracle  
  126. New 'testdb:2 (oracle)' desktop is testdb:2  
  127.   
  128. Starting applications specified in /home/oracle/.vnc/xstartup  
  129. Log file is /home/oracle/.vnc/testdb:2.log  
  130.   
  131.                                                            [  OK  ]  
  132.   
  133. 4)设置VNC服务随系统启动自动加载  
  134. 第一种方法:使用“ntsysv”命令启动图形化服务配置程序,在vncserver服务前加上星号,点击确定,配置完成。  
  135. 第二种方法:使用“chkconfig”在命令行模式下进行操作,命令使用如下(预知chkconfig详细使用方法请自助式man一下)  
  136. [root@testdb ~]# chkconfig vncserver on  
  137. [root@testdb ~]# chkconfig --list vncserver  
  138. vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off  


(责任编辑:IT)
------分隔线----------------------------