用 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 有不少选择,推荐 tightVNC 或 UltraVNC 。
操作主要分三块: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 ,无奈总是没有成功,希望用过的兄弟指点一下。