可恶的McAfee!

debian lenny的无线驱动还用不了,想无线上网,就要进入windows。昨晚一进入windows xp,就看到McAfee提示说已过期。不是一个月试用期吗?怎么这么快就过期了。看了一下McAfee的提示,上面列的过期时间是2007年!

2007年时买DELL台式机时,随机附送了McAfee的三个月试用版,试用完后就改用卡巴斯基了。想搬回小黑时,看到它也附送了McAfee,就随手装上了,不过用的仍然是以前注册的帐号。看来McAfee是由这个帐号判断我的McAfee过期的。

现在对windows的安全非常不放心,看着那条安全风险提示,总担心下一秒windows就被病毒攻破。既然McAfee提示过期,那就再安装卡巴吧。卡巴现在有一个活动,买了一套正版卡巴后,再加18元就可再得一套,我刚好符合条件。于是把McAfee卸载掉,下载了卡巴,准备安装。

安装提示有错误,有个McAfee Internet security Suite with SiteAdvisor 2008和卡巴冲突,必须卸载:

McAfee Internet security Suite with SiteAdvisor不兼容

郁闷,刚才的卸载不干净吗?!

打开regedit,查找McAfee主键,删除,重启。还是不行。再上网搜,终于搜到pconline上的一个帖子,说可以下载McAfee提供的卸载程序。我忘记我装的是什么版本了,就把所有的卸载程序就下载下来,按个执行一遍。经过N次重启windows后(真是讨厌windows的这一点,还是Linux好!),终于把卡巴斯基装上了。

McAfee真是可恶啊,折腾了我两个小时的时间。不过话说回来,似乎DELL、联想这些品牌机,随机附带的都是McAfee,我们公司用的也是McAfee,不知道是它的市场营销做的好,还是它的质量更可靠呢?!

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/mcafee-internet-security-suite-uninstall-method/

文章的脚注信息由WordPress的wp-posturl插件自动生成

在thinkpad t400上安装debian lenny

上周末从upnb搬了一部Thinkpad T400-aa1回来,价钱比较实惠。刚好debian 5.0 (lenny)发布,于是打算在小黑上安装lenny,这一系列文章主要是记录安装、配置lenny的过程。

安装前的准备花费了一点时间。因为t400 aa1是港版学生机,自带的操作系统是繁体中文windows vista,也可以转换成英文vista用,不过据说运行简体软件仍会出现乱码。于是就把它格掉,准备安装windows xp。之所以装xp,是因为对vista系统印象一直不好。家里DELL计算机上的vista,用了两年多了,还是用不习惯。

安装xp的过程就不细讲了,用的是upnb提供的windows xp恢复盘。

安装完xp后,整个硬盘只有两个分区,一个系统分区,另外一个是一键恢复占用的隐藏分区。虽然说lenovo的一键恢复没什么大用,不过懒得删掉它,放在那儿放着吧,反正250G的硬盘足够大了。

要安装debian,首先要为debian留出空闲分区。可以使用PQMAGIC来重新分区,不过这样分区后,一键恢复功能就不能用了。在网上搜了一下,联想网站上介绍了一种分区方法,这种方法不会影响一键恢复功能。

参照文章对ThinkPad预装系统重新分区,先磁盘整理(其实没什么好整理的,刚装的xp),然后拿出我DELL机配的vista安装盘,运行diskpart,收回了不到120G的硬盘空间。把这120G建成扩展分区,里面再拿出两个32G来格成fat32系统。之所以格成fat32系统,主要考虑到这两个分区要同时能在debian以及windows里访问,而32G是fat32文件系统能支持的最大分区大小。

现在还剩下大概50多G的空间,对安装debian来说足够了。

我安装debian,都是使用netinst映像。先由netinst光盘安装完基本系统,然后再由网络安装。这样的好处是不用下载几张光盘镜像,这些镜像在装过一次后基本没什么用了,因为debian在不断更新中;不过网络安装要求有便利的上网条件,以及高速的下载源。在当前的宽带环境下,这倒不是什么问题。

debian官方网站下载netinst光盘映像,我下的是大约180MB的映像。如果你更懒的话,可以下载不到40MB的映像。

