共计 3925 个字符,预计需要花费 10 分钟才能阅读完成。
导读 | 在本指南中,我们将是一个 Ubuntu 的 16.04 服务器上设置 VNC 和通过 SSH 隧道连接到其牢固。我们将使用 VNC 服务器是 TightVNC 的,一个快速,轻量级的遥控器包。这个选择将确保我们的 VNC 连接将是顺利和稳定的甚至在互联网连接速度较慢。 |
VNC 或“虚拟网络计算”是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对不熟悉命令行的用户更容易管理远程服务器上的文件,软件和设置。
在本指南中,我们将在 Ubuntu 16.04 服务器上设置 VNC,并通过 SSH 隧道安全地连接到它。我们将使用的 VNC 服务器是 TightVNC,一个快速和轻量的远程控制包。这个选择将确保我们的 VNC 连接将平稳和稳定,即使在较慢的互联网连接。
要完成本教程,您需要:
- 1. 一个 Ubuntu 16.04Droplet 通过设立的 Ubuntu 16.04 的初始服务器设置教程,其中包括具有 Sudo 非 root 用户
- 2. 安装了支持通过 SSH 隧道的 VNC 连接的 VNC 客户端的本地计算机。如果使用 Windows,则可以使用 TightVNC,RealVNC 或 UltraVNC。Mac OS X 用户可以使用内置的屏幕共享程序,或者可以使用像 RealVNC 这样的跨平台应用程序。Linux 用户可以多种选择:vinagre,krdc,的 RealVNC,TightVNC 的,等等。
默认情况下,Ubuntu 16.04 Droplet 没有安装图形桌面环境或 VNC 服务器,因此我们将开始安装它们。具体来说,我们将为最新的 Xfce 桌面环境和官方 Ubuntu 存储库中提供的 TightVNC 软件包安装软件包。
在您的服务器上,安装 Xfce 和 TightVNC 软件包。
sudo apt install xfce4 xfce4-goodies tightvncserver
要在安装完成后,VNC 服务器的初始配置,使用
命令来设置一个安全的密码。vncserver
vncserver
系统会提示您输入并验证密码,以及仅供查看的密码。使用仅查看密码登录的用户将无法使用鼠标或键盘控制 VNC 实例。如果您想向使用 VNC 服务器的其他人展示某些内容,但这不是必需的,这是一个有用的选项。
运行
完成通过创建默认的配置文件和连接信息为我们的服务器使用安装 VNC 的。安装这些软件包后,现在可以配置 VNC 服务器了。vncserver
首先,我们需要告诉我们的 VNC 服务器启动时要执行什么命令。这些命令位于被称为一个配置文件 xstartup 在.vnc你的 home 目录下的文件夹中。当您运行的启动脚本创建
在上一步,但我们需要修改一些针对 Xfce 桌面的命令。vncserver
VNC 时首次设置,它在端口 5901 启动一个默认的服务器实例此端口被称为显示器端口,并通过 VNC 所提到的 :1。VNC 可以在其他显示器端口启动多个实例,如:2,:3,等等。当使用 VNC 服务器时,请记住:X 是指显示器端口5900+X。
因为我们将改变 VNC 服务器的配置,我们需要先停止在端口 5901 上运行的 VNC 服务器实例。
vncserver
-kill :1
输出应该看起来像这样,有一个不同的 PID:
Output
Killing Xtightvnc process ID 17648
我们开始配置新的之前 xstartup 文件,让备份原件。
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
现在创建一个新 xstartup 使用文件 nano 或你喜欢的文本编辑器。
nano ~/.vnc/xstartup
将这些命令粘贴到文件中,以便在启动或重新启动 VNC 服务器时自动执行这些命令,然后保存并关闭文件。
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
该文件中的第一个命令,xrdb $HOME/.Xresources,讲述了 VNC 的 GUI 框架读取服务器用户 .Xresources 文件。.Xresources是用户可以更改图形化桌面的某些设置,如终端的颜色,光标主题,和字体呈现。第二个命令简单地告诉服务器启动 Xfce,在这里你会找到所有的图形软件,你需要舒适地管理你的服务器。
为确保 VNC 服务器能够正确使用此新启动文件,我们需要向其授予可执行权限。
sudo chmod +x ~/.vnc/xstartup
现在,重新启动 VNC 服务器。
vncserver
服务器应该使用类似于以下内容的输出启动:
Output
New 'X' desktop is your_server_name.com:1
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/liniverse.com:1.log
在此步骤中,我们将测试 VNC 服务器的连接性。
首先,我们需要创建本地计算机上的 SSH 连接,能够安全地转发到 localhost 的 VNC 连接。您可以通过以下命令在 Linux 或 OS X 上的终端执行此操作。记得替换 user 和server_ip_address您的服务器的 Sudo 非 root 用户名和 IP 地址。
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
如果您使用的是图形化的 SSH 客户端,如 PuTTY,使用 server_ip_address 作为连接 IP,并设置 localhost:5901 作为程序的 SSH 隧道设置的新的转发端口。
接下来,你现在可以使用 VNC 客户端尝试在到 VNC 服务器的连接localhost:5901。系统将提示您进行身份验证。要使用的正确密码是您在第 1 步中设置的密码。
连接后,您应该会看到默认的 Xfce 桌面。它应该看起来像这样:
您可以使用文件管理器或从命令行访问主目录中的文件,如下所示:
接下来,我们将 VNC 服务器设置为 systemd 服务。这将使其可以像任何其他 systemd 服务一样根据需要启动,停止和重新启动。
首先,创建一个新的名为单元文件 /etc/systemd/system/
@.service 用你喜欢的文本编辑器:vncserver
sudo nano /etc/systemd/system/vncserver
@.service
将以下内容复制并粘贴到其中。一定要改变 PIDFILE 的值 用户 的价值和用户名,以配合您的用户名。
/etc/systemd/system/@.service [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy PAMName=login PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/
vncserver
-kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/
vncserver
-depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/
vncserver
-kill :%i [Install] WantedBy=multi-user.target
vncserver
保存并关闭文件。
接下来,让系统知道新的单元文件。
sudo systemctl daemon-reload
启用单位文件。
sudo systemctl enable vncserver
@1.service
停止 VNC 服务器的当前实例(如果它仍在运行)。
vncserver
-kill :1
然后启动它,因为您将启动任何其他 systemd 服务。
sudo systemctl start vncserver
@1
您可以验证它以此命令开始:
sudo systemctl status vncserver
@1
如果它正确启动,输出应如下所示:
@1.service - TightVNC server on Ubuntu 16.04 Loaded: loaded (/etc/systemd/system/
vncserver
@.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago Process: 2924 ExecStop=/usr/bin/
vncserver
-kill :%i (code=exited, status=0/SUCCESS) ... systemd[1]: Starting TightVNC server on Ubuntu 16.04... systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0) systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0) systemd[1]: Started TightVNC server on Ubuntu 16.04.
vncserver
您现在应该有一个安全的 VNC 服务器启动并运行在您的 Ubuntu 16.04 服务器上。现在,您将能够使用易于使用和熟悉的图形界面管理您的文件,软件和设置。