Ubuntu22.04 安裝配置VNC Server

如果轉載, 請註明出處 //www.cnblogs.com/milton/p/16730512.html

Ubuntu22.40下VNC和遠程桌面的區別

  • 使用遠程桌面時, 用戶必須在host上登入桌面環境. 可以是鎖屏或非鎖屏, 但是必須要有一個用戶桌面會話存在.
  • 使用VNC時, host上需要啟動vncserver. 但是vncserver與用戶在host上的桌面會話是無關的, vncserver會給連接後的用戶啟動桌面會話

啟動vncserver失敗的問題

在Ubuntu22.04下, 用戶在啟動vncserver之前必須退出所有桌面會話, 否則會報錯.

安裝步驟

安裝並啟用 SSH 服務

如果host上還沒有ssh服務, 安裝一下, 方便後面的安裝步驟, 遠程通過ssh進行. 如果不安裝, 本機關閉桌面在命令行下也可以, 就是調試起來不方便

sudo apt install openssh-server
sudo systemctl status ssh.service 
# 確認是否開機自啟動
sudo systemctl is-enabled ssh.service 

初始安裝

安裝XFCE桌面. 如果想使用自帶的 Ubuntu桌面, 後面可以配置

sudo apt install xfce4 xfce4-goodies

安裝vncserver

sudo apt install tigervnc-standalone-server

上面的安裝完之後, 用普通用戶在ssh連接(或者命令行終端)中啟動一次

vncserver

過程中會讓你設置密碼和只讀密碼, 會自動分配埠號. 查看啟動後的實例

$ vncserver -list

TigerVNC server sessions:

X DISPLAY #	RFB PORT #	RFB UNIX PATH	PROCESS ID #	SERVER
2         	5902      	             	11368       	Xtigervnc

如果-list看不到實例, 說明啟動失敗, 需要journalctl -fe看一下具體原因

如果事後想再修改密碼, 可以用vncpasswd命令

上面啟動的服務, 默認是只監聽本地127.0.0.1, 所以從其它機器是無法連接的, 如果需要連接, 可以用這個命令啟動

vncserver -localhost no

配置為服務

關閉剛才的實例, :2根據自己的實例修改

vncserver -kill :2

開啟 tigervncservice 服務, :2根據自己的實例修改

sudo systemctl start tigervncserver@:2.service
sudo systemctl enable tigervncserver@:2.service

服務配置文件在 /lib/systemd/system/[email protected] , 因為服務使用的是 /usr/libexec/tigervncsession-start 這個腳本, 腳本裡面調用的是 /usr/sbin/tigervncsession , 參考 //manpages.ubuntu.com/manpages/impish/man8/tigervncsession.8.html, 需要在 ~/.vnc/ 下創建文件 config, 輸入內容

session=xfce
geometry=1366x768
securitytypes=vncauth,tlsvnc
  • session=xfcexfce 能用哪些值, 取決於 /usr/share/xsessions 目錄下包含哪些 desktop. 如果想使用自帶的 Ubuntu桌面, 可以改成 session=ubuntu
  • geometry=1366×768 是開啟時的默認解析度
  • 如果要只允許本地連接, 可以加一行 localhost

修改完重啟服務生效

sudo systemctl restart tigervncserver@:2.service

VNC客戶端

TigerVNC

如果使用Win10 64bit, 下載其中的vncviewer64-x.xx.x.exe, 不需要安裝, 直接運行, 地址填host地址加vnc編號, 例如 112.12.12.12:2, 或者112.12.12.12:5902也可以

連接安全

上面的配置, 僅適合在內網使用, 因為連接是不加密的. 如果需要加密, 一般將vnc服務啟動為監聽本地, 再使用ssh建立隧道對外提供服務. 具體可以參考下面的鏈接

參考