把映像刻录到光盘后,光盘启动,按照提示一步步做就可以了。lenny在安装过程中有中文界面,如果选用中文界面的话,安装后系统的默认语言就是中文。我在这里选的是英文界面,中文打算安装完lenny后再配置。

安装过程不必多讲,大概只有硬盘分区时费一点脑子,要想好自己怎么分区。我通常是分三个区,一个/分区,一个/home分区,一个swap分区。debian也可以帮你自动分区,不过我看了一下,自动分区后,留给/分区的空间不够,最好还是手动分区。

在配置apt源的时候,要等上很长一段时间,当时以为出了什么问题,不过后来还是走过去了。apt源设置成网速最快的,以前我都使用debian.cn99.com,不过最近用它更新好像不正常,改用台湾的源http://ftp.tw.debian.org/debian,下载的速度还不错。配置完apt源,会让你选择安装哪些包,我在这儿把所有选项都清掉了,先把基本系统装好再装这些包也不迟。

跳过package安装后,很快基本系统就装好了。重启计算机,进入debian,本本的硬件差不多都能识别出来。切换到root用户,运行aptitude,把自己想装的任务(task)选中,GO,开始下载安装~~ 下载安装的过程差不多花了两个小时,主要取决于你所选的包的数目,我选了xfce、KDE、笔记本相关组件、中文组件等。

安装完成了,接下来要进行系统配置,下篇文章继续。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/debian-lenny-installation-on-thinkpad-t400/

文章的脚注信息由WordPress的wp-posturl插件自动生成

使用Redirection插件要加小心

刚刚登录google网站管理员工具时,发现在Sitemap中有一个警告,警告如下:

Table 1. Sitemap 错误和警告

状态 详细信息

网址无法追踪

HTTP 错误:

301 (永久转移)
当我们从您的 Sitemap 中测试网址实例时,我们发现有些网址重定向至其它位置。我们建议让您的 Sitemap 包含指向最终目的地(重定向目标)的网址,而不是包含重定向的其它网址。

URL:

http://easwy.com/blog/archives/xlink-href-can-not-generate-html-hyperlink/

检测到问题的日期:

2009-2-25


尝试用firefox打开google给出的链接,出现了404 not found错误。再仔细看一下地址栏的URL链接,发现链接由

http://easwy.com/blog/archives/xlink-href-can-not-generate-html-hyperlink/

变成

http://easwy.com/blog/archives/xlink-href-can-not-generate/-hyperlink/

注意显示为粗体的部分。也就是说,在URL网址中的”-html“被置换成”/“,难怪Google提示无法打开网址。

既然google提示网址被301永久重定向了,会不会和我用的Dean’s Permalinks Migration插件Redirection插件有关呢?只有这两个插件会301永久定向我的博客链接。

登录wordpress后台,对这两个插件进行了检查,应该不是Dean’s Permalinks Migration插件,它的设置很简单,只是把我旧的永久链接结构,重定向新的永久链接结构(见更改永久链接结构所需的插件一文),不会导致这个问题。那就只剩下Redirection插件了。仔细查看之下,果然发现了问题。

我创建了一条正则表达式(regex)重定向规则,把”/blog/archives/([a-zA-Z0-9-]*).html“全部重定向为”/blog/archives/$1/“。但是正则表达式的写法有问题,在正则表达式中,”.“代表任意字符,上述表达式中的”.html“会匹配到”-html“,所以就导致301重定向了。而重定向后的网址是不存在的,所以才会出现404 not found错误。

问题的原因找到了,解决办法也就简单了,把regex表达的规则改为”/blog/archives/([a-zA-Z0-9-]*)\.html“,对”.“进行一下转义,OK,问题解决了!

现在觉得,Redirection插件功能确实强大,但正因为它太强大了,一旦设置不好,就会导致很奇怪的问题。看来用的时候要加小心。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/an-config-error-about-redirection-plugin/

文章的脚注信息由WordPress的wp-posturl插件自动生成

认领了鲜果、豆瓣博客

我一般都是使用google reader订阅feed,没用过鲜果、豆瓣、抓虾。今天特意去逛了一下,发现已经有网友在上面订阅了我的博客 :-)

