linux下用VNC实现远程桌面共享
1. VNC简介
欧洲剑桥大学教授写的程序。
简单地说:VNC它是一个桌面共享系统。它的功能,类似于windows中的远程桌面功能;但和平台无关;几乎适用于全部的操作系统或者java平台。Vnx 在windows下的客户端有 realvnc(收费)推荐使用ultravnc/tightvnc(免费)
VNC软件由服务器端VNC Server和客户端VNC Viewer组成,可以单独安装其中一部分。远程计算机必须安装服务器端,才能通过本地计算机的客户端进行远程管理。
2.Linux下VNC的启动和设置
在Red Hat Enterprise Linux 下,系统自带了VNC软件,用如下命令查看是否已安装了VNC软件:
#rpm –qa|grep vnc 查看Linux系统中是否已安装了VNC
如果系统中没有安装VNC则可以去http://www.realvnc.com/下一个装上,或者从linux安装盘上安装,这里不再多说。
VNCServer 的启动和设置
(1) 启动VNC Server:
#vncserver 第一次启动时要求你生成口令文件
You will require a password to access your desktops.
Password: 设置远程管理密码
Verify: 确认密码
用vncpasswd命令生成口令文件,当然也可以用此命令更改密码。
(2)设置VNC Server
编辑$HOME/.vnc/xstartup文件($HOME指Linux用户目录,我这里是root超级用户目录)。
#vi root/.vnc/xsatartup
去掉以下两句的注释:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
因为VNC自带默认的TWM窗口管理器用起来很不爽,所以把twm &这句改为:gnome –session &,如果是用KDE桌面的,则改为 kde-session &。以便能远程使用GNOME和KDE桌面。重启vnc:
#sudo /sbin/service vncserver restart
在 ~/.vnc 目录下的日志文件里面显示如下,监听5801/5901
vncext: VNC extension running!
vncext: Listening for VNC connections on port 5901 (通过VNC-viewer连接)
vncext: Listening for HTTP connections on port 5801 (通过http来访问的)
vncext: created VNC server for screen 0
按以上的设置情况下,要服务器关闭防火墙才能使用VNC Viewer进行连接;或者在防火墙中打开5901端口 5901端口(vnc默认的端口是5800、59000 。要打开的5801、5901其中的“1”是桌面号。)
#vi /etc/sysconfig/vncservers
去掉VNCSERVERS=”1:root”前面的注释
如果允许多个不同的用户进行远程管理的可以如下方式添加多个:
VNCSERVERS=”1:root 2:ZhangSan 3:XXXX”
VNCSERVERARGS[1]="-geometry 1024x768" --配置启动的桌面。配置不同的启动界面方法和 和多用户的一样。
VNCSERVERARGS[2]="-geometry 1024x768"
VNCSERVERARGS[3]="-geometry 1024x768"
查看vnc启动情况
netstat –tulnp
关闭服务器上自己的vnc链接
vncserver -kill :桌面号
例如:关闭上面的vnc链接
vncserver -kill :1
添加系统服务
Chkconfig –level 35 vncserver on
以后开启和关闭vnc 可以用
Service vncserver start 开启(还可以使用vncserver启动)
Service vncserver stop 关闭
Service vncserver status 查看
远程桌面设置part2:利用putty进行VNC + ssh tunneling
直接使用VNC viewer来进行访问,有两点不利因素:
1. 口令传输是明文,很容易被侦听到.
2. 防火墙需要打开59xx端口,这在通常的单位里是不可能的.
幸运的是,我们有ssh这个强大的工具,象X11 Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍.
假设VNC server配置运行在服务器 myserver (ip地址为:192.168.x.x)的屏幕1,也就是侦听 192.168.x.x:5901, 用户名为root
情形一: VNC server配置客户端为Linux
这种情形很简单,一般的Linux发行版本里面都默认安装了ssh套件.
1. 用ssh登录到服务器
ssh -L 5901:localhost:5901 -l foo myserver或者直接用ip地址
ssh -L 5901:localhost:5901 -l foo 192.168.x.x
(注释:使用ssh 建立一条ssh加密的通道 ssh -L 源端口:localhost:目的端口 要访问的主机{和vpn 通道是不一样的})
(示例:ssh -L 5901:localhost:5901 root@192.168.55.250)
2. 在本机的另外开的终端上,运行VNC viewer (或其它的类似工具)
VNC viewer localhost:1
情形二: VNC客户端为windows
1. 下载一个ssh客户端,个人推荐putty,只有一个程序,不需要安装,简单而功能齐全. 到这里下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html (有中文版)
下载putty.exe到桌面上直接运行即可。
2. 运行putty,输入服务器的ip地址,输入一个名字,这里myserver作为session的名字,按save保存。
3. 单击对话框左边的tunnels来选择相关设置,在source port里输入5901,在Destination里输入localhost:5901,按Add添加
4. 单击左边session,回到session设置,按save重新保存。按open即可登录到服务器。
5. (windows下vnc的版本有ultravnc/tightvnc 比较有名流行)运行VNC-viewer (如果没有,到这里下载http://www.real VNC.com/download.html,只要一个exe的文件就行) ,在Server里输入localhost:1,见附图三, 输入口令后一个Linux的桌面就会出现在windows里,并且是非常安全的.
情形三: 在windows下通过浏览器访问
1.windows上要按照java支持,安装 jdk 2.在浏览器输入vnc服务器的地址:端口号,就可以访问了。(注:如果使用ssh连接工具开启的加密通道的话,vnc服务器的地址是locahost:5801)我的例子:192.168.55.12:5801
版权所有:《太阳花工作室》 => 《VNC实现远程桌面共享linux/windows》
本文地址:http://bg.artuion.com/linux/15.html
除非注明,文章均为 《太阳花工作室》 原创,欢迎转载!转载请注明本文地址,谢谢。