快轉到主要內容

如何用VNC遠端連線至Termux的Linux桌面

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 Termux教學
標籤   Proot-Distro VNC
目錄

本文解說如何設定VNC伺服器,讓我們可以存取Termux的Linux系統桌面。適用透過proot或chroot安裝的Linux系統。

Termux能在Android手機跑Linux,配好環境後就要煩惱桌面(圖形環境)的連線問題了。欲連線到Termux的Linux系統桌面,有Termux X11XSDL、VNC三種方法。

前二者是在手機跑X伺服器,後者是遠端桌面的概念,也就是在手機跑VNC伺服器,啟動虛擬Xvnc伺服器,再用VNC客戶端連線。這個VNC客戶端可以是本機的、也可以是其他電腦上的客戶端。

論圖形效能X伺服器要比VNC要好,也更容易達成3D硬體加速。

早期我學Termux的時候看很多人都是用VNC,但隨著Termux X11逐漸成熟,VNC就逐漸被我拋棄了。

如果三者都跑在同一部手機,因為都是localhost,沒有延遲問題,VNC相較於X伺服器實在沒什麼性能優勢。

VNC的強項是用其他電腦遠端存取!相較於SSH X伺服器forwarding的方法,VNC可以降低畫質減低頻寬,甚至headless的啟動,在遠端檢視的時候性能優勢就出來了。

所以VNC適合「用電腦連線到手機Termux桌面」的場合,你不喜歡盯著小螢幕狂打指令對吧。那麼除了純文字SSH存取外,圖形化的VNC就是好選擇。

VNC與Termux X11兩個方案可以並存使用,應該是不會互相影響的。

1. 挑選VNC客戶端
#

手機推薦AVNCRealVNC Viewer,後者功能較多但它是專有軟體。

電腦推薦Remmina

2. 設定VNC伺服器
#

二擇一。

在Termux直接跑VNC伺服器
#

事實上不需要proot-distro,Termux本身就有提供原生的VNC伺服器套件。但是如果你希望開啟的是proot-distro裡面Linux發行版的桌面,那就不要用這個方法。

還有Termux收的桌面環境套件不若proot-distro豐富,目前最完整的就XFCE了。

  1. 給Termux安裝XFCE桌面,但不用安裝Termux X11。

  2. 安裝TigerVNC的套件,當下版本為1.13.0。

pkg install tigervnc
  1. 設定VNC伺服器密碼
vncpasswd
  1. 新增VNC伺服器啟動後要執行的程式,編輯~/.vnc/xstartup
mkdir ~/.vnc/

vim ~/.vnc/xstartup
  1. 填入以下內容
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADRESS

# 啟動PulseAudio音效伺服器,音訊會從Termux傳出來
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# 執行桌面環境,此處為XFCE
exec startxfce4
  1. 賦予xstartup執行權限
chmod +x ~/.vnc/xstartup
  1. 定義VNC伺服器的設定檔。編輯~/.vnc/tigervnc.conf
vim ~/.vnc/tigervnc.conf
  1. 填入以下內容:
# 目前的工作階段XFCE
$session="xfce-session";
# 解析度,越高佔用頻寬越多
$geometry="1920x1080";
# 位元深度,數值為8/16/24/32,數字越大畫面越好但越耗頻寬
$depth="32";
# 讓外部網路可以連線
$localhost="no";

在proot-distro裡面跑VNC伺服器
#

請先安裝Termux proot-distro,如Debian。接著在proot-distro裡面安裝一個桌面環境,最不吃資源的就XFCE了,KDE Plasma也可以試試。

  1. 登入proot-distro,確保目前是一般使用者,而非root
whoami

# 是root的話就打su "使用者名稱" 切換到一般使用者
  1. 安裝TigerVNC的套件,目前版本為1.13.0
sudo apt install tigervnc-standalone-server tigervnc-xorg-extension
  1. 設定VNC伺服器密碼
vncpasswd
  1. 新增VNC伺服器啟動後要執行的程式,編輯~/.vnc/xstartup
mkdir ~/.vnc/

vim ~/.vnc/xstartup
  1. 填入以下內容
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADRESS

# 啟動PulseAudio音效伺服器,音訊會從Termux傳出來
export PULSE_SERVER=127.0.0.1 && pulseaudio --start --disable-shm=1 --exit-idle-time=-1

# 執行桌面環境,此處為XFCE
exec startxfce4
  1. 賦予xstartup執行權限
chmod +x ~/.vnc/xstartup
  1. 定義VNC伺服器的設定檔。編輯~/.vnc/tigervnc.conf
vim ~/.vnc/tigervnc.conf
  1. 填入以下內容:
# 目前的工作階段XFCE
$session="xfce-session";
# 解析度,越高佔用頻寬越多
$geometry="1920x1080";
# 位元深度,數值為8/16/24/32,數字越大畫面越好但越耗頻寬
$depth="32";
# 讓外部網路可以連線
$localhost="no";

3. 連線至VNC伺服器
#

在Termux輸入tigervncservervncserver指令,啟動VNC伺服器。觀察畫面輸出的通訊埠號,通常是從1開始。而VNC伺服器的通訊埠從5900開始算,因此這裡通訊埠是5901

本機連線
#

欲行本機連線:手機開啟AVNC APP,新增主機連線,地址填localhost,通訊埠填5901

AVNC操作建議點左邊按鈕改成觸控板模式。如果嫌Linux桌面字體太小,請降低解析度,或者到該桌面環境的設定調DPI。

記得退出VNC伺服器連線後,要回到Termux中止伺服器,否則下次啟動會跑在新的通訊埠。

vncserver -kill :1

電腦遠端連線
#

先讓手機與電腦處於同一Wifi網路

在Termux打sudo apt install net-tools & ifconfig指令取得手機區域IP,看Wlan那行

再於電腦的Reminna地址欄位切成VNC,輸入手機IP:5901連線。

Reminna可以按左邊按鈕適應遠端桌面的大小。雖然輸入法只能使用遠端的打字,但兩邊剪貼簿會自動同步。

記得退出VNC伺服器連線後,要回到Termux中止伺服器,否則下次啟動會跑在新的通訊埠。

vncserver -kill :1

另請參見
#

相關文章

Termux proot無法使用systemctl指令的解決方案
分類   智慧型手機 Termux教學
標籤   Systemd Proot-Distro Chroot OpenRC Runit
Termux安裝圖形桌面環境+音訊輸出教學
分類   智慧型手機 Termux教學
標籤   X Window VNC
用Termux qemu-user在ARM64架構的Android模擬執行x86_64的Ubuntu
分類   智慧型手機 Termux教學
標籤   Proot-Distro QEMU User Mode

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。