鲜果和豆瓣都支持认领自己的博客,我也顺便认领一下。抓虾好像不能认领。

鲜果还支持合并频道,不知道能不能把原来CSDN上的Easwy专栏也合并到easwy.com呢?

鲜果: BANG2BA04644489FCBB5CEB8EA43XIANGUO

豆瓣: doubanclaimc34a1efb02dd21f8

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/own-xianguo-douban-blog/

文章的脚注信息由WordPress的wp-posturl插件自动生成

更改永久链接结构所需的插件

由于最初没有设计好永久链接的结构,趁现在流量还比较小,就调整了我的自定义永久链接结构

调整了永久链接结构后,在wordpress里是即时生效的,只要刷新一下,就可以看到链接结构变化了。但是对已经存在的外链、或者google所抓取的网页来说,它仍然使用原来的永久网址来访问你的网页,这样就会导致HTTP 404 not found错误。

为了防止这种HTTP 404错误的发生,我们需要把原来的永久网址,映射成更改后的永久网址。所幸的是,在wordpress有很多插件可以完成这个工作。

我首先试用的是Advanced Permalinks插件,这个插件的功能很强大,它可能支持多种永久链接结构,可以针对一个帖子或指定ID范围的帖子来指定永久链接结构,或者单独某一分类的文章指定单独的永久链接结构。使用这个插件,你可以不改变老的文章的永久链接结构,让它们仍使用原来的永久网址,而且也不需要对旧的永久网址进行301重定向。这样,就不会出现链接失效的情况,你的Page Rank也不会有损失。

这个插件虽然强大,不过用在我的博客上,似乎有点大材小用。而且,我在使用这个插件时遇到一个问题。当激活这个插件后,访问我的分类页面会出现HTTP 404 not found错误,不过访问日志页面或tag页面又没有问题,不知道是我设置的问题,还是插件的bug。不过我没时间多试,于是就换用了另外一个插件。

在wordpress的官网上下载了Dean’s Permalinks Migration,在wordpress的后台直接上传插件、激活,然后需要简单的设置一下。

在”设置”中找到Permalinks Migration,然后在”Old Permalink Structure:” (旧永久链接结构)一栏中添入你的旧永久链接结构,然后”Update Options”。OK,现在所有访问你旧永久网址的请求,都被301重定向到新的永久网址了。因为采用的301永久重定向,你并不会损失Page Rank。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/useful-wordpress-permalinks-plugin/

文章的脚注信息由WordPress的wp-posturl插件自动生成

如何设置博客的永久链接最好

这两天正在调整easwy.com的永久链接(PermaLinks),可能有些链接会出现HTTP 404 not found错误,请大家谅解。

刚刚开始建设自己的独立博客,对于如何设置wordpress永久链接的格式缺少经验。中间走了不少弯路。如何设置永久链接(PermaLinks)的格式,是仁者见仁,智者见智的。这篇文章根据我在网上看到的一些资料以及自己的经验,来讨论一下如何设置博客的永久链接最好。

刚开始我设置永久链接的格式为: /%year%%monthnum%%day%/%post_id%.html。当初这样设置的想法是,第一,可以直接从帖子的URL,知道此文是何时发表的;第二,帖子的ID是唯一的,不会因为文章修改或删除产生变化,用它可以产生唯一并且最短的链接URL;第三,最终产生的链接中包含.html后缀,看起来更像静态网页。

但使用这种链接结构的问题也是显而易见的。在wordpress 2.7中,文章的发表日期是可以改变的,一旦更改了文章的发表日期,就会导致永久链接发生变化,产生死链;而使用post ID虽然简单,不过产生的链接却不够友好。对读者来说,看到一个名为123.html的链接不会知道这篇文章是讲什么的,而采用文章名就友好多了。从搜索引擎优化(SEO)的角度来看,在URL中嵌入文章的关键字,有利于提高文章的权重(page rank)。

