<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Totti的部落格]]></title> 
<link>https://iam.ittot.com/index.php</link> 
<description><![CDATA[记录我的生活，收集我的收集]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Totti的部落格]]></copyright>
<item>
<link>https://iam.ittot.com/read.php/.htm</link>
<title><![CDATA[在 Windows下远程桌面连接Linux - VNC篇]]></title> 
<author>Totti &lt;totti5116@163.com&gt;</author>
<category><![CDATA[收集]]></category>
<pubDate>Tue, 14 Jun 2011 15:25:31 +0000</pubDate> 
<guid>https://iam.ittot.com/read.php/.htm</guid> 
<description>
<![CDATA[ 
	摘自：<a href="http://hi.baidu.com/eckelchung/blog/item/e52077c698431bd0d000601f.html" target="_blank">http://hi.baidu.com/eckelchung/blog/item/e52077c698431bd0d000601f.html</a><br/><br/>VNC是由AT&T试验室开发，是一款优秀的远程控制工具软件，后来以GPL授权的形式开源。经过几年的发展，现在的VNC已经不单指某个软件，而是一类软件的通称。下面介绍Linux下常用的两个VNC软件。<br/><br/>VNC的原理就是不停的对窗口界面截屏，再将图像传输给客户端，同时VNC服务器端接管服务器端的键盘、鼠标控制权，客户端可以通过服务器端操纵键盘鼠标。比较类似Windows下的pcAnywhere。<br/><br/>一、Windows 端设置<br/><br/>先讲Windows端是因为，下述的两个VNC可以用同一个客户端连接。<br/><br/>在Windows平台上，客户端我选择了RealVNC。RealVNC包括了一整套的服务器端与客户端，如果只安装客户端是不需要注册码的，其客户端程序名为vncviewer.exe，这是个绿色软件，你可以从安装目录下拷贝到其他电脑中运行。<br/><br/>在 Windows下远程桌面连接Linux - VNC篇<br/><br/>二、VINO<br/><br/>VINO是Gnome中集成的一个VNC软件，安装Gnome环境时默认安装，点击“系统”-“首选项”-“远程桌面”就打开了其配置窗口。<br/><br/>在 Windows下远程桌面连接Linux - VNC篇<br/><br/>选中“允许其他人查看您的桌面”后VINO就会启动服务器端进程vino-server，同时它监听TCP 5900端口。如果不选中“允许其他用户控制您的桌面”，客户端则只能观看不能操纵。<br/><br/>VINO的模式与下面介绍的XVNC有很大不同，我觉得VINO其实是“Windows下的远程协助”，因为客户端显示的桌面与Linux端本地显示器中显示的桌面一样，如果你操纵客户端中的鼠标，Linux的显示器也能看到鼠标在跑。如果你在Windows下安装过VNC服务器端，效果就是这个样。<br/><br/>另外，VINO的带宽占用真是变态，就算是一进桌面什么都不打开无操作的情况下，带宽也要占到4-5Mbps(桌面1280×1024，色彩 24)，如果有操作会占到8-12Mbps。<br/><br/>所以，VINO不适合做为服务器的日常远程管理，比较适合做为Linux下的远程协助和远程教学，也就是说你遇到一个问题，求助高手，而高手可以手把手的教你，你可以直接观看屏幕学习，或者做故障重现，你在本地做故障或Bug重现，而工程师可以远程观看。<br/><br/>三、XVNC<br/><br/>XVNC就是大家所熟悉的vnc或vncserver，是由RealVNC公司开发的开源版的VNC软件。<br/><br/>1、安装XVNC。<br/><br/>安装Linux时，可以从安装包中选中。若没有安装，可以从安装盘中找到。<br/><br/>服务器的组件名叫 vnc-server。请执行 rpm -q vnc-server 这个指令。<br/><br/>它的输出应该是 package vnc-server is not installed 或类似 vnc-server-4.0-11.el4。<br/><br/>假如服务器未被安装，请用这个指令来安装它：yum install vnc-server。<br/><br/>2、启动vncserver。<br/><br/>在终端中输入：<br/><br/>vncserver :1 -geometry 1280x1024 –depth 24&nbsp;&nbsp;注：:1指1号窗口，-geometry指窗口分辨率，-depth指色彩数<br/><br/>也可以简单的指定：<br/><br/>vncserver :1&nbsp;&nbsp;注：使用RealVNC的客户端，窗口分辨率与色彩数可以在客户端指定<br/><br/>当你第一次启动vncserver时，会要求指定密码，该密码是VNC客户端连接时要输入。<br/><br/>窗口可以从0开始指定，如果Linux本地端已经启用图形环境，则必须从1开始指定，因为窗口0被X11占用。<br/><br/>3、配置xstartup<br/><br/>XVNC默认采用twm做为图形环境，如果你安装了KDE或Gnome也可以启动。<br/><br/>vi ~/.vnc/xstartup<br/><br/>显示如下内容：<br/><br/>#!/bin/sh<br/><br/># Uncomment the following two lines for normal desktop:<br/><br/># unset SESSION_MANAGER<br/><br/># exec /etc/X11/xinit/xinitrc<br/><br/>[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup<br/><br/>[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources<br/><br/>xsetroot -solid grey<br/><br/>vncconfig -iconic &<br/><br/>xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &<br/><br/>twm &<br/><br/>最后一行twm &表 示启动twm，修改成gnome-session &启动Gnome，修改成startkde &启动KDE。<br/><br/>如果Linux本地端已经启用Gnome或KDE图形环境，当VNC客户端连接服务器后，可能会只显示灰屏，没有正常启用图形环境。查看~/.vnc下的日志时会提示错误：You are already running a session manager。<br/><br/>这时需要去掉xstartup文件中的<br/><br/># unset SESSION_MANAGER<br/><br/># exec /etc/X11/xinit/xinitrc<br/><br/>这两行前的#，再重启vncserver。如果Linux本地端是init 3模式，则不需要修改这两行。<br/><br/>当vnc客户端连接服务器时显示的界面是英文的，主要是中文环境还没有装入，而且没有中文输入法。在# exec /etc/X11/xinit/xinitrc行后添加下面内容：<br/><br/>export LANG=zh_CN.UTF-8&nbsp;&nbsp;注：启用中文环境<br/><br/>scim –d&nbsp;&nbsp;注：加载scim输入法<br/><br/>4、关闭vncserver<br/><br/>vncserver –kill :1&nbsp;&nbsp;注：关闭窗口1，以此类推关闭窗口2就为:2<br/><br/>当所有窗口都关闭vncserver服务就关闭了。<br/><br/>5、客户端使用<br/><br/>XVNC不仅支持vncview等客户端程序，还支持浏览器控制。<br/><br/>浏览器直接输入地址<a href="http://IP:5800" target="_blank">http://IP:5800</a>，就会启动Java客户端连接。<br/><br/>窗口0占用TCP 5900端口(VNC客户端)，TCP 5800端口(浏览器)。<br/><br/>窗口1占用TCP 5901端口(VNC客户端)，TCP 5801端口(浏览器)。<br/><br/>窗口2、3以此类推。<br/><br/>6、开机自启动vncserver<br/><br/>上面的操作都是要先登录Linux端，然后手动启动vncserver服务后，才能使用VNC连接。如果你想开机自启动vncserver服务，必须这样做。<br/><br/>先按上面的步骤启动一次vncserver，确保密码和xstartup文件都建立了。<br/><br/>然后，vi /etc/sysconfig/vncservers，添加如下内容：<br/><br/>VNCSERVERS="1:root 2:zhang 3:li"&nbsp;&nbsp;注：1、2、3代表窗口，比如root用户用窗口1，zhang用户用窗口2，这里的用户是指Linux中的正规的用户帐户<br/><br/>VNCSERVERARGS[1]="-geometry 640x480 –depth 24"&nbsp;&nbsp;注：为root用户指定分辨率和色彩数，这里的[1]指上面的“1:root”<br/><br/>VNCSERVERARGS[2]="-geometry 640x480 –depth 16"&nbsp;&nbsp;注：为zhang用户指定分辨率和色彩数<br/><br/>VNCSERVERARGS[3]="-geometry 800x600"<br/><br/>注：上面的这三行可以不添加，由vnc客户端自行控制分辨率和色彩。上面的root、zhang、li用户必须确保密码和xstartup文件都建立了，你可以分别登录先执行一次vncserver :1。<br/><br/>最后，执行/sbin/chkconfig vncserver on指令。<br/><br/>7、安全<br/><br/>XVNC的数据传输都是明文的，因涉及服务器的管理，使用明文是不可接受的。<br/><br/>我们可以使用SSH加密VNC数据。<br/><br/>首先，开启Linux端的SSH服务。<br/><br/>第二，在Windows端下载一个SSH telnet工具。推荐的有PuTTy，SecureCRT。<br/><br/>第三，启用SSH隧道。下面以SecureCRT为例，PuTTy操作类似。<br/><br/>先建立一个连接到Linux端的普通SSH会话。<br/><br/>在该会话选项中“端口转发”中，添加“本地端口转发属性”。<br/><br/>在 Windows下远程桌面连接Linux - VNC篇<br/><br/>见右图中，在“本地”中输入一个端口，这里选择了5901，也可以选择5801或其他端口，只要不与本地的服务相冲突，这个本地端口与Linux中 vncserver监听的窗口端口无关，在“远程”中输入5901，这个端口是Linux端的vncserver监听的端口，这里是启动窗口1，如果启动窗口2则这里要输入5902。确定。<br/><br/>设置完后，在SecureCRT中启动与Linux的SSH会话，正确登录Linux后。打开vncviewer。<br/><br/>在 Windows下远程桌面连接Linux - VNC篇<br/><br/>在VNC服务器中输入：localhost:5901(这里的端口就是上面指定的本地端口，而非Linux端的端口)，因为这里要连接的是本地的 SecureCRT启动的SSH隧道。在VNC运行过程中SecureCRT不能关闭。<br/><br/>这样，在Linux端的防火墙就可以只开放SSH端口，关闭掉有关VNC的所有端口。<br/><br/>8、结论<br/><br/>XVNC是一个非常好的日常用服务器管理工具，你可以根据你的网络带宽调整画质，如果你的带宽偏小，可以调小分辨率与色彩数，XVNC无操作时基本没有数据，如果是800×600分辨率，最差画质，它只会占几百Kb甚至十几Kb的带宽，这一点上非常适合做服务器管理。
]]>
</description>
</item><item>
<link>https://iam.ittot.com/read.php/.htm#blogcomment</link>
<title><![CDATA[[评论] 在 Windows下远程桌面连接Linux - VNC篇]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://iam.ittot.com/read.php/.htm#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>