如果轉載, 請註明出處 https://www.cnblogs.com/milton/p/16730512.html
在Ubuntu22.04下, 使用者在啟動vncserver之前必須退出所有桌面對談, 否則會報錯.
如果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 , 參考 https://manpages.ubuntu.com/manpages/impish/man8/tigervncsession.8.html, 需要在 ~/.vnc/ 下建立檔案 config, 輸入內容
session=xfce
geometry=1366x768
securitytypes=vncauth,tlsvnc
session=xfce
的xfce
能用哪些值, 取決於 /usr/share/xsessions 目錄下包含哪些 desktop. 如果想使用自帶的 Ubuntu桌面, 可以改成 session=ubuntu
localhost
修改完重啟服務生效
sudo systemctl restart tigervncserver@:2.service
TigerVNC
如果使用Win10 64bit, 下載其中的vncviewer64-x.xx.x.exe
, 不需要安裝, 直接執行, 地址填host地址加vnc編號, 例如 112.12.12.12:2
, 或者112.12.12.12:5902
也可以
上面的設定, 僅適合在內網使用, 因為連線是不加密的. 如果需要加密, 一般將vnc服務啟動為監聽本地, 再使用ssh建立隧道對外提供服務. 具體可以參考下面的連結