操作环境:CentOS 5.3 + Windows XP SP3 32bit + RealVNC 4.1.2 i386 + TigerVNC.

参考:潇湘隐者-Linux系统VNC配置实践总结,萨米的博客-VNC配置孤叶风铃-Linux 开启VNCSERVER远程桌面设置:利用putty进行vnc + ssh tunneling

VNC是基于RFB(Remote FrameBuffer)的一款开源的远程桌面控制软件。目前,原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现,像是RealVNC,VNC tight 和UltraVNC。Real VNC 是当前最活跃和强大的主流应用。

一、安装VNC Server

CentOS 5.3默认已经安装vnc与vnc-server,对应的是realvnc的4.1.2版本。

对于没有安装vnc的Linux系统可以:

1、yum安装,CentOS 5.3 yum源自带了vnc与vnc-server;

 [root@localhost ~]# yum install vnc

 [root@localhost ~]# yum install vnc-server

2、可以从realvnc官网下载,解压归档后得到两个rpm包,安装vnc-server即可。

二、配置VNC Server

VNC Server的配置文件为 /etc/sysconfig/vncservers,在文件末尾添加以下两句:

VNCSERVERS="2:hubery"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
#桌面分辨率为800*600 ,阻止图形桌面通过TCP端口 ,不能通过WEB访问vncserver,不能通过不安全的方式从远程登录。

关于参数配置说明:

1:-geometry 表示桌面分辨率,默认为1024x768。

2:-nohttpd  表示不监听HTTP端口(58xx)。

3:-nolisten tcp 表示不监听TCP端口(60xx)

4:-localhost 只允许从本机访问。

5:AlwaysShared 默认只允许一个VNCVIEWER连接,此参数表示同一个显示端口允许多用户同时登录.

6:-depth  表示色深,参数有8,16,24,32.

7: SecurityTypes None 登录不需要密码认证VncAuth默认值,要密码认证。

由于root用户使用的是第一个VNC Server,我们添加Server是从2开始的,所以这里桌面号是2,用户是hubery。

VNC使用的起始端口是5900和5800,桌面号是2时,VNC Viewer访问的端口是5902,WEB方式(java)访问的端口号是5802。

root用户的配置也是这个文件,若要配置需要在文件末尾同样加上类似以上两句。

以上配置,vncserver将在服务启动时打开vncserver :2。

三、防火墙配置

如果不熟悉防火墙iptables,可以直接关掉(重启失效):

[root@localhost ~]# iptables -L

[root@localhost ~]# service iptables stop

但一般不建议这样做,我们需要在防火墙里打开某些端口:

[root@localhost ~]# iptables -I INPUT -p tcp --dport : -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p udp --dport : -j ACCEPT

同样,上述操作在计算机重启之后也会失效,以下操作将配置保存到配置文件,使其永久生效:

[root@localhost ~]# service iptables save

四、启动VNC Server

在启动Server之前需要给远程控制设置一个访问密码:

[root@localhost ~]# su hubery
[hubery@localhost root]$ vncpasswd
Password:
Verify:
[hubery@localhost root]$ vncserver :
xauth: creating new authority file /home/hubery/.Xauthority New 'localhost:2 (hubery)' desktop is localhost: Creating default startup script /home/hubery/.vnc/xstartup
Starting applications specified in /home/hubery/.vnc/xstartup
Log file is /home/hubery/.vnc/localhost:.log [hubery@localhost root]$

关闭某个vncserver:

vncserver -kill :

五、VNC Viewer访问

我的VNC客户端是在Win XP下安装的TigerVNC Viwer,可以从其官网免费下载。安装VNC Viewer后以 Server_IP:桌面号 的形式访问。

六、桌面配置(可选)

以上配置登陆之后得到的是twm桌面,看起来像一个终端,但它还是桌面,我们可以从命令行启动桌面应用,例如firefox,但是一般人是用不习惯、不会去用它的,可以换其它的桌面吗?当然可以,其配置文件为(用户根目录下)~/.vnc/xstartup,将twm修改为gnome-session或startkde即可切换成gnome或kde。

#!/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++ -ls -title "$VNCDESKTOP Desktop" &
# twm &
gnome-session &

切换之后重启服务是必须的:

[root@localhost .vnc]# service vncserver restart

[root@localhost .vnc]# su hubery
[hubery@localhost .vnc]$ vncserver -kill :
Killing Xvnc process ID
[hubery@localhost .vnc]$ vncserver : New 'localhost:2 (hubery)' desktop is localhost: Starting applications specified in /home/hubery/.vnc/xstartup
Log file is /home/hubery/.vnc/localhost:.log [hubery@localhost .vnc]$

使用Viewer重新登陆,你会发现我们熟悉的桌面又回来了:

七、安全访问VNC(可选)

如果直接使用vncviewer来进行访问,有两点不利因素:
1. 口令传输是明文,很容易被侦听到.
2. 防火墙需要打开59xx端口,这在通常的单位里是不可能的.

