如何在Arch Linux上安装和配置TigerVNC
TigerVNC是允许用户能够与远程计算机上的图形应用程序进行交互的应用程序。
TigerVNC是使用客户端/服务器模型的虚拟网络计算(VNC)的实现。
TigerVNC提供的性能水平能够运行3D应用程序和玩视频游戏。
在安全站点上,TigerVNC支持TLS加密和其他高级身份验证方法。
在本教程中,我们将介绍在Arch Linux 2016.01.01上的Tigervnc的安装和配置。
TigerVNC组件
由于TigerVNC是客户端服务器应用程序,因此让我们看一下在安装TigerVNC时在操作系统上安装的客户端和服务器应用程序。
服务器端组件
Linux/Unix
Xvnc这是TigerVNC的VNC和X服务器。
vncserver这是用于管理Xvnc守护程序启动的包装器脚本
vncpasswd启用VNC身份验证后,vncpasswd负责VNC服务器密码管理。
vncconfig用于与正在运行的Xvnc实例进行交互
x0vncserver这是一个简单的VNC服务器的演示,它连续轮询任何X显示,以便VNC可以控制它
TigerVNC客户端
TigerVNC应用程序的任何版本都带有跨平台的TigerVNC Viewer。
这将连接到VNC服务器,使我们可以与VNC服务器显示的远程桌面进行交互。
vncviewer可用于连接到在任何平台(Linux,Unix或者Windows)上运行的VNC服务器
在Arch上安装tigervnc(版本-2016.01.01)
TigerVNC可以安装在Arch上,从社区存储库下载二进制软件包并进行安装。
如果搜索tigervnc,我们将得到类似以下的输出:
$sudo pacman -Ss tigervnc community/tigervnc 1.8.0-3 Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC.
要安装TigerVNC软件包,请运行:
$ sudo pacman -S tigervnc --noconfirm
该软件包的安装提供了必需的vncserver,x0vncserver以及vncviewer。
配置TigerVNC
值得一提的是,Vncserver提供了两种主要的远程控制功能:
- 使用虚拟控制台以无头模式运行的虚拟服务器
- 直接控制物理本地X会话,
运行vncserver
首次运行vncserver时,它将初始化vncserver环境,生成vncserver配置,并添加用于用户身份验证的密码。
这是通过运行以下命令来实现的:
$vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n New 'dev.jmtai.com:1 (jmutai)' desktop is dev.jmtai.com:1 Creating default startup script /home/jmutai/.vnc/xstartup Creating default config /home/jmutai/.vnc/config Starting applications specified in /home/jmutai/.vnc/xstartup Log file is /home/jmutai/.vnc/dev.jmtai.com:1.log
这将提示我们输入用于访问桌面的密码,然后输入并验证。
如果我们想要设置仅查看密码,请在下一个提示时按y。
从输出中可以看到,生成的配置将存储在~/.vnc/config下,并且生成启动脚本并将其存储在~/.vnc/xstartup中。
来自vncserver的所有日志将存储在~/.vnc/hostname:1.log文件中。
:1表示运行虚拟vncserver的TCP端口号。
在这种情况下,:1实际上是TCP端口5901(5900 + 1)。
如果启动了另一个vncserver实例,它将在下一个免费的最高实例上运行,例如:5902(5900 + 2),其结尾应与上述相同:2.
在Linux上可以启动的VNC服务器的数量没有限制,内存是唯一的限制因素。
编辑环境文件
~/.vnc/xstartup函数(如.xinitrc),在启动时由vncserver提供。
至少,用户应从该文件启动DE。
例如,要启动i3wm,我们将文件修改为:
$cat ~/.vnc/xstartup #!/bin/bash exec i3 &>/dev/null
该文件应该是可执行的:
$chmod +x ~/.vnc/xstartup
停止vncserver
要停止vncserver,请使用以下命令:
$vncserver -kill :1
用启动时给定的相关实例号替换:1.
添加vncserver选项
可以通过编辑~/.vnc/config文件来添加受支持的服务器选项。
常见的选项有:
$cat ~/.vnc/config securitytypes=vncauth,tlsvnc desktop=sandbox geometry=1200x700 dpi=96 localhost alwaysshared
根据自己的喜好修改并保存。
通过systemd启动和停止vncserver
要使用systemd控制vncserver,首先,为用户创建systemd单位文件,
$cat /etc/systemd/system/vncserver@:1.service [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple User=jmutai PAMName=login PIDFile=/home/%u/.vnc/%H%i.pid ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver %i -geometry 1440x900 -alwaysshared -fg ExecStop=/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
其中:1是$DISPLAY环境变量。
将jmutai替换为所需的用户名,将1440x900替换为我们要设置的分辨率。
要启动服务,请运行
$sudo systemctl start vncserver@:1.service
要使其在引导时运行,请运行:
$sudo systemctl enable vncserver@:1.service
使用vncserver控制本地显示
为此,提供了x0vncserver二进制文件,该文件允许直接控制物理X会话。
像这样调用它:
$x0vncserver -display :0 -passwordfile ~/.vnc/passwd Wed Jan 10 01:07:17 2016 Geometry: Desktop geometry is set to 1920x1080+0+0 Main: XTest extension present - version 2.2 Main: Listening on port 5900
相同的systemd单元如下所示:
$cat /etc/systemd/system/x0vncserver.service [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=foo ExecStart=/usr/bin/sh -c '/usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/jmutai/.vnc/passwd &' [Install] WantedBy=multi-user.target
连接到vncserver
任意数量的客户端都可以连接到vncserver:
$ ip ad show dev wlp1s0 2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether e4:a7:a0:ef:27:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.16/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0 valid_lft 595575sec preferred_lft 595575sec inet6 fe80::557e:6563:6f86:f8b2/64 scope link noprefixroute valid_lft forever preferred_lft forever $vncviewer
输入IP地址并单击“连接”,接下来会提示我们输入密码,请使用先前设置的密码。
在Arch上为Tigervnc安装基于GUI的客户端
许多GUI应用程序可用于连接到vncserver,其中包括:
Krdc:
$sudo pacman -S krdc
启动krdc时,在URL上输入vcn服务器的IP地址并连接:
Rdesktop:
$sudo pacman -S rdesktop
Remina
$sudo pacman -S remmina
要使用任何这些基于GUI的应用程序,请启动它并提供所需的详细信息。