如何在 VNC 服务器上配置 SSH 隧道 – Ubuntu 14

VNC 是“虚拟网络计算”的缩写。 这是一种共享图形桌面环境的简单方法。 为了 example,如果您在托管服务器上安装 VNC,您可以远程连接到其图形桌面环境。

飞行前检查

  • 这些说明旨在将 TightVNC VNC 服务器配置为在单个 Ubuntu 14.04 LTS 节点上使用 SSH 隧道。
  • 我将在 Liquid Web Core Managed Ubuntu 14.04 LTS 服务器上工作,我将以非 root 用户身份登录,但使用 sudo 使用权。 有关给用户的信息 sudo 访问我们关于如何在 Ubuntu 14.04 上添加用户和授予 Root 权限的页面。
  • 如果您的服务器上还没有安装桌面环境,那么您可以按照我们关于如何在 Ubuntu 14.04 LTS 上安装 Xfce 桌面环境的教程进行操作。 如果您还没有 TightVNC VNC 服务器,那么您可以按照我们关于如何在 Ubuntu 14.04 LTS 上安装 VNC 服务器的教程进行操作。

步骤#1:创建一个新的 xstartup 配置文件

我们必须配置一个新的 xstartup 文件,所以让我们备份原始文件:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

有关使用 vim 编辑文件的复习,请参阅:新用户教程:Vim 文本编辑器概述

vim ~/.vnc/xstartup

将以下内容插入到新文件中:

#!/bin/bash

xrdb $HOME/.Xresources
启动xfce4 &

Save 并退出,然后更正新文件的权限:

sudo chmod +x ~/.vnc/xstartup

步骤 #2:创建 VNC 服务文件

我们将使用 vim 为 vnc服务器 服务。

sudo vim /etc/init.d/vncserver

有四个部分将添加到服务文件中。 第一个设置服务将运行的环境。 在这里你可以操纵 用户,在这种情况下是 exampleuser,并且 显示分辨率,在本例中为 1024×768:

#!/bin/bash

PATH=”$PATH:/usr/bin/”
导出用户=“示例用户”
显示=“1”
深度=“16”
几何=”1024×768”
选项=”-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost”
. /lib/lsb/init 函数

使用 -localhost 功能将 VNC 服务器连接限制为只能通过 SSH 隧道连接。

一定要更换 示例用户 使用您在本教程之前设置的非 root 用户。

第二部分绑定 开始 命令到两个功能:启动一个 VNC 服务器和一条表明它正在启动的消息:

案例“$1”在
开始)
log_action_begin_msg “在 localhost:${DISPLAY} 上为用户 ‘${USER}’ 启动 vncserver”
su ${USER} -c “/usr/bin/vncserver ${OPTIONS}”
;;

第三部分绑定 停止 命令到两个功能:停止 VNC 服务器和一条表明它正在停止的消息:

停止)
log_action_begin_msg “在 localhost:${DISPLAY} 上为用户 ‘${USER}’ 停止 vncserver”
su ${USER} -c “/usr/bin/vncserver -kill :${DISPLAY}”
;;

第四部分绑定 重新开始 运行停止和启动命令的命令:

重新开始)
$0 停止
$0 开始
;;
经社理事会
出口 0

然后更正新文件的权限:

sudo chmod +x /etc/init.d/vncserver

步骤 #3:使用 VNC 服务文件

启动 VNC 服务器:

sudo service vncserver start

停止 VNC 服务器:

sudo service vncserver stop

重启 VNC 服务器:

sudo service vncserver restart

第 4 步:通过 SSH 隧道连接到 VNC 服务器

netstat -plant

显示:

Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称
tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 27760/Xtightvnc

根据上一篇文章(如何在 Ubuntu 14.04 LTS 上安装 VNC 服务器),这意味着 VNC 正在侦听端口 5901。但是,VNC 不是侦听所有 IP (0.0.0.0:5901),而是仅侦听 127.0.0.1,或本地主机。

通过 Linux 连接

首先,建立SSH隧道:

ssh -L 5901:127.0.0.1:5901 -N -f -l exampleuser ip_address

然后连接到 本地主机:5901 通过 VNC 查看器,例如 TightVNC。

通过 PuTTy 连接

在 Connection -> SSH -> Tunnels 下添加:

源端口:5901
目的地:本地主机:5901

并通过 PuTTY 在其 IP 地址和端口 22 连接到您的服务器。

然后连接到 本地主机:5901 通过 VNC 查看器,例如 TightVNC。