如何在 Arch Linux 上安裝和配置 TigerVNC

TigerVNC 是一個應用程序,它允許用戶與遠程機器上的圖形應用程序進行交互。 TigerVNC 是虛擬網絡計算 (VNC) 的一種實現,它利用客戶端/服務器模型。TigerVNC 提供的性能水平能夠運行 3D 應用程序和玩視頻遊戲。 在安全站點上,TigerVNC 支持 TLS 加密等高級認證方式。 在本指南中,我們將了解在 Arch Linux 2018.01.01 上安裝和配置tigervnc。

TigerVNC 組件

由於 TigerVNC 是一個客戶端-服務器應用程序,讓我們看看在設置 TigerVNC 時安裝在操作系統上的客戶端和服務器應用程序。

服務器端組件

Linux/Unix

Xvnc – 這是 TigerVNC 的 VNC 和 X 服務器。
虛擬服務器 – 這是一個包裝腳本,用於管理 Xvnc 守護進程的啟動
密碼 – 當啟用 VNC 身份驗證時,vncpasswd 負責 VNC 服務器密碼管理。
虛擬機配置 – 用於與正在運行的 Xvnc 實例交互
x0vncserver – 這是一個簡單的 VNC 服務器的演示,它不斷輪詢任何 X 顯示器,以便 VNC 可以控制它

TigerVNC 客戶端

任何版本的 TigerVNC 應用程序都帶有一個跨平台的 TigerVNC 查看器。 這將連接到 VNC 服務器,允許您與 VNC 服務器顯示的遠程桌面進行交互。 vncviewer 可用於連接在任何平台(Linux、Unix 或 Windows)上運行的 VNC 服務器

在 Arch 上安裝tigervnc (release – 2018.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 提供了兩個主要的遠程控制能力:

  1. 使用虛擬控制台以無外設模式運行的虛擬服務器
  2. 直接控制物理本地 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

這將提示您輸入用於訪問桌面的密碼,輸入並驗證。 如果您想設置僅查看密碼,請按 在下一個提示中。

從輸出中可以看出,生成的配置將存儲在 ~/.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 功能如 .初始化程序 它在啟動時由 vncserver 提供。 至少,用戶應該從此文件啟動 DE。 作為 example, 要啟動 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 環境變量。 代替 木台 使用所需的用戶名和 1440×900 以及您要設置的分辨率。

要啟動服務,請運行

$ 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 2018
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

Enter IP地址並點擊連接,接下來你會得到一個要求輸入密碼的提示,使用之前設置的。

在 Arch 上為tigervnc 安裝基於 GUI 的客戶端

許多 GUI 應用程序可用於連接到 vncserver,它們包括:

數據中心:

$ sudo pacman -S krdc

啟動 krdc 時,在 url 上輸入 vcn 服務器的 IP 地址並連接:

桌面:

$ sudo pacman -S rdesktop

雷米納

$ sudo pacman -S remmina

要使用任何這些基於 GUI 的應用程序,請啟動它並提供所需的詳細信息。