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


今天突然需要使用VNC,但是从来没有使用过这个玩意儿!后来通过查找关于这方面的信息,下面就是我粗略对VNC的理解和使用。

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

http://baike.baidu.com/link?url=Z6-B80x_mQUjxotyvIFstCc-cce2IJXKSclfwbAPz0JUMuhIBqmfRg4u2ycN7jQ4rbLTcwMwfGF2bJML5cRnfK

但是要注意一点:

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

Linux的版本可以通过:

[[email protected] sysconfig]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m

查看是否安装了vnc:
[[email protected] sysconfig]# rpm -qa| grep vnc-server
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. 通过命令来配置:

[[email protected] ~]# vncserver :1

You will require a password to access your desktops.

Password:
Verify:

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log

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

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

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

[[email protected] ~]# /etc/init.d/iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
[[email protected] ~]# ls
anaconda-ks.cfg  Desktop  install.log  install.log.syslog

配置到防火墙配置文件中:

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

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

配置VNC图形桌面环境为KDE或GNOME桌面环境
如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下
之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件
[[email protected] ~]# <span style="color:#ff0000;">vi /root/.vnc/xstartup</span>
#!/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 &

将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境
将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境

重新启动vncserver服务的方法:
[[email protected] ~]# vncserver -kill :1
[[email protected] ~]# vncserver :1

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

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

1.确认VNC是否安装
默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。
确认是否已经安装VNC服务及查看安装的VNC版本
[[email protected] ~]# rpm -q vnc-server
vnc-server-4.1.2-9.el5
[[email protected] ~]#

若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下
rpm -ivh /mnt/Server/vnc-server-4.1.2-9.el5.x86_64.rpm

2.启动VNC服务
使用vncserver命令启动VNC服务,命令格式为“vncserver :桌面号”,其中“桌面号”用“数字”的方式表示,每个用户连个需要占用1个桌面
启动编号为1的桌面示例如下
[[email protected] ~]# vncserver :1

You will require a password to access your desktops.

Password:
Verify:
xauth:  creating new authority file /root/.Xauthority

New 'testdb:1 (root)' desktop is testdb:1

Creating default startup script. /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/testdb:1.log

以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。
BTW:/root/.vnc/目录下还有一个“testdb:1.pid”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。

3.VNC服务使用的端口号与桌面号的关系
VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1”  ---- 端口号为5901
桌面号为“2”  ---- 端口号为5902
桌面号为“3”  ---- 端口号为5903
……
基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1”  ---- 端口号为5801
桌面号为“2”  ---- 端口号为5802
桌面号为“3”  ---- 端口号为5803
……
基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
[[email protected] ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[[email protected] ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT

4.测试VNC服务
第一种方法是使用VNC Viewer软件登陆测试,操作流程如下
启动VNC Viewer软件 --> Server输入“144.194.192.183:1” --> 点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
第二种方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下
地址栏输入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图形桌面环境 --> 测试成功
(注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp这里下载最新的JRE进行安装)

5.配置VNC图形桌面环境为KDE或GNOME桌面环境
如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下
之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件
[[email protected] ~]# vi /root/.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 &

将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境
将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境

重新启动vncserver服务的方法:
[[email protected] ~]# vncserver -kill :1
[[email protected] ~]# vncserver :1

6.配置多个桌面
可以使用如下的方法启动多个桌面的VNC
vncserver :1
vncserver :2
vncserver :3
……
但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为oracle用户为例进行配置如下:
格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"
[[email protected] ~]# vi /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"

7.修改VNC访问的密码
使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,例如在我的这个实验中,root用户和oracle用户需要分别修改,修改过程如下:
[[email protected] ~]# vncpasswd
Password:
Verify:
[[email protected] ~]#

8.启动和停止VNC服务
1)启动VNC服务命令
[[email protected] ~]# /etc/init.d/vncserver start
Starting VNC server: 1:root
New 'testdb:1 (root)' desktop is testdb:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/testdb:1.log

2:oracle
New 'testdb:2 (oracle)' desktop is testdb:2

Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/testdb:2.log

                                                           [  OK  ]
2)停止VNC服务命令
[[email protected] ~]# /etc/init.d/vncserver stop
Shutting down VNC server: 1:root 2:oracle                  [  OK  ]

3)重新启动VNC服务命令
[[email protected] ~]# /etc/init.d/vncserver restart
Shutting down VNC server: 1:root 2:oracle                  [  OK  ]
Starting VNC server: 1:root
New 'testdb:1 (root)' desktop is testdb:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/testdb:1.log

