2007年4月17日星期二

用 Putty 的 SSH Tunneling 安全 VNC


VNC - Virtual Network Computing 是一个基于Remote Framebuffer 协议的桌面共享系统。用来远程桌面共享,要比上次介绍的 XServer 的方法性能高出不少。现在很多的 Linux distribution 都有自己的远程远程桌面方案,而且和 Windows 的 Rdesktop 互相兼容,很是好用。

VNC 很好用,不过本身并不安全,所以今天介绍一下用 SSH Tunnel 来安全的使用VNC。这次又要请出 Putty 了,这东西着实强大,怪不得这么流行。

稍微废话两句基本原理。远程的 *nix 服务器上开个 VNCServer,把远程的图形界面压成很小的数据流,通过 Putty 的 SSH Tunnel 安全的弄到本地,用 VNCViewer 看,效果就和 RDesktop一样。

要用到的软件:Putty、VNCViewer。(假装远程机已经装了VNCServer)
VNCViewer 有不少选择,推荐 tightVNCUltraVNC

操作主要分三块:1. Putty 的设置;2. 远程 VNCServer 的启动;3. 本地 VNCViewer 的链接。

1. Putty 的设置

1.1 服务器地址的基本设置就不废话了,不要忘记选上 ssh 就行。

1.2 SSH 协议的设置。要注意的是一定要选上 Enable compression,这样可以快不少。


1.3 设置 Tunnels。按照图填写 Source port 和 Destination,然后点 Add 按钮就上去了。设置完记得保存。


2. 远程 VNCServer 的启动

用刚才配置的 putty Session 登录服务器。
敲入如下命令:
vncserver :9 -geometry 1000x800

这个命令开了一个端口9的桌面,可以开多个端口不同的桌面。其中的冒号9是指定的端口号,和刚才的 putty 配置中的5909对应,当然也可以用别的端口,不过一般都用58xx或59xx。其他参数就不介绍了。

第一次开启服务时会要求输入一个密码,用来验证远程的客户端。

想关掉某个桌面就用下面的命令,同样要指定关哪个端口的桌面:
vncserver -kill :9

需要提一下的是 ~/.vnc/xstartup 这个脚本。默认的样子如下:
#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

如果需要桌面启动时直接启动 gnome 桌面的话,把最后一句话替换成:
exec gnome-session &
如果喜欢用kde,就用这句替换:
exec startkde &

3. 本地 VNCViewer 的链接

双击 tightVNC ,在地址栏中输入localhost:9,再点链接就应该可以连接上了。


然后会提示输入密码,输入第一次开启服务时自己设定的密码即可。


大功告成,截图一张。


这个 VNC 图像压缩做的不错,所以用起来很流畅,就是不支持音频,比较恶心。

另外,一直想用 xrdp ,无奈总是没有成功,希望用过的兄弟指点一下。

2007年4月8日星期日

Putty + Xming 方便的远程Linux GUI


Linux 以及各种Unix like的操作系统现在都用基于X Window System图形界面。这个东西虽然块头比较大,效率不太高,导致Linux的
3D游戏一直没什么动静,但是,它接口良好,扩展性和可移植性都很好,最重要的是具有网络透明性,所以我们就可以很方便的远程启动Linux的图形程序。今天介绍的就是在Windows下远程运行Linux图形界面的方法。

实现这个功能的是X Window的网络透明性。X Window系统里有一个统一的Server来负责各个程序与显示器、键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议与Server进行交互。所以对于任何一个应用程序,本地运行和远程运行的差别仅仅是X Server的地址不同,别的没有差别。所以在Windows运行一个X Server,就可以很方便的远程运行有GUI的Linux应用了。

最著名的Windows的X Server应该是Cygwin平台上的了,因为Cygwin太出名了,我觉得这个不太易用。还有不少收费的,我用过的有Xwin32和Xmanager,功能都比较强大。我的感觉是Xmanager要比Xwin32好用,鼠标的移动尤其明显。今天要介绍的是一个开源的X Server软件,Xming,非常简单易用,搭配强大、著名而又免费的putty,就可以很方便的实现这个功能。

下面就来看看最基本的设置方法:
1. 在Session页面的Host name和port里填好putty的服务器地址和端口。

2. 在Data页面的Auto-login username里填好登录用户名。

3. 在SSH页面的Preffered SSH protocal version里设置优先SSH版本是2。


4. 最重要的一部,在X11页面选择Enable X11 forwarding,X display location填上localhost:0,下面的协议选择MIT-Magic-Cookie-1。



5. 运行Xming的XLaunch程序,配置适用于上述putty设置的X Server运行参数。一切都使用默认选择,不用更改任何设置。如下图。


最后一步中的Save configuration可以把这个设置保存为一个文件,以后每次用这个设置只需运行该文件,而不用每次都重新配置。

至此,配置工作已经做完了,可以开始使用了。先运行刚才保存的Xming的配置文件,不会弹出什么窗口,只是系统托盘里出现了Xming的图标,这样X Server已经默默的开始工作了。然后打开putty刚配置的session,登录到服务器后,在命令提示符下输入emacs &试试,是不是发现很正宗的emacs已经开始运行了呢,是不是比Windows版的emacs看上去正很多?

要注意的是,用你的防火墙阻止你的Xming访问网络,因为这样的一个X Server是不安全的。事实上,这个X Server只是你自己用,并不需要上网就可以正常工作。

2007年4月6日星期五

Firefox Bookmarks Toolbar 小技巧


Firefox有一个 Bookmarks Toolbar,非常好用,可以把常上的网站像工具栏一样列成一排,当然也可以后读feed,新闻之类的功能。

现在大多数网站都有自己的logo,而且很多都会出现在收藏夹里,而且每次打开网页时,会出现在地址栏和tab上。由于这个小logo最初是用于收藏夹的,所以被称为Favicon。

有了这个Favicon,很多时候,我们直接可以根据这个来确定网站,而不必费力去看文字了。我们就可以大大提高Bookmarkds Toolbar的利用率,一个网站只需要一个icon的位置。而不必像默认那样,一共只装得下那么6,7个网站。需要做得就是收藏之后把属性中的Name删掉。

有两点要注意的地方。网站刚收藏好是不会显示Favicon的,需要用收藏的链接去打开网页一次,才会显示出来。有的网页没有Favicon,可以借用其他网页的Favicon。我在添加Picasa的时候就发现,个人的网页上没有Picasa的logo,只好先收藏Picasa的主页,然后再把链接改掉。

实际情况是有不少想收藏在Bookmark Toolbar的网站、blog都没有这个Favicon,所以在这里号召大家都加一个,再说这个东西也不麻烦,只是在页面头上加一句话。而且,如果Favicon做得好可以给人留下很深的印象。
Wikipedia建议的代码:


<link rel="shortcut icon" href="http://example%E0%A5%A4com/favicon.ico" type="image/vnd.microsoft.icon">
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon">

我的没有用ico文件:


<link href="'http://farm1.static.flickr.com/176/443828577_70ef3cb75b_o.png'" rel="'icon'" type="'image/png'/">


另外,有一个Firefox的插件是可以直接实现把Bookmark Toolbar中的文字自动隐藏的。叫做Smart Bookmarks Bar,除了自动隐藏文字,还可以控制icon之间的距离,以便塞下根多的网站。我觉得自动隐藏这个功能还不如把把Name删掉,因为每次鼠标移过去都会显示出Name,然后这些图标就来回乱窜,头很晕。

2007年4月1日星期日

中医是伪科学吗?

中医是不是伪科学?随便用哪个搜索引擎一搜,各方人士的评论不计其数。扫了一下,大多是拥护中医,只有1/5到1/4的是赞成废除中医的。今天是看了Wikipedia的“伪科学”词条,觉得对中医的定义十分精确,忍不住码两个字。

中医的理论体系是古时人们不了解人体和相关物化知识时,根据当时的哲学世界观建立起来的。它与科学是不兼容的。现代医学是建立在现代的物理,化学和生物等学科上的,中医同样是建立在当时的“物理”“化学”之上。只不过那时“物理”“化学”讨论的是阴阳五行之类的东西,中医就只好往那里套,然后五行的金木水火土就开始和内脏有一定的对应关系了,再加上阴阳,气血,脏腑,经络,试图阐释人体的生理和病理现象和各种联系。“医生”拿着这套东西边看病,边修正,过了上千年,这个理论体系确实逐渐趋于完善,很多时候可以自圆其说,但它再圆也只是飘在空中的气球。

这样的一套理论体系,它其实也不是伪科学,应该说是一套能一定程度反应某些客观规律的经验体系。
Wiki上说是“有着确实功效的治疗体系”。你想,都过了一千多年了,治了多少病人和健康人了,用老罗的话说就是瞎猫碰上死耗子也能治几种病了吧。至于有些中医拥护者说它是科学的,然后还有人耗费上千万纳税人的钱去研究这些东西。这样,说它是伪科学,要废了它,也是合理的。

相比之下,中药里的经验应该说更加宝贵一些。一部分中药的疗效是不可否认的,所以经过检验,去伪存真,判明副作用之后,应该是造福人类的。但是,这个简单明了的道理还有很多人搞不明白。要点名批评的是一个叫李连达的院士:

有的外国专家来跟我谈,你们中医中药是草根、树皮一锅汤,成分不清楚,作用机制也不清楚,怎么可以给人家用呢,不就是伪科学吗?我说你到中国来,烤鸭喜欢 吃吗?他说非常喜欢吃,每次到中国来一定要吃。我说烤鸭成分你都清楚,烤鸭的作用机制都清楚,烤鸭的作用靶点、受体或者是影响哪些基因表达,你都清楚吗? 他说不清楚。我说你不清楚,还敢吃烤鸭,还满嘴流油。中药就是这样,一时间还说不清道理,但能够治病,救人,能够使人健康,就先用着,至于作用问题、机制 问题,还需要再研究。

一个院士,竟然如此逻辑混乱,拿烤鸭跟药来比。再看看最后一句,拿人命当玩笑。还是跟一个老外说,真是给中国人丢脸啊。我只能安慰自己说老糊涂是自然的生理现象。

死脑筋中医拥护者中,有说中医无需用科学来检验的,有说现代的科学还没有发达到能解释中医的。这些人的问题,在我看来主要是中学知识不够扎实,或是说教学大纲有问题。一个用基本的常识能判断的问题,搞得大家晕头转向。

中医理论和中药都说到了,也差不多了。最后,祝大家身体健康吧!