如何为 Ubuntu 12 设置 VNC
状态:已弃用
本文已弃用,不再维护。
原因
Ubuntu 12.04 于 2017 年 4 月 28 日结束生命周期 (EOL),不再接收安全补丁或更新。
请参阅
本文作为参考可能仍然有用,但可能不遵循最佳实践或适用于此或其他 Ubuntu 版本。我们强烈建议使用为您正在使用的 Ubuntu 版本编写的最新文章。
- 如何在 Ubuntu 16.04 上安装和配置 VNC
- 如何在 Ubuntu 14.04 上安装和配置 VNC
如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
- 如何从 Ubuntu 12.04 升级到 Ubuntu 14.04。
- 如何从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 如何将服务器数据迁移到支持的版本
介绍
VNC 代表虚拟网络计算,它允许您远程连接到您的服务器,并能够使用您的键盘、鼠标和显示器与该服务器进行交互。
第 1 步 - 安装 VNC 服务器和 XFCE 4 桌面。
首先,我们将在 Ubuntu 12.10 x64 Server droplet 上安装一个 VNC 服务器。以 root 身份登录并安装软件包:
apt-get -y install ubuntu-desktop tightvncserver xfce4 xfce4-goodies
第 2 步 - 添加 VNC 用户并设置其密码。
adduser vncpasswd vnc
如果您想获得 root 作为用户 vnc,您必须将它添加到 sudoers 文件。确保您以 root 身份登录:echo vnc ALL=(ALL) ALL >> /etc/sudoers
设置用户 vnc 的 VNC 服务器密码:su - vncvncpasswdexit
这步骤为用户“vnc”设置 VNC 密码。稍后当您使用 VNC 客户端连接到 VNC 服务器时将使用它:

现在您可以以用户“vnc”身份登录并通过运行“sudo su -”并输入您的密码来获取 root:

第 3 步 - 安装 VNC 即服务
以 root 身份登录并编辑 /etc/init.d/vncserver 并添加以下行:
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="vnc"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
编辑 /home/vnc/.vnc/xstartup 并替换为:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
startxfce4 &
更新文件权限并允许任何用户启动 X Server:
chown -R vnc. /home/vnc/.vnc && chmod +x /home/vnc/.vnc/xstartup
sed -i 's/allowed_users.*/allowed_users=anybody/g' /etc/X11/Xwrapper.config
使 /etc/init.d/vncserver 可执行并启动 VNC 服务器:
chmod +x /etc/init.d/vncserver && service vncserver start
添加您的 VNC 服务器以在重启时自动启动:
update-rc.d vncserver defaults
第 4 步 - 使用 TightVNC 连接到您的 Droplet
TightVNC 是一个很棒的 VNC 客户端,它允许 SSH 隧道。它可以从 http://www.tightvnc.com/download.php 下载
确保使用 IP::port 作为你的远程主机,其中 IP 是你的 Droplet 的 IP,端口是 5901:

系统将要求您提供在步骤 2 中使用 vncpasswd 指定的 VNC 密码:

现在您已连接:

第 5 步 - 使用加密保护您的 VNC 服务器会话
基本的 VNC 服务器设置没有加密,这使得它容易受到窥探。
我们将使用 Putty 创建 SSH 隧道并通过该隧道连接到 VNC。
首先,我们需要确保 VNC 服务器只监听本地主机。
编辑 /etc/init.d/vncserver 并将 -localhost 添加到选项:
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"

重启 VNC 服务器:
/etc/init.d/vncserver restart
确保 VNC 服务器仅侦听本地主机 IP:
netstat -alpn | grep :5901

从 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 Putty
对于 Windows:http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
启动 Putty 并在 Session 下输入您的 Droplet IP:

暂时不要连接。
向下滚动到 Connection -> SSH -> Tunnels and Add New Forwarded Port 然后点击 Add:

现在您可以通过单击“打开”进行连接。您可以作为用户 vmc 登录:

确保你没有关闭这个 SSH 会话,因为它会在你的 PC(本地主机)和你的 Droplet 之间创建一个隧道,在两端映射端口 5901。
使用 TightVNC 连接到 localhost::5901

输入上面第 3 步中的 VNC 密码:

您现在已通过安全连接进行连接:

你都完成了!