幸好博客刚刚开通,流量还不大,外链也基本没有,于是就下定决心改一下PermaLinks的格式,打算在PermaLinks中去掉日期部分,并加入文章名。不过,对于中文博客来说,直接使用文章名会使URL中出现中文字符。虽然现在浏览器基本都可以支持链接中出现中文,不过如果你的URL带着一长串”%E4%B8…”的字符,看起来很不友好。所以,最好是在发表文章时,设置一下文章的别名(slug),在别名中只使用ASCII字符。这样,最终的永久链接(PermaLinks)里就不会出现中文了。

wordpress 2.7中支持编辑文章别名,如果你在后台编辑器中没有找到”文章别名”的编辑框,需要设置一下显示选项(screen options),在屏幕上显示”文章别名”,以后就可以像写摘要一样,自行输入文章的别名了。多说一句,wordpress缺省把”文章别名”放在后台页面的最下方,填起来很不方便,你可以用鼠标把它拉到上面来。我是把它放在摘要编辑框的上面了。

如果你不愿意为每一篇文章输入别名,也可以采用插件。月光博客上提供了一个post slug插件,这个插件可以自动把文章的中文名翻译成拼音,用它来做为你文章的别名。另外偶爱偶家也开发了一个名为wp slug translate的插件,它可以支持在直接标题里设置slug,或者使用google把中文标题翻译成英文,如果翻译失败,就把中文标题翻译成拼音,来做为别名。

我一般是自己手动输入别名,所以没使用上面说的插件。决定在链接中使用文章别名后,我就把永久链接(PermLinks)的结构改成:/archieves/%postname%.html,看到了吧,我还是很衷情于.html后缀的,因为我总觉得有这个后缀对读者最友好,不过这最终导致了我第三次修改永久链接结构。

上面的永久链接结构对我来说有点不爽的地方时,这样设置后,分类目录、标签、归档的链接就变成类似:http://easwy.com/blog/archives/tag/vim,这样的链接,看起来不像一个静态页面(因为它没有.html后缀),也不像一个目录(没有/后缀)。虽然对搜索引擎和浏览器来讲都没有什么问题,不过看上去不太舒服。而且,如果自己在建内链时,如果不小心加上个尾部后缀”/”的话,就会让搜索引擎认为这是两个页面,不利于SEO。

反正要改永久链接的结构,索性改成自己最满意的吧,于是今天又对结构进行了一次调整。把PermaLinks的格式改成:/archieves/%postname%/,现在终于满意了。

再说一下这种永久链接格式的缺点,应该说,这种结构可能存在的缺陷。我不知道wordpress会不会对重复的文章别名进行限制,如果没做限制的话,这种链接结构,在文章别名相同时,有可能出现重复的URL。

刚才做了个测试,如果文章的别名和以前的文章重复的话,wordpress会自动在另外后加上一个数字的,这样就避免出现重复的URL,看来这个担心可以去除了。

好了,我最终选定我的永久链接结构了,你确定你的链接结构了吗?其实选择链接的结构,完全取决了个人的喜好,没有哪一种是最优的。不过在刚建设博客时就要设计好自己的永久链接,要知道,更改永久链接的代价是相当大的。

在下一篇文章,介绍两个和永久链接结构相关的插件,在你不得不改变你的永久链接结构时,这些插件是非常有用的。

对于已经有一定流量的博客,或者外链已经比较多的博客,还是建议不要随便更改永久链接的结构!

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/select-permalinks-structure/

文章的脚注信息由WordPress的wp-posturl插件自动生成

终于搬完“家”了!

费尽周折,终于将blog由CSDN搬来easwy.com了,搬家的过程,真是一种折磨。大多数托管博客提供商不会让你轻松完成搬家的,大概这是他们自我保护的一种方式吧!

今后使用独立博客了,相信搬家不会再是难事吧。

搬的过程,也是整理的过程。有一些文章,比如vim使用进阶系列文章(原来的“使用vim开发软件项目”系列),我的原稿是使用word写的,不过有一次word出错,导致原稿打不开了,这一次根据CSDN博客上的内容,使用docbook把该系列所有文章进行了一次整理,等整理完成后,我会把HTML版本和PDF版本也放上来,方便下载。

有一些文章,不打算搬过来了,就留在CSDN吧,当做历史记录好了。要访问旧的CSDN博客,点击这里:Easwy的专栏http://blog.csdn.net/easwy/

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/all-articles-move-to-easwy-com/

