用VNC实现远程桌面共享(支持Windows, Linux, …)

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开发的,它的源代码是开源的。

在CentOs 4.3上配置VNC服务很简单(这里假定你的计算机上已经安装了VNC软件)

首先需要配置VNC密码,密码在使用客户端连接服务器时使用。

注意:VNC密码保存在用户的主目录中,每个用户都可以设置自己的密码。因此,请使用你的用户名(尽量不要使用root)运行下列命令:

vncpasswd

然后输入密码。

接下来就可以启动VNC server了。在启动VNC

server时,需要为你的server指定一个display参数。你可以把display理解为一个桌面,每个用户都可以有自己的桌面。VNC客户端

在连接时,可以指定连接到哪个桌面上。在系统中,display号不能重复,也就是说,如果有用户已经建立了名为“:1”的display,另外一个用户

就不能再使用“:1”了,他可以使用“:2”。

启动VNC server的命令是:

vncserver

例如,

vncserver :1

最后,需要配置一下防火墙,允许VNC客户端连接VNC server。VNC server监听的端口从5900开始,display

:1的监听5901,display

:2监听5902,以此类推。CentOs的防火墙缺省是不允许连接这些端口的,所以需要使用下面的步骤打开防火墙(需要root权限):

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身份重新启动防火墙:

/sbin/service iptables restart

好了,现在就可以运行客户端软件,连接到VNC server上了。

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机时的桌面还保持着原样。

不过…这个桌面怎么这么丑?!

原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOME或KDE。

方法是,进入你自己的home目录,然后编辑这个文件:.vnc/xstartup,下面是这个文件的内容:

#!/bin/sh

# Uncomment the following two lines fornormal 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 80×24+10+10-ls-title“$VNCDESKTOP Desktop“twm&gnome-session&

你可以把像上面这样把”twm &”这一行注释掉,然后在下面加入一行”gnome-session &”,或者是”startkde &”,分别启动GNOME桌面和KDE桌面。

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

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

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

如果使用命令行的话,以root身份运行以下两条命令:

cd/etc/rc5.d

mv K35vncserver S35vncserver

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

# .

VNCSERVERS=“1:user1 2:user2 3:user3“VNCSERVERARGS[1]=“-geometry 1024×768“VNCSERVERARGS[2]=“-geometry 1024×768“VNCSERVERARGS[3]=“-geometry 800×600“

解释一下这个文件:

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

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

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

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

/sbin/service vncserverstart

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

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

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

vnc远程linux命令,用VNC实现远程桌面共享(支持Windows, Linux, …) | 易水博客相关推荐

  1. linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET

    linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET [plain] view plaincopyprint? hadoop@chw-desktop3 ...

  2. TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.11

    TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.11 目录 文章目录 TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.1 ...

  3. 命令行终端怎么显示√2̅?这其实是一个博客的Unicode测试文章

    命令行终端怎么显示√2̅?这其实是一个博客的Unicode测试文章 文章目录 命令行终端怎么显示√2̅?这其实是一个博客的Unicode测试文章 安装 `uni` 命令 `uni` 命令的基本使用方法 ...

  4. Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构与底层研发

    Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构与底层研发 Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构 ...

  5. Linux命令行二:远程复制命令 scp

    在 linux 下 scp 命令主要用来在不同主机之间做数据(文件或者目录)的安全拷贝的.scp 命令可以将数据(文件或者目录)从本地计算机中拷贝到远程计算机中,或者从远程计算机中拷贝数据(文件或者目 ...

  6. linux 命令行 发行版,分享|Linux_Logo – 输出彩色 ANSI Linux 发行版徽标的命令行工具...

    linuxlogo(或叫 linux_logo)是一款在Linux命令行下用彩色 ANSI 代码生成附带有系统信息的发行版徽标的工具. Linux_Logo – 输出彩色 ANSI Linux 发行版 ...

  7. linux命令 三大利器,awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一...

    awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...

  8. linux命令cd回退_GitHub - gmpy/cdirs: cdirs 用于在linux中快速切换目录,对庞大的项目工程效果显著.其基于标签且无缝取代cd命令,学习成本非常低...

    cdirs cdirs 用于在目录间任意跳转,对庞大的项目工程效果显著. 支持标签目录,支持任意目录跳转到标签标记的目录 支持回退目录,快速返回到上级目录,摆脱多次"../../../..& ...

  9. Linux命令行字体变大变小,如何更改Linux控制台字体类型和大小,

    如何更改Linux控制台字体类型和大小, 如果你有图形桌面环境,那么就很容易更改文本的字体以及大小.但你如何在没有图形环境的 Ubuntu 无头服务器中做到?别担心!本指南介绍了如何更改 Linux ...

最新文章

  1. Activity采用栈式管理的理解
  2. Microsoft Azure部署MYSQL-MMM(3)配置MYSQL-MMM
  3. 机电传动控制第二周学习笔记
  4. 深入学习Redis高可用架构:哨兵原理及实践
  5. mysql优化之连接优化(open-files-limit与table_open_cache)
  6. [导入]Eval格式化日期
  7. 在Ubuntu上创建并测试GRE tunnel
  8. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  9. 一次性计划任务at与周期性计划任务crontab
  10. 简述sd卡2.0协议_【正点原子FPGA连载】第十二章SD卡读写TXT文本实验-领航者 ZYNQ 之嵌入式开发指南...
  11. 学习笔记之《Android应用案例开发大全》(全部调试过代码)
  12. 使用广告终结者屏蔽页面的任意部分
  13. Docker容器设置自动启动的方法
  14. uni-app+微信小程序+云开发 爬取必应首页每日图片
  15. arcos的matlab定义,想用matlab解一个带arccos的方程。可是结果好像没有解析解。求帮助解数值解...
  16. 如何找出C#的dataGridView中某字段重复的行并将重复行标红(基于汉得MES系统)
  17. 尚德机构季报图解:净利1.79亿 实现连续四个季度盈利
  18. asp.net 面试题目
  19. 笔记本升级--固态硬盘安装双系统win10-CentOS
  20. 微课竞赛系统的设计与实现所需工作条件_启升微课丨如何准备医疗器械软件开发计划...

热门文章

  1. fiddler编程猫死活hook不到的解决办法之一
  2. 如何快速掌握一门技术(代码,软件)
  3. 信息学奥赛一本通1176题——谁考了第k名
  4. kafka安装及使用
  5. NYOJ-20 吝啬的国度 AC
  6. Go语言安装和配置SDK
  7. shell判断大于、小于、等于
  8. win10隐藏正在运行的程序怎么操作_win10怎么隐藏正在运行的软件
  9. matlab——红绿灯颜色及数字识别(二)
  10. Android长截图(五) - 遇到的坑