当前位置: 首页>>技术教程>>正文


Ubuntu 18.04 Bionic Beaver Linux上的VNC服务器

, ,

目的

目的是在Ubuntu 18.04 Bionic Beaver Linux上设置VNC服务器。

操作系统和软件版本

  • 操作系统:-Ubuntu 18.04仿生海狸

要求

以root或通过特权访问Ubuntu系统sudo命令是必需的。

困难

介质

约定

  • -要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求linux命令以普通非特权用户身份执行

使用说明

Ubuntu VNC服务器设置

让我们从安装VNC服务器和Xfce桌面管理器核心文件开始:


$ sudo apt install vnc4server xfce4 xfce4-goodies

一旦安装了VNC服务器,我们就可以通过设置用户密码来开始配置,该密码将由VNC客户端在创建远程连接时使用:


$ vncpasswd

接下来,创建~/.vnc/xstartup文件以启动Xfce4桌面:


$ mkdir ~/.vnc
$ nano ~/.vnc/xstartup

插入以下内容并保存:

#!/bin/bash
startxfce4 &

最后,使~/.vnc/xstartup文件可执行文件:


$ chmod +x ~/.vnc/xstartup

在此阶段,我们准备启动VNC服务器。为此,只需运行vncserver您的主目录中的命令:


$ vnc4server

New 'ubuntu:1 (linuxconfig)' desktop is ubuntu:1

Starting applications specified in /home/linuxconfig/.vnc/xstartup
Log file is /home/linuxconfig/.vnc/ubuntu:1.log

VNC服务器将为您创建的每个新VNC桌面打开一个新端口。您的Ubuntu系统现在应该在端口上监听5901对于传入的VNC连接:

$ ss -ltn
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128    0.0.0.0:22                 0.0.0.0:* 
LISTEN      0      128    0.0.0.0:6001               0.0.0.0:* 
LISTEN      0      128       [::]:22                    [::]:*  
LISTEN      0      5            *:5901                     *:* 

如果你有UFW启用防火墙,打开端口5901有关传入连接的信息,或参阅以下如何通过SSH协议建立VNC连接的通道:


$ sudo ufw allow from any to any port 5901 proto tcp
Rule added
Rule added (v6)

如果您希望使防火墙规则更严格或允许多个VNC会话使用端口范围,请访问我们的如何打开/允许传入防火墙端口指南了解更多信息。




连接到VNC服务器

现在,您可以使用任何VNC客户端连接到新的Ubuntu VNC服务器。本指南将使用xvnc4viewer客户。

安装xvnc4viewer在您的Ubuntu客户端系统上运行:


$ sudo apt install xvnc4viewer

一旦安装了VNC客户端,就可以使用主机名(例如)建立到VNC服务器的新连接。ubuntu-vnc-server使用以下linux命令


$ vncviewer ubuntu-vnc-server:1

输入之前在“ Ubuntu VNC服务器设置”部分中创建的密码。

如果一切顺利,将为您提供在远程VNC服务器Ubuntu系统上运行的Xfce4桌面会话:

Ubuntu VNC server - 18.04 Bionic Beaver

建立与Ubuntu 18.04 VNC服务器的VNC连接。

注意,也可以通过SSH隧道运行安全的VNC客户端/服务器连接。假设您具有SSH用户访问权限(在本例中为username)linuxconfig用于)到您的VNC服务器。ubuntu-vnc-server

首先,在本地端口上创建SSH隧道5901通往远程端口5901在您的VNC服务器上。

例:


$ ssh -L 5901:127.0.0.1:5901 -N -f -l linuxconfig ubuntu-vnc-server

上面的命令将打开一个本地端口5901在本地主机loop-back网络接口上127.0.0.1

$ ss -ltn
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128       0.0.0.0:22                    0.0.0.0:*
LISTEN      0      5       127.0.0.1:631                   0.0.0.0:*
LISTEN      0      128     127.0.0.1:6010                  0.0.0.0:*
LISTEN      0      128     127.0.0.1:6011                  0.0.0.0:*
LISTEN      0      128       0.0.0.0:38299                 0.0.0.0:*
LISTEN      0      128     127.0.0.1:5901                  0.0.0.0:*

接下来,使用本地端口5901通过SSH隧道连接到远程VNC服务器:


$ vncviewer localhost:1


VNC服务器系统启动脚本

尽管当前配置有效,但是为了轻松管理多个VNC桌面会话,可能需要设置一个systemd启动脚本。

创建一个新文件/etc/systemd/system/vncserver@.service使用您喜欢的文本编辑器,例如纳米:


$ sudo nano /etc/systemd/system/vncserver@.service

打开文件后,请在插入以下行的同时替换linuxconfig带有您的VNC用户名的用户名7号线10号线。 (可选)更改屏幕分辨率设置并应用其他vncserver选项或参数:

[Unit]
Description=Systemd VNC server startup script for Ubuntu 18.04
After=syslog.target network.target

[Service]
Type=forking
User=linuxconfig
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/linuxconfig/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

接下来,重新加载Systemd:


$ sudo systemctl daemon-reload

启动VNC桌面1输入:


$ sudo service vncserver@1 start

停止VNC桌面1执行:


$ sudo service vncserver@1 stop

下列linux命令将启用VNC桌面1重新启动后开始:


$ sudo systemctl enable vncserver@1

启动VNC桌面2输入:


$ sudo service vncserver@2 start

等等..

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8901.html,未经允许,请勿转载。