2:oracle
New 'testdb:2 (oracle)' desktop is testdb:2

Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/testdb:2.log

                                                           [  OK  ]

4)设置VNC服务随系统启动自动加载
第一种方法:使用“ntsysv”命令启动图形化服务配置程序,在vncserver服务前加上星号,点击确定,配置完成。
第二种方法:使用“chkconfig”在命令行模式下进行操作,命令使用如下(预知chkconfig详细使用方法请自助式man一下)
[[email protected] ~]# chkconfig vncserver on
[[email protected] ~]# chkconfig --list vncserver
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
时间: 2024-09-28 13:50:21

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

java通过ssh2远程连接计算机并执行linux命令的方法(转)

java通过ch.ethz.ssh2远程连接计算机并执行linux命令的方法实现 API详情:  http://www.ganymed.ethz.ch/ssh2/javadoc/ch/ethz/ssh2/package-summary.html jar包:  ganymed-ssh2-build210.jar    下载地址: http://www.ganymed.ethz.ch/ssh2/ 代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1

windows下使用xShell远程连接virtualbox里面的linux

第一阶段:基本安装 安装virtual box 在virtualbox里面安装xubuntu:是ubuntu+xfce桌面环境的一个linux的发行版本 在windows下安装Xmanager Enterprise 5[用其中的Xshell,建立远程连接] 第二阶段:基本设置 在windows下用cmd--ipconfig查看VirtualBox Host-Only Network找到IPv4地址:192.168.56.1[一般都是这个] 在xubuntu下的terminal--ifconfig

Windows Server 2008 R2 多用户实现远程连接登录 远程桌面服务配置和授权激活

日常工作中,经常需要远程连接到服务器上,然而默认的服务器系统同时连接的最大连接数只有2个.若第三个用户登录,就会出现以下问题: 那么该如何解决呢? 一.远程桌面服务安装和配置 服务器管理器------角色-----添加角色:选择"远程桌面服务",下一步 选择角色服务:"远程桌面会话主机"和"远程桌面授权", 下一步 选择"不需要使用网络级别身份认证",下一步 选择以后配置:  下一步: 下一步: 点击安装 重启服务器,完成安装

Windows系统使用putty远程连接DigitalOcean创建的Linux系统(CentOS6.7为例)

大部分vps提供网站都会在网站上提供一个控制台界面,方便操作远程vps.但是使用起来特别不方便,尤其在一个神奇的国家,打开国外网站都困难,何况还要在网站上不断的操作.这一教程记录如何在Windows系统下使用Putty来远程操作Vps. 一.环境配置 一台有CentOS的主机,我这里用的是DigitalOcean的主机,CentOS6.7 32位系统,其他地方购买的主机应该也是一样的,主要就是要在创建的时候添加一个SSH密钥. 二.创建SSH密钥 有SSH密钥后才可以使用putty连接linux

Linux/CentOS下开启MySQL远程连接,远程管理数据库

当服务器没有运行PHP.没装phpMyAdmin的时候,远程管理MySQL就显得有必要了. 第一步:开启MySQL用户的远程访问权限 mysql -u root -p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称 在MySQL控制台执行: grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; # root是用户名,%代表任意主机,'123456'指定的登

CentOS下开启mysql远程连接,远程管理数据库

当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysql -u root -p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称 在mysql控制台执行: grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; #

Java驱动远程连接mongoDB

mongodb默认是不能远程连接的,而且在linux安装完你会发现,它的目录极其简单,连个配置文件都没有. 我的mongodb的版本是3.6,目前最新的.https://www.mongodb.com/mongodb-3.6 百度了一下看是有配置文件: mongodb.conf. 又检查了下目录确实没有.然后只能自己创建了. 在官方文档找了关于配置文件的介绍: https://docs.mongodb.com/manual/reference/configuration-options/ 文档很

Sql Server 2005的1433端口打开和进行远程连接

参考地址:http://topic.csdn.net/u/20090828/16/e693935a-99b7-4090-a6bc-0123c91183eb.html 1.如何打开sql server 2005 的1433端口配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和&

[转]MySQL远程连接ERROR 2003 (HY000):Can&#39;t connect to MySQL server on&#39;XXXXX&#39;(111) 的问题

装了个navicat ,然后去连接mysql服务器,一直连不上,一开始以为是防火墙问题,后来防火墙都关闭, iptable服务关闭,还是不行,网上查了下:主要是因为设置了bind_address=127.0.0.1 原文引用: 问题描述: 从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.85'(111)错误. [mysql@vvmvcs0 ~]$ my