如何为Ubuntu12设置VNC

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文已弃用,不再维护。

原因

Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命 (EOL) ,不再接收安全补丁或更新。

请参阅

本文可能仍可用作参考,但可能不遵循最佳实践或在此或其他 Ubuntu 版本上工作。 我们强烈建议您使用最近为您正在使用的 Ubuntu 版本编写的文章。

如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:


介绍

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如果您想以用户 vnc 的身份获取 root,则必须将其添加到 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 服务器只监听 localhost。

编辑 /etc/init.d/vncserver 并将 -localhost 添加到 OPTIONS

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"

重启 VNC 服务器:

/etc/init.d/vncserver restart

确保 VNC 服务器只监听 localhost IP:

netstat -alpn | grep :5901

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载腻子

对于 Windows:http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

启动 Putty 并在 Session 下输入你的 Droplet IP:

暂时不要连接。

向下滚动到 Connection -> SSH -> Tunnels 并添加新的转发端口,然后单击添加:

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

确保不要关闭此 SSH 会话,因为它会在您的 PC(本地主机)和您的 Droplet 之间创建一个隧道,并在两端映射端口 5901。

使用 TightVNC 连接到 localhost::5901

输入上述步骤 3 中的 VNC 密码:

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

你们都完成了!