幸运的是,我们有ssh这个强大的工具,象X11 Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍.

我依然使用Win XP下的Tiger VNC做客户端,其实对于Linux下也是可以的(更简单)。

1、在Session下配置Host Name为Server IP,Port为SSH端口22;

2、在Connection-》SSH-》Tunnels配置Source port为VNC Server端口号5902,Destination为localhost:5902,并Add添加;

3、使用TigerVNC Viewer访问,地址现在是localhost:2。

至此,我们使用了加密的VNC,而且也不需要配置防火墙打开端口,也就是说使用ssh隧道在没有步骤三的情况下也是有效的。

Linux下VNC配置使用总结:开启+桌面配置+安全访问的更多相关文章

  1. Linux下VNC配置多个桌面和修改密码 不会当系统重启vnc失效

    1:vncserver 2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT   客户端方式 3:iptables -I INPUT -p tcp --d ...

  2. linux下使用FreeRDP 连接 Windows 远程桌面

    linux下使用FreeRDP 连接 Windows 远程桌面   简介 FreeRDP 是一款开源的远程桌面系统,支持多种平台, 在 ubuntu 中使用 FreeRDP 可以很方便的登录到 win ...

  3. Linux下PHP+MySQL+CoreSeek中文检索引擎配置

    说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装co ...

  4. Linux下SVN server 的使用及权限配置

    [Linux下SVN server 的使用及权限配置] 参考:http://www.cnblogs.com/heinoc/p/3805779.html

  5. Linux下MyCat和MyCat_web的安装和配置

    Linux下MyCat和MyCat_web的安装和配置 Mycat 是一个数据库分库分表中间件 Mycat web 可以对 Mycat进行监控,这里分享一下 Mycat web 的搭建过程 详细内容可 ...

  6. Linux下Apache2.2和PHP5的安装配置

    Linux下Apache2.2和PHP5的安装配置 环境介绍 我安装使用的Linux版本为CentOS6.5最精简版,Apache为2.2.29,PHP版本为5.4.28. 系统安装 首先安装Cent ...

  7. Linux下,Tomcat启动成功,发现ip:8080访问失败

    Linux下,Tomcat启动成功,发现ip:8080访问失败 Chasel_H 2018.04.23 20:47* 字数 195 阅读 566评论 0喜欢 3 相信很多人都和我一样,在Linux环境 ...

  8. VNC CentOS Linux下VNC Server远程桌面配置详解

    VNC概述 VNC (Virtual Network Console)是虚拟网络控制台的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 ...

  9. linux下VNC的配置及使用

    我们知道在windows里面有远程桌面(著名的有pcanywhere,网络人等)对吧,在linux下我们同样有这个东西,其中最流行的一种就是VNC,其实VNC是一种协议,它的全称是virtual ne ...

随机推荐

  1. php使用sftp上传文件

    搞这个SFTP文件传输搞了一整天真是醉了,从sftp安装,到php的ssh2扩展安装,最后到php应用ssh2来上传文件:最后就没有最后了 Failure creating remote file: ...

  2. python3.x:No matching distribution found for PIL

    安装完成即可解决无法引入PIL的问题.

  3. node.js中对同步,异步,阻塞与非阻塞的理解

    我们都知道javascript是单线程的,node.js是一个基于Chrome V8 引擎的 javascript 运行时环境,注意 node.js 不是一门语言,别搞错了. javascript为什 ...

  4. stark组件前戏之项目启动前加载指定文件

    1. django项目启动时, 自定制执行某个py文件 dajngo 启动时.会将所有 路由加载到内存中. 我的目的就是在 路由加载之前,执行某个py文件. 每个app中都有一个 apps.py fr ...

  5. 模块二 hashlib模块、configparser模块、logging模块

    算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...

  6. Linux安装命令出现如下错误:cannot find a valid baseurl for repo :base/7x86_64

    今天刚回到家,在我的虚拟机上有安装了一个Linux系统,安装好之后,想要安装如下命令,yum install wget,yum install gcc,yum install vim,发现一个也没有安 ...

  7. devexpress 如何读demo源码 总结

    对于初学这个庞大的控件集合的程序猿来讲应该是有些难度的.今天就devexpress  demo 里边一些东西就本人的所学做一下引导吧. dev 有个帮助文件 DevExpress 中文帮助文档 和每个 ...

  8. Svn启动窗口报错 Could not load file or assembly 'SharpSvn.dll' or one of its

    win10 64位系统生成没问题,测试都没问题,结果换到win7 64位系统上,点开就出现,网上搜了下,通过以下方式解决, 必须把bin 文件夹全部删除,重新生成.要不还是会报错. Solve it. ...

  9. PAT 甲级 1011 World Cup Betting (20)(代码+思路)

    1011 World Cup Betting (20)(20 分) With the 2010 FIFA World Cup running, football fans the world over ...

  10. Activity2.java

    package com.hanqi.text3; import android.app.Activity; import android.os.Bundle; import android.os.Pe ...