使用 Xpra 執行遠端伺服器上的 GUI 應用程式

使用 Xpra 執行遠端伺服器上的 GUI 應用程式

目錄

雖然 VNC 或 RDP 可以用來遠端存取 GUI 應用程式,但它們通常需要完整的桌面環境,消耗大量系統資源與頻寬,容易出現延遲與畫質不佳的問題。相比之下,Xpra 是一個更輕量級的解決方案,能讓你在遠端伺服器上執行單一 GUI 應用程式,並將畫面顯示在本地機器或瀏覽器中,無需整個桌面環境。

快速開始

以下將介紹如何在 Ubuntu/Debian 伺服器上安裝與啟動 Xpra,並透過 SSH 隧道安全地將應用程式畫面轉發到本地端。

1. 在伺服器上安裝 Xpra

sudo apt update
sudo apt install xpra

2. 啟動 Xpra 伺服器並綁定 GUI 應用程式

請根據需求設定顯示器號碼、應用程式與本地端口:

DISPLAY=:100           # 指定顯示器號碼 (建議 :100 或更高)
GUI_APP=gedit          # 你要執行的 GUI 應用程式
DISPLAY_PORT=10000     # 本地端口 (可自訂)
xpra start $DISPLAY --start=$GUI_APP --bind-tcp=0.0.0.0:$DISPLAY_PORT --html=on

3. 建立 SSH 隧道連接

由於 Xpra 在伺服器上建立的端口會是在本地網路中,為了安全的在遠端存取,我們需要透過 SSH 隧道將該端口轉發到公網: (可以參考中華電信固定 IP 的申請及設定免費取得公網 IP)

DISPLAY_PORT=10000     # 本地端口 (需與上面設定相同)
USER=<user-name>       # 伺服器使用者名稱,用於 SSH 連線
HOST=<ip-address>      # 伺服器 IP 位址或域名,用於 SSH 連線
SSH_PORT=22            # SSH 連接埠 (預設 22)
ssh -L $DISPLAY_PORT:localhost:$DISPLAY_PORT $USER@$HOST -p $SSH_PORT

在本地端瀏覽器存取

打開瀏覽器,輸入 http://localhost:10000(或你設定的端口),即可直接操作遠端的 GUI 應用程式。

常用管理指令

若已啟動 Xpra 會話,可用下列指令管理:

xpra stop $DISPLAY      # 停止會話
xpra restart $DISPLAY   # 重新啟動會話
xpra info $DISPLAY      # 查詢會話狀態
xpra list               # 列出所有會話

進階用法:直接用 Xpra 客戶端連線

上述方法每次都需要登入伺服器啟動 xpra 後再建立 SSH 隧道,較為繁瑣,所以我通常會在本地端安裝 Xpra 客戶端,然後直接用 Xpra 連線到遠端伺服器。

在本地安裝 Xpra 後,使用以下指令直接連線:

xpra start ssh:$USER@$HOST:$DISPLAY --ssh="ssh -p $SSH_PORT" --start-child=$GUI_APP --html=on

這樣 Xpra 會自動處理 SSH 連線與轉發,無需手動設置隧道。結束時可以使用以下指令來停止會話:

xpra stop ssh:$USER@$HOST:$DISPLAY --ssh="ssh -p $SSH_PORT"
標籤 :
分享 :

相關文章

如何調整 Linux 系統時區

如何調整 Linux 系統時區

最近透過 docker 編譯程式後,發現時間對不上,原來是時區沒有設定的問題。 本來想說時區設定應該滿容易的,沒想到因為 docker 設定時不會互動,所以用一般在 Ubuntu 上使用 timedatectl 設定的方法就會有問題。 因此記錄一下在一般伺服器中以及 docker 中為 Ubuntu 系統設定時區的方法。

閱讀更多
Raymii VS9 螢幕支架:完美的居家工作夥伴?

Raymii VS9 螢幕支架:完美的居家工作夥伴?

今天我要介紹的是一款來自台灣品牌 Raymii 的 VS9 螢幕支架。在這個居家工作成為新常態的時代,擁有一款好的螢幕支架不僅可以提高工作效率,還能確保我們的坐姿正確,減少長時間工作帶來的身體負擔。但市面上的螢幕支架琳瑯滿目,究竟哪一款才是最適合你的呢?接下來,我將深入探討 Raymii VS9 螢幕支架的各種特點,希望能幫助大家做出明智的選擇。準備好了嗎?讓我們一起開始吧!

閱讀更多
如何在 Windows 使用 WSL2 建立 Linux 開發環境

如何在 Windows 使用 WSL2 建立 Linux 開發環境

隨著微軟提供 WSL2,越來越多工作環境都轉移到 WSL2 下使用 Linux 進行開發,因此記錄一下純指令在 Windows 上安裝 WSL2 並且建立 Linux 開發環境的流程。 並且附上我習慣的預設設定讓 WSL2 更加好用。

閱讀更多