請參考: Linux開源免費的遠端桌面列表
適用系統:Ubuntu 24.04與Debian 12以上
VNC實作有x11VNC、TigerVNC、RealVNC、TurboVNC等,其中TigerVNC為一款知名的開源VNC伺服器軟體。
作為TightVNC的分叉版,它會啟動一個Xvnc,建立虛擬X伺服器,能夠從SSH命令行啟動遠端桌面,適用沒接上螢幕(headless)的Linux電腦,例如樹莓派、Ubuntu Server等等。
TigerVNC沒有傳輸音效和GPU加速的功能,每次啟動的桌面工作階段都是獨立的。如果你想要的是「遠端接續離開電腦前的工作」,請改用 x11VNC。
給舊版Ubuntu用戶的提示#
本文討論的都是「TigerVNC server」的設定方式,不可用vncserver
指令來啟動。Ubuntu 24.04與Debian 12以上的系統使用vncserver
可能會變成執行「RealVNC server」,所以請注意電腦有無安裝realvnc-vnc-server
套件。
若要查看vncserver指向的是哪個VNC伺服器,可以用ls -l /usr/bin/vncserver
指令查看。
另外,
TigerVNC開發者推薦用Systemd service管理VNC伺服器服務,而非直接執行tigervncserver :0
指令。
1. 安裝桌面環境#
TigerVNC可以啟動Linux現有的X11桌面環境,例如Ubuntu Desktop安裝的是GNOME。
不過遠端連線很吃頻寬,且有的Ubuntu Server並沒有桌面環境。
所以裝個輕量點的桌面環境來用吧,例如XFCE4:
sudo apt install xfce4 xfce4-goodies
2. 安裝TigerVNC#
注意:這裡使用的都是TigerVNC的指令。
- 安裝TigerVNC server
sudo apt install tigervnc-standalone-server
- 設定六位數VNC密碼
tigervncpasswd
- 新增TigerVNC設定檔
vim ~/.vnc/tigervnc.conf
- 填入以下內容,設定開啟XFCE工作階段、解析度、斷線後仍保留工作階段、允許外部連線
$session="xfce4-session";
$geometry="1920x1080";
$AlwaysShared="yes";
$localhost="no";
- 防火牆開啟VNC通訊埠:
sudo ufw allow 5900/tcp
sudo ufw reload
- 參考 Github範本,給目前使用者新增Systemd service
vim ~/.config/systemd/user/[email protected]
- 填入以下內容。這裡執行的內容是先中止舊有的VNC伺服器,再啟動新的。
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=default.target
- 啟動VNC伺服器服務,
@
後面的數字是要使用的通訊埠,從5900開始算
systemctl --user daemon-reload
systemctl --user start vncserver@:0.service
- 如此一來其他電腦就能用
Linux電腦IP:5900
連線了。VNC伺服器的除錯訊息用以下指令查看
systemctl --user status vncserver@:0.service
- 停止VNC伺服器的指令:
systemctl --user stop vncserver@:0.service
- 開機自動啟動VNC伺服器的指令:
systemctl --user enable vncserver@:0.service
4. 開放外部連線#
我使用 內網穿透軟體。
這樣Linux電腦會分配到一個虛擬IP。
5. 安裝VNC連線客戶端#
電腦:安裝 Remmina或 RealVNC Viewer,在位址欄選取VNC,輸入
虛擬區域IP:5900
連線手機:安裝 AVNC或 Real VNC Viewer,在位址欄輸入
虛擬區域IP:5900
,登入遠端桌面。網頁:安裝 noVNC