文章的脚注信息由WordPress的wp-posturl插件自动生成

使用cygwin X server实现Linux远程桌面 (for windows)

在windows上访问linux有多种方法:

对于习惯使用命令行的人来说,可以使用终端的方式进行访问,也就是通过telnet, ssh等方法远程登录到linux主机,对其进行访问。至于登录软件,既可以使用windows自带的命令行界面,也可以使用专门的终端软件,例如putty, secureCRT等。其中putty是免费软件,而secureCRT并不是。

对于习惯使用图形界面的人来说,更希望以图形界面的方式来访问linux主机。主要有以下几种方法:

今天我主要介绍第二种方法。

有很多软件在windows上实现了X server的功能,例如XmanagerHummingbird Exceedcygwin X server,以及Xming X Server for Windows。前两个都是商业软件,需要付费使用;cygwin和Xming是免费软件。本文主要介绍如何使用cygwin X实现Linux的远程桌面。关于Xming X server的使用请参见其主页。

先调动一下大家的积极性,看看最终的效果图:

[ 背景知识 ]

网络上有很多关于X的背景知识,如果你想对X了解的深入一些,去网上搜索一下吧。

这里是王垠写的”理解 Xwindow“,介绍了X server, X client, 窗口管理器,桌面环境相关的知识,读一下对理解本文也有帮助。

好了,现在我们开始配置。

[ 安装cygwin ]

Cygwin项目的目的是在windows主机上提供一个类UNIX的环境,网络也有很多相关的资料。大家可以看一下这一篇:Cygwin使用指南,这篇文章在网络上流行比较广,作者未知,上面提供的仅是其中一个链接。

如果你的计算机上还没有cygwin,首先需要安装它。

这个过程很简单,先到cygwin的主页去下载setup.exe,然后使用setup.exe进行安装。在安装的过程中需要选择要安装的组件,此时需要把X server组件选上。

这里有一个安装指南,虽然是英文的,不过看抓图就可以了。

选择X server组件时,其实只需要选择xorg-x11-base,选中它之后,其它相关组件会自动被选中。

在安装cygwin时,记得把expect这个软件装上,它位于interpreters类别下面。我会在后面的章节中说明为什么要安装这个组件。

[ 运行cygwin X server]

在运行X server前,先假定一下我们的组网。

我们假设X server运行在一台windows XP计算机上,此机器的IP地址是192.168.190.91。

我们的Linux主机上将运行X client程序,它的IP地址是192.168.190.15。

在你的安装目录中找到c:\cygwin\usr\X11R6\bin\startxwin.bat (假设你把cygwin安装在c:\cygwin目录),双击它就会启动X server,同时会启动一个终端(这个终端运行在Windows本地),效果如下图:

现在,我们要允许远程的X client对X server进行访问,因此,在终端中输入下面的命令,

xhost + 192.168.190.15 

接下来,我们要到X client所在的计算机上进行配置,使用telnet或ssh登录Linux主机(192.168.190.15),然后运行下面的命令,

export DISPLAY=192.168.190.91:0.0 
xterm &
gvim &

上面第一条命令设置DISPLAY变量,它表示X客户端将使用192.168.190.91上的0.0来显示自己。192.168.190.91是运行cygwin X server的Windows计算机(它的防火墙要打开X server所监听的端口,通常为6000)。

后面两条命令则在Linux主机上(192.168.190.15)启动了两个程序,一个是xterm,另外一个是gvim,我们发现这两个程序启动后,并没有显示在Linux主机上,相反,它们显示在了windows主机上。下图是执行完上述命令的效果图,我使用putty远程登录到Linux主机上,然后执行上述命令:

用这种方法,你可以在Linux主机上运行任何图形程序,并把它显示到windows上。

如果你想把诸如KDE、GNOME这样的桌面环境也显示到windows上,就需要做些调整。

[ 运行桌面环境 ]

在此我以KDE桌面为例。要把KDE桌面环境显示到windows上的X server中,需要更改一下X server的启动批处理。

首先备份一下c:\cygwin\usr\X11R6\bin\startxwin.bat,然后使用文本编辑器打开此文件,找到下面这行:

