介绍
VNC或“虚拟网络计算”是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。 VNC使管理文件,软件和设置在远程服务器上更容易为不习惯使用命令行的用户。
在本指南中,我们将在Ubuntu 14.04服务器上设置VNC并通过SSH隧道安全地连接到该服务器。 我们将使用的VNC服务器是TightVNC,一个快速和轻量的远程控制包。 这种选择将确保我们的VNC连接将平稳和稳定,即使在较慢的互联网连接。
先决条件
在开始使用本指南之前,需要先完成几个步骤。
您将需要安装并使用具有非root用户配置一个Ubuntu 14.04服务器sudo
权限。 如果你还没有这样做的是,你可以通过1-4步中运行的Ubuntu 14.04服务器初始设置向导来创建此帐户。
一旦拥有非root用户,您可以使用它来SSH到您的Ubuntu服务器,并继续安装您的VNC服务器。
第一步 - 安装桌面环境和VNC服务器
默认情况下,大多数Linux服务器安装不会带有图形桌面环境。 如果是这种情况,我们需要开始安装一个我们可以使用。 在这个例子中,我们将安装XFCE4,这是非常轻量级,而大多数用户仍然熟悉。
我们可以从使用Ubuntu软件仓库获得XFCE包,与包沿TightVNC的直接apt
:
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver
要完成VNC服务器的初始配置,使用vncserver
命令来设置一个安全的密码:
vncserver
(设置访问密码后,将询问您是否要输入仅查看密码。使用查看密码登录的用户将无法使用鼠标或键盘控制VNC实例。如果您想向使用VNC服务器的其他人显示某些内容,这是一个有用的选项。)
vncserver
通过创建默认的配置文件和连接信息为我们的服务器使用VNC完成的安装。 安装这些软件包后,即可配置VNC服务器和图形桌面。
第二步 - 配置VNC服务器
首先,我们需要告诉我们的VNC服务器启动时要执行什么命令。 这些命令位于称为配置文件xstartup
。 我们的VNC服务器有一个xstartup
已经预装文件,但我们需要使用一些不同的命令对我们的XFCE桌面。
VNC时首次设置,它在端口5901启动一个默认的服务器实例此端口被称为显示器端口,并通过VNC所提到的:1
。 VNC可以在其他显示器端口启动多个实例,如:2
, :3
,等等。当使用VNC服务器时,请记住:X
是指显示器端口5900+X
。
由于我们将改变我们的VNC服务器的配置,我们需要先停止在端口5901上运行的VNC服务器实例:
vncserver -kill :1
我们开始配置我们的新前xstartup
文件,让备份的情况下,原来我们需要它更高版本:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
现在,我们可以打开一个新xstartup
使用文件nano
:
nano ~/.vnc/xstartup
将这些命令插入到文件中,以便在启动或重新启动VNC服务器时自动执行这些命令:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
该文件中的第一个命令, xrdb $HOME/.Xresources
,讲述了VNC的GUI框架读取服务器用户.Xresources
文件。 .Xresources
是用户可以更改图形化桌面的某些设置,如终端的颜色,光标主题,和字体呈现。
第二个命令简单地告诉服务器启动XFCE,在那里你会找到所有的图形软件,你需要舒适地管理你的服务器。
为确保VNC服务器能够正确使用此新启动文件,我们需要向其授予可执行权限:
sudo chmod +x ~/.vnc/xstartup
第三步 - 创建VNC服务文件
为了轻松控制我们的新VNC服务器,我们应该将其设置为Ubuntu服务。 这将允许我们根据需要启动,停止和重新启动我们的VNC服务器。
首先,打开一个新的服务文件/etc/init.d
有nano
:
sudo nano /etc/init.d/vncserver
第一个数据块将在我们声明一些常见的设置,VNC将指向很多,如我们的用户名和显示分辨率。
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="user"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. /lib/lsb/init-functions
一定要替换user
用已经建立了非root用户,并改变1024x768
,如果你想使用其他的屏幕分辨率为您的虚拟显示。
接下来,我们可以开始插入将允许我们管理新服务的命令指令。 下面结合块启动VNC服务器所需的指令和反馈,它正在启动,在命令关键字start
。
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
接下来的块创建命令关键字stop
,这会立刻杀了现有的VNC服务器实例。
stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
最后一块是命令关键字restart
,这简直就是前两个命令( stop
和start
)合并成一个命令。
restart)
$0 stop
$0 start
;;
esac
exit 0
一旦所有这些块都在您的服务脚本中,您可以保存并关闭该文件。 将此服务脚本设置为可执行,以便您可以使用刚才设置的命令:
sudo chmod +x /etc/init.d/vncserver
现在尝试使用服务和命令启动新的VNC服务器实例:
sudo service vncserver start
第四步 - 连接到您的VNC桌面
要测试您的VNC服务器,您需要使用支持通过SSH隧道的VNC连接的客户端。 如果使用Windows,则可以使用TightVNC,RealVNC或UltraVNC。 Mac OS X用户可以使用内置的屏幕共享,或者可以使用像RealVNC这样的跨平台应用程序。
首先,我们需要创建本地计算机上的SSH连接,能够安全地转发到localhost
的VNC连接。 您可以通过以下命令通过Linux或OS X上的终端执行此操作:
(记得替换user
和server_ip_address
与用户名和IP您用来连接到通过SSH服务器。)
ssh -L 5901:127.0.0.1:5901 -N -f -l user server_ip_address
如果您使用的是图形化的SSH客户端,如PuTTY,使用server_ip_address
作为连接IP,并设置localhost:5901
作为程序的SSH隧道设置的新的转发端口。
接下来,你可以用你的VNC查看器在连接到VNC服务器localhost:5901
。 请务必不要忘记:5901
末,因为这是VNC的实例是可访问的唯一的港口。
连接后,您应该可以看到默认的XFCE桌面已准备好配置和使用! 它应该看起来像这样:
验证VNC连接正常后,将VNC服务添加到默认服务,以便在启动服务器时自动启动:
sudo update-rc.d vncserver defaults
结论
您现在应该有一个安全的VNC服务器启动并运行在您的Ubuntu 14.04服务器上。 现在,您可以使用易于使用的图形界面管理服务器的文件,软件和设置。