使用VNC访问Linux桌面
在一个严重依赖Windows的工作环境中,比如电子邮件被限定为Outlook(因为加密要求), VPN软件不支持Linux版本,那么,只使用Linux桌面是不够的,还需要在Linux桌面上跑个虚拟机运行Windows (比如Win 7)。于是,有一个BT的需求应运而生 -- 在Linux桌面上启动虚拟机跑Win 7,然后在Win 7里访问Linux桌面。也许你很好奇,不禁要发问: “为什么要在虚拟机Win7里访问物理机Linux桌面?” 答案很简单:情非得已!因为本人习惯在Linux的Terminal上使用vim干活,但是沟通工具却被迫使用QQ, 于是为了截图方便(拷贝文字会被QQ解释成莫名其妙的表情图),就不得不在Win 7里访问我的Linux桌面。本文将讲述如何使用VNC将这种近乎变态的需求“拉通”。(P.S. 天天喊拉通,TNND落后的生产关系不改变,只能天天硬拉Orz...)
1. 桌面环境
- Host: Ubuntu 14.04.5 LTS (物理机装的是Linux桌面)
- Guest: Windows 7 (虚拟机装的是Win7桌面)
2. 拉通步骤
201 - 在虚拟机Windows 7里安装RealVNC客户端 (点这里去下载)
202 - 在Ubuntu 14(i.e. Linux桌面)里安装VNC server
$ sudo apt-get install vnc4server
202.1 - 配置VNC server的访问密码 (e.g. 12345678)
$ vncpasswd
202.2 - 配置VNC server的启动脚本(~/.vnc/xstartup)
$ cat -n ~/.vnc/xstartup 1 #!/bin/sh 2 3 export XKL_XMODMAP_DISABLE=1 4 unset SESSION_MANAGER 5 unset DBUS_SESSION_BUS_ADDRESS 6 7 gnome-panel & 8 gnome-settings-daemon & 9 metacity & 10 nautilus & 11 gnome-terminal &
202.3 - 在Linux桌面上启动VNC server
o 启动脚本 ~/bin/wxVNC
$ cat -n ~/bin/wxVNC 1 #!/bin/bash 2 3 g=${1?"*** 1024x768 or 1280x800 or 1500x850"} 4 name=${2:-"$(hostname)-$g"} 5 vncserver -kill :1 6 vncserver -name $name -depth 16 -geometry $g :1
o 启动VNC server
$ wxVNC 1024x768 Can't find file /home/veli/.vnc/idorax:1.pid You'll have to kill the Xvnc4 process manually New 'idorax-1024x768' desktop is idorax:1 Starting applications specified in /home/veli/.vnc/xstartup Log file is /home/veli/.vnc/idorax:1.log $
203 - 在虚拟机Windows 7里使用RealVNC viewer连接Linux桌面
输入密码12345678, 连接后的效果如下:
OK, 大功告成!
后记: 变态的需求通常产生于落后的生产力关系。 生产力关系改进了,这种需求也就不复存在。 “艰难困苦,玉汝于成”,既然改变不了落后的生产力关系,那就只能自己想办法使自己开心一点:-)