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 提供了兩個主要的遠程控制能力:
- 使用虛擬控制台以無外設模式運行的虛擬服務器
- 直接控制物理本地 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 的應用程序,請啟動它並提供所需的詳細信息。