%RUN% XWin -multiwindow -clipboard -silent-dup-error 

去掉”-multiwindow“参数:

%RUN% XWin -clipboard -silent-dup-error 

我们通常不需要启动一个xterm窗口,因此找到下面这行:

%RUN% xterm -e /usr/bin/bash –l 

把它注释掉:

REM %RUN% xterm -e /usr/bin/bash –l 

好了,批处理文件改完了。

回想一下上面的操作,在启动了X server后,我们执行了xhost命令来设置允许哪些计算机连接到X server,现在我们可以在配置文件中设置它。打开一个cygwin窗口,输入下面的命令:

echo "192.168.190.15" >> /etc/X0.hosts 

上面的命令会在/etc/X0.hosts文件中加入你想允许的X client,你可以在此文件中加入你的X客户端。因为我们使用的DISPLAY是0,所以在文件/etc/X0.hosts中增加;如果使用DISPLAY 1,则需要修改文件/etc/X1.hosts文件。现在启动X server后,192.168.190.15就被自动允许接入了。

现在我们再次双击startxwin.bat批处理,执行后就会出现一个丑陋的空白窗口,这就是所谓的根窗口。之所以是空白的,是因为现在还没有运行任何窗口管理器。别急,我们使用telnet或ssh远程登录Linux主机,执行命令:

startkde & 

哈哈~~~本文开头所展示的KDE窗口出来了!!!现在你在KDE中运行任何程序,它们都运行在Linux主机上,却把结果显示在Windows主机上。

[ 创建快捷方式 ]

在上面的操作中,启动X server后,需要使用telnet或ssh登录到Linux主机,才能启动自己想要的X client程序,有没有更简单的方法?

现在我们就需要用到expect软件了。这是一个如此有用的软件,以至于我忍不住要在这里插一段广告。

Expect为用户提供一种机制,使用户能够自动执行一些交互式的任务。例如,通常我们在使用telnet的时候,都需要手动输入用户名、密码才能登录。而使用Expect,我们就可以实现全自动的telnet交互,不需用户干预。Expect由Don Libes开发,基于TCL内核,它的主页在http://expect.nist.gov/

广告时间结束,我们继续。我使用expect编写了如下的TCL/EXPECT脚本,它可以使用ssh自动登录到指定Linux主机,然后启动我们需要的程序。程序如下:

#! /bin/expect -f

# Change these variable to yours
set user {easwy}
set host {192.168.190.15}
set xserver {192.168.190.91}
set password {123456}
set program {startkde}

set timeout 5
set done 0

spawn ssh "$user@$host"

while {!$done} {
    expect {
        "*(yes/no)?*" {
            # If the 1st time run ssh, it will prompt continue or not
            # answer yes
            exp_send "yes\n"
        }
        "assword*" {
            # Answer password
            exp_send "$password\n"
        }
        "\$*" {
            # Exit the loop
            incr done
        }
        "#*" {
            # Exit the loop
            incr done
        }
        timeout {
            # Timeout
            exp_send_user "Login timeout, please check!"
        }
    }
}

# Set DISPLAY environment variable
exp_send "export DISPLAY=$xserver:0\n"

# Start your program
exp_send "nohup $program &\n"
expect -regexp {\[[0-9]*\] [0-9]*}
exp_send "\n"

# Finished 

把上面的内容保存为一个文件,例如,保存为cygwin的~/login.exp。注意:把脚本起始处的5个变量替换成你自己的,只需要替换大括号中间的内容。使用telnet的朋友请自行修改此脚本。

下面我们再改一下c:\cygwin\usr\X11R6\bin\startxwin.bat文件,在此文件的最后增加:

REM Start your X client program
%CYGWIN_ROOT%\bin\run -p /bin expect -f ~/login.exp 

我们使用expect来执行刚才保存的~/login.exp。

现在,我们右击startxwin.bat文件,选择“发送到桌面快捷方式”。以后,只要你双击此快捷方式,就能立刻在Windows上使用Linux主机上的程序了。

我们再来看一个有趣的例子。

在上图中共开了三个终端,它们分别运行在不同的主机上,却都在Windows主机上进行输入输出。这就是X window的魅力了,如果你愿意,你还可以把其它Windows及Linux主机上的程序显示到这个X server中,正所谓一”桥”飞架南北,天堑变通途。

在本文完成后,经网友jiachunyu介绍,才知道有一个名为XWinLogon的软件,它也是使用cygwin的X server实现Linux的远程桌面。相比之下,它的安装和使用都简单了很多。这个软件的主页在:http://sourceforge.net/projects/xwinlogon/

或者

http://www.calcmaster.net/visual-c++/xwinlogon/

有兴趣可以试一下。

需要说明的是,XWinLogon中包含了部分cygwin的软件包,如果你安装了cygwin,则不能安装此软件(我没有试过,在作者主页这样说明)。

[参考文档]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/linux-remote-desktop-via-cygwin-x-server/

文章的脚注信息由WordPress的wp-posturl插件自动生成

用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 <display>


例如,

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 for normal desktop:
#unset SESSION_MANAGER
#exec 
/etc/X11/xinit/xinitrc

/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 
&
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
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>.

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 vncserver start


这样user1, user2, user3的vncserver就启动了。
以后每次系统重启时,都会自动启动这三个用户的vncserver。

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

另外,还可以使用cygwin中的X server来实现远程桌面共享,参见我的文章:
使用cygwin X server实现Linux远程桌面 (for windows)  

 参考资料:
[1] Taking your desktop virtual with VNC
[2] Virtual Network Computing

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/linux-remote-desktop-by-vnc/

文章的脚注信息由WordPress的wp-posturl插件自动生成

使用rxvt做为cygwin终端

昨天配置cygwin下的X server,在网上搜集资料时看到有人使用rxvt做为cygwin的终端,于是也试了一下。最终配置如下:

首先编辑文件~/.Xdefaults,内容如下:

! ~/.Xdefaults - X default resource settings
Rxvt*geometry: 120x40
Rxvt*background: #000020
Rxvt*foreground: #ffffbf
!Rxvt*borderColor: Blue
!Rxvt*scrollColor: Blue
!Rxvt*troughColor: Gray
Rxvt*scrollBar: True
Rxvt*scrollBar_right: True
Rxvt*font: Fixedsys
Rxvt*mfont: Terminal
Rxvt*SaveLines: 2000
Rxvt*loginShell: True
! VIM-like colors
Rxvt*color0: #000000
Rxvt*color1: #FFFFFF
Rxvt*color2: #00A800
Rxvt*color3: #FFFF00
Rxvt*color4: #0000A8
Rxvt*color5: #A800A8
Rxvt*color6: #00A8A8
Rxvt*color7: #D8D8D8
Rxvt*color8: #000000
Rxvt*color9: #FFFFFF
Rxvt*color10: #00A800
Rxvt*color11: #FFFF00
Rxvt*color12: #0000A8
Rxvt*color13: #A800A8
Rxvt*color14: #00A8A8
Rxvt*color15: #D8D8D8
! eof 

然后修改你的c:\cygwin\cygwin.bat文件,使用rxvt来替代cmd.exe:

@echo off
C:
chdir C:\cygwin\bin
set EDITOR=vi
set VISUAL=vi
set CYGWIN=codepage:oem tty binmode title
rxvt -e bash --login -i 

我在Xdefault中已经设置了中文字体,不过要想正常的显示和输入中文,还需要更改几个文件。在文件~/.bashrc中增加如下内容:

# Chinese locale
export LANG=zh_CN.GBK
export OUTPUT_CHARSET="GBK"

# Display Chinese
alias ls='ls --show-control-chars --color'
alias dir='ls --show-control-chars'
alias less='less --raw-control-chars' 

如果~/.bash_profile还未存在,那么创建它,并添加如下内容:

# Exec .bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

另外再创建一个~/.inputrc文件,内容如下:

# Chinese input/output in bash
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set completion-ignore-case on

好了,现在可以使用rxvt做为cygwin的终端了。

[ 参考文档 ]

Cygwin + Rxvt

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/use-rxvt-in-cygwin/

文章的脚注信息由WordPress的wp-posturl插件自动生成