linux环境vnc部署过程详解
vnc服务端机器地址:10.165.38.68
vnc客户端机器地址:本机(windows机器)
vnc客户端包:vnc_82537_82537.rar (百度云盘下载地址:http://pan.baidu.com/s/1pLo6MGN 密码:rhjy)
在linux机器上安装vnc服务端,然后通过本地windows机器的vnc客户端工具去连接到服务端,这样操作linux机器就能以界面化方式操作,连接到远程linux机器后的服务器显示效果如图:
下面就具体步骤详细讲解:
一:确认VNC服务是否有安装
rpm -qa|grep tigervnc
发现显示已经安装过vnc,说明已经安装过vnc服务了
如果显示没有安装,如下图:
这里提供两种安装方式:
- rpm包安装
此法最好用在有系统安装包的基础上,如redhat-Linux.5.5.for.x86-server-5.5 系统.iso包,打开后在Server目录下有两个包
上传vnc-server包就行了,然后运行命令
rpm -ivh vnc-server-4.1.2-14.el5.3.1.i386.rpm
来安装vnc服务,此法可以避免vnc版本与系统不一致的问题,因为是从系统里找的vnc的文件,但是iso文件难以获得,一般找这个
rpm文件都是要通过百度来找,寻找系统版本的vnc的rpm包来安装。否则因为版本不一致会导致后续很多问题。
- yum命令安装(推荐方式)
此法比较简单,直接使用yum命令即可:
yum -y install tigervnc-server
它会自动给你下载依赖包,如果你的yum命令不能使用,建议用如下命令:
echo nameserver 8.8.8.8 >> /etc/resolv.conf
然后在用yum命令即可。
二:启动vnc服务
使用vncserver命令启动VNC服务,命令格式为"vncserver :桌面号",其中"桌面号"用"数字"的方式表示,每个用户连个需要占用1个桌面
启动编号为1的桌面示例如下:
命令为 vncserver :1 (注意vncserver与:之间有空格)
以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。另外需注意的是这里设置的密码就是后面我们用vncserver客户端工具连接时要输入的密码。
BTW:/root/.vnc/目录下还有一个“主机名:1.pid”文件,这个文件记录着启动VNC后对应后面操作系统的进程号,用于停止VNC服务时准确定位进程号。
这样vnc服务端就启动成功了,这里是用root用户执行的vncserver :1命令,则启动后用vncserver客户端连接进入到该服务器的用户就是root用户,
如果用root用户安装后,用aiuap用户(其他的用户)启动:则vncserver客户端连接进入到该服务器的用户就是aiuap用户
三:vnc服务使用的端口号与桌面号的关系
VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1” ---- 端口号为5901
桌面号为“2” ---- 端口号为5902
桌面号为“3” ---- 端口号为5903
……
基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1” ---- 端口号为5801
桌面号为“2” ---- 端口号为5802
桌面号为“3” ---- 端口号为5803
……
基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
[root@xxxxx ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@xxxxx ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT
四:配置VNC图形桌面环境为KDE或GNOME桌面环境
如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?
之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件:
[root@xxxx-145 ~]# vi /root/.vnc/xstartup
可以看到最后一行为:twm &
将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境
将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境,
如果连接vnc后发现为黑屏,原因是没有安装GNOME Desktop Environment,使用
yum -y groupinstall "GNOME Desktop Environment"
即可安装GNOME Desktop Environment,安装完成后可重启vnc服务即执行vncserver -kill :1,在执行vncserver :1,再次进入发现出现屏幕画面。
如果发现执行该命令报错如下:
可执行如下命令安装:
yum clean all
yum groupinstall "X Window System" "Desktop"
yum -y install gnome*
即可安装GNOME Desktop Environment,安装完成后可重启vnc服务即执行vncserver -kill :1,在执行vncserver :1,再次进入发现出现屏幕画面。
五:配置多个桌面
可以使用如下的方法启动多个桌面的VNC:
vncserver :1
vncserver :2
vncserver :3
但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为oracle用户为例进行配置如下:
格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"
执行vi /etc/sysconfig/vncservers命令,添加配置:可根据你自己的用户具体配置,这里我配置了root和aiuap用户
VNCSERVERS="1:root 2:aiuap"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
六:vnc服务管理
a:修改vnc访问密码
使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,如我用root用户执行了vncpasswd命令,则只会修改root用户的vnc密码,其他用户不受影响:
b:启动vnc服务
基于第五步的基础,已经在配置文件中配置好用户对应的桌面号,执行service vncserver start命令,即可启动所有的用户对应的vnc服务
c:停止vnc服务
同样也是基于第五的基础,执行service vncserver stop命令,即可关闭配置文件中所有用户对应的vnc服务
七:客户端连接安装启动好的vnc服务端
下载文章开头给出的vnc_82537_82537.rar包到自己的本地机器,双击vncviewer.exe启动程序
服务器输入vnc服务端安装所在机器地址,后面的数字序号与vncserver启动时vncserver :1后面跟着的桌面号相同(如果配置了第五步和VNCSERVERS="1:root 2:aiuap"中桌面号相同即可),我这里如果写1则为root用户连接进入10.165.38.68,如果为2则为aiuap用户连接进入10.165.38.68服务器
点击确定后,会让你输入密码,该处的密码与第二步中启动vncserver输入的密码一致即可
点击确定,就能进入文章开头说的那种界面了,可以看到右上角显示进入该服务器的用户名用1进入为root,用2进入为aiuap
到此为止linux下安装vnc服务端以及从客户端连接vnc服务端所有的知识点就讲完了,自我感觉内容很细,这是我平时工作经常会安装这个然后网上也参考了很多人写的,总结出的自己安装试验很多次都很好用的一套。
linux环境vnc部署过程详解的更多相关文章
- 【转】postgresql 9.4 在linux环境的安装步骤详解
本文章来为各位介绍一篇关于postgresql 9.4 在linux环境的安装步骤详解,希望文章能够对各位新手朋友带来帮助的哦. 环境说明系统:centos 6.4 64位软件:postgresql ...
- Memcached在Linux环境下的使用详解
一.引言 写有关NoSQL数据库有关的文章已经有一段时间了,可以高兴的说,Redis暂时就算写完了,从安装到数据类型,在到集群,几乎都写到了.如果以后有了心得,再补充吧.然后就 ...
- VS2013安装部署过程详解
注意:缺少安装部署的小伙伴,看上一篇有详细介绍 程序在“Release”平台下编译运行没有错误 第一步:“新建”------“项目”------“其他项目类型”------“安装部署”------“I ...
- Openstack 实现技术分解 (1) 开发环境 — Devstack 部署案例详解
目录 目录 前言 系统环境 Devstack 下载源码 配置文件 local.conf & localrc 简易的环境脚本 openrc 部署 Devstack 自动化部署流程 部署案例 单节 ...
- Memcached在Linux环境下的使用详解http://blog.51cto.com/soysauce93/1737161
大纲 一.什么是memcached 二.memcached特性 三.memcached存储方式 四.memcached安装与配置 五.memcached结合php 六.Nginx整合memcached ...
- linux环境变量 export命令详解
由host $ export DVSDK="${HOME}/ti-dvsdk_dm368-evm_xx_xx_xx_xx"引发的问题 1.${HOME}:首先, HOME 是个变量 ...
- Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)
启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...
- Linux启动过程详解
Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...
- fabric网络环境启动过程详解
这篇文章对fabric的网络环境启动过程进行讲解,也就是我们上节讲到的启动测试fabric网络环境时运行network_setup.sh这个文件的执行流程 fabric网络环境启动过程详解 上一节我们 ...
随机推荐
- 在使用cognos时遇到的问题记录帖
在使用cognos时遇到的问题记录帖 1.开一个project 报无法访问位于 URL 的服务: http://localhost:80/ibmcognos/cgi-bin/cognos.cgi?b_ ...
- 微信小程序开发(1)
底限,HTML,CSS,JS得会 先过一下官方的文档:https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html?t=20161230 ...
- css技巧总结
本文旨在记录css中比较特殊的属性的用法,先按项目的时间顺记录,以后再整理. a,input,button,select,textarea{ outline:none; -webkit-tap-hig ...
- COCOS2D-JS入门-官网template源码解析
首先介绍几个概念: 导演: 导演 (Director)是Cocos2d-JS引擎抽象的一个对象,Director是整个Cocos2d-JS引擎的核心,是整个游戏的导航仪,游戏中的一些常用操作就是由Di ...
- Java中集合框架体系
集合的体系结构: |--Collection(单列集合的根接口) |--List(子接口):元素是有序的,元素可以重复.因为该集合体系有索引. |--A ...
- android应用编译失败 ResXMLTree_node size 类错误,以及 android studio 项目内搜索
今天很郁闷,又遇到个很让人崩溃的问题: ResXMLTree_node size 0 is smaller than header size 0x45. 类似这样的错误,提示中看不出任何有用的内容,网 ...
- python绝技 — 用Scapy解析TTL字段的值
#!/usr/bin/env python #--*--coding=utf-8--*-- #打印收到的数据包的源IP和TTL值 from scapy.all import * def testTTL ...
- magento中对获取的数据在前台进行分页显示
1.数据加载类class Bf170_Bf170Logistics_Block_Inquiry_Index extends Mage_Core_Block_Template { publ ...
- 【noi openjudge题解】最低通行费
这道题完全没有必要去计算限制时间,把时间当做一个参数来做就行了.知道了这一点之后就可以直接使用DP求解了 #include <algorithm> #include <iostrea ...
- c# 操作xml之xmlReader
xmlReader的名称空间using System.Xml; xmlReader是通过流的方式来读取xml文件的内容 <?xml version="1.0" encodin ...