如何为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 密码:
您现在已通过安全连接进行连接:
你们都完成了!