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 ,无奈总是没有成功,希望用过的兄弟指点一下。

1 条评论:

Unknown 说...

两个月不写字,比我还懒~ :D