如何在Fedora 22上配置Tigervnc Server
Tigervnc是一个开源虚拟网络计算软件,它是TeactVNC的叉子。
它侧重于性能和远程显示功能。
在其初始开发后,它是在联邦管理局分发的默认VNC软件中实现。
它是VNC(虚拟网络计算)的强大实现,允许用户在远程框中与桌面环境和图形应用程序交互。
在VNC实现中,有两个接口,一个安装的服务器应用程序,并在远程显示器控制的远程计算机中设置,而另一个是安装在控制远程计算机的计算机中的客户端应用程序。
Tigervnc规定了运行3D和视频应用的良好支持,它会在物理盒中提供远程机器的外观和感觉。
以下是如何在Fedora 22计算机中设置Tigervnc Server运行Mate/XFCE/GNOME桌面环境的Tigervnc Server如何执行措施。
1.安装Mate/XFCE/GNOME/LXDE
如果我们在我们的机器中安装了最少版本的Fedora 22,那么我们需要在我们的机器中安装桌面环境。
我们可以在Fedora 22框中安装任何桌面环境,但我们将用于安装以下任何桌面环境。
安装mate
Mate 1.10是Fedora 22官方存储库中可用的Mate桌面环境的最新版本。
因此,我们可以使用DNF Package Manager在Fedora 22中安装Mate 1.10.
为此,我们需要在控制台或者终端中运行以下命令。
# dnf groupinstall mate-desktop
安装XFCE.
XFCE 4.12是XFCE桌面环境的最新版本,其在Fedora 22的官方存储库中也可用,这使我们能够在DNF命令的帮助下实现它。
# dnf groupinstall Xfce
安装gnome.
Gnome 3.16是Fedora 22官方存储库中提供的Gnome桌面环境的当前版本。
所以,我们可以通过运行以下命令来安装它。
# dnf groupinstall gnome
安装LXDE.
LXDE是Linux发行版最轻的快速性能和节能桌面环境。
我们可以使用DNF命令在Fedora 22框中安装LXDE,如下所示。
# dnf group install "LXDE Desktop"
2.安装Tigervnc.
在我们安装所需的桌面环境后,我们将在Fedora 22框中安装Tigervnc Server。
由于Tigervnc已在存储库中可用,我们将使用DNF包管理器安装它。
# dnf install tigervnc-server
3.创建VNC用户
现在,正如我们已安装桌面环境和Tigervnc Server一样,我们现在将创建一个名为VNCuser的新用户,我们将用于连接到Fedora 22框中运行的远程桌面运行的桌面环境。
# useradd vncuser
创建一个名为VNCuser的新用户后,我们希望为此设置强大的用户密码。
为此,我们将运行以下命令。
# passwd vncuser Changing password for user vncuser. New password: Retype new password: passwd: all authentication tokens updated successfully.
然后,如果我们希望VNCuser可以访问sudo模式。
我们将运行以下命令授予用户sudo或者root访问权限。
# usermod vncuser -a -G wheel
注意:如果我们已在框中创建的用户并想要使用该用户进行VNC登录,请跳过此步骤3.4. 配置VNC服务器
接下来,我们将为VNC用户创建一个新配置,并为连接指定端口。
为此,我们需要将/lib/systemd/system/[email protected]文件复制到/etc/systemd/system/vncserver@:.service。
这指定端口5900 + 1 IE 5901端口作为文件的名称设置为VNCServer @:1.service。
如果我们对VNC有多个用户,则需要为该另一个用户指定其他端口。
通过运行以下命令,我们可以执行此操作。
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
之后,我们将编辑该文件/etc/systemd/system/vncserver@:1.service并替换<用户>我们想要连接VNC。
其中我们将在我们之前创建的VNCuser中替换<用户>。
# vi /etc/systemd/system/vncserver@:1.service
完成后,我们将保存并退出然后运行以下内容以使系统知道我们已修改配置。
# systemctl daemon-reload
注意:要添加其他用户来使用VNC服务器配置,我们可以执行下一个用户帐户的上述配置。
如如果想在端口2处向另一个用户vncuser2添加服务,那么我们需要用vncserver @:2.service替换vncserver @:1.service,然后用vncuser2替换<user>。
5.设置VNC密码
为了设置VNC密码,我们需要登录我们刚刚在上述步骤中创建的VNC用户。
VNC密码是将来需要访问VNC服务器以获取远程桌面访问的密码。
所以,首先我们将要登录用户vNcuser。
# su - vncuser
在我们登录到我们的VNC用户后,我们现在将使用vncpasswd命令设置强密码。
$vncpasswd Password: Verify:
6.配置桌面环境
现在,我们会将VNC服务器配置为运行我们已安装的桌面环境。
其中我们将首先运行VNCServer,以便将生成必要的配置文件。
为此,我们需要在用户VNCuser内运行以下命令。
$sudo systemctl start vncserver@:1
生成必要的配置文件后,我们将通过运行以下命令来停止VNC服务。
$sudo systemctl stop vncserver@:1
然后,我们将编辑配置文件才能指定我们上面安装的桌面环境。
$nano ~/.vnc/xstartup
其中以下是我们需要将其添加到文件以启用这些相应桌面环境的配置。
对于伴侣
#!/bin/sh ## Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # exec /etc/X11/xinit/xinitrc #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & mate-session &
对于Xfce.
#!/bin/sh ## Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # exec /etc/X11/xinit/xinitrc #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & xfce4-session &
对于Gnome.
#!/bin/sh ## Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # exec /etc/X11/xinit/xinitrc #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & gnome-session &
对于LXDE.
#!/bin/sh ## Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # exec /etc/X11/xinit/xinitrc #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & startlxde &
7.启动VNC服务器
现在,最后毕竟我们将开始我们的VNC服务。
我们将使用SystemD启动VNC服务器。
为此,我们需要运行以下命令。
$sudo systemctl start vncserver@:1
然后,我们将启用VNCServer在系统boot子后立即启动。
$sudo systemctl enable vncserver@:1
8.隧道连接到SSH的VNC连接
VNC连接被视为不安全的连接,因为它们不会加密。
因此,我们将隧道隧道连接到SSH,以便我们可以获得加密和固定的整个流量。
要执行隧道,我们需要用户的登录用户,端口和密码。
这是在我们的客户端计算机中执行隧道的命令。
$ssh -L 5901:127.0.0.1:5901 -N -f -l vncuser 128.199.234.106
注意:此处,将要求密码执行隧道。
请注意,它是SSH登录的密码或者用户登录VNC密码。
并且需要隧道的端口是5901,如上所示。
以上命令将在VNC客户端的计算机中输入。
9.与VNC客户端连接
要连接到VNC服务器并使用分配的IP地址或者域名访问远程桌面,即我们通过SSH在上面的步骤中隧道隧道隧道进行隧道。
在此,在本教程中,我们将用户名与VNCuser,VNC密码有VNC密码,如上面输入的VNC密码,端口为5901.互联网中有大量的VNC客户端可用,我们可以用来连接到服务器。
其中我们使用Remmina远程桌面客户端作为VNC客户端,我们将输入如下所示的配置。
然后,在我们点击Connect后,我们欢迎远程桌面访问,如下所示。
注意:如果使用VNC并禁用VNC服务器并不希望在系统boot子时自动启动时,请参阅以下命令以停止VNCService并禁用它以启动启动。
$sudo systemctl disable vncserver@:1.service $sudo systemctl stop vncserver@:1.service
众所周知的问题
有时候弄清楚VNC,可能会崩溃。
当我们尝试使用systemctl启动vncservice时,我们可能会出现一些错误,如下所示。
$sudo systemctl start vncserver@:1 Job for vncserver@:4.service failed. See 'systemctl status vncserver@:1.service' and 'journalctl -xn' for details.
当我们通过运行systemctl状态vncserver @:1.service来检查错误时,我们得到类似的错误,如下所示。
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2014-06-29 07:47:10 UTC; 1min 14s ago Process: 1383 ExecStart=/sbin/runuser -l vncuser -c /usr/bin/vncserver %i (code=exited, status=2) Process: 1379 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
解决问题
要解决此问题,我们需要删除/TMP /目录下的文件。
可以通过运行以下命令来完成。
$sudo rm -rf /tmp/.X11-unix/