--- title: 【軟體】MobaXTerm 遠端連線軟體 tags: TTennis Pickup Robot disqus: hackmd --- <h1 style="text-align: center; color: orange;"> 🛠️ 【軟體】網路設定、連線 🛠️ </h1> <h2 style="text-align: center; color: skyblue;">MobaXTerm 遠端連線軟體</h2> <center> [官方介紹 MobaXterm Features](https://mobaxterm.mobatek.net/features.html) ![image](https://hackmd.io/_uploads/SkHjs63cA.png =90%x) 介面大概長這樣,功能非常非常多。 注意這是 Windows 軟體,我這裡只介紹兩個比較常用ㄉ </center> </br> --- <h3><font color="magenza">1. 掃描所有 ip </font></h3> * Tools -> Network Scanner -> Start Scan。 ![image](https://hackmd.io/_uploads/Bk87pah5A.png =90%x) </br> <h3><font color="magenza">2. 遠端 GUI</font></h3> Linux 要訪問 Linux 設備,SSH 只需要 `-X` 參數就解決了。 但 Windows 配置 X Server 會稍微麻煩,而 MobaXTerm 會自動處理好這些。 </br> <center> :::success **這裡 GUI 會用 linux 中的 x11-apps。 安裝:`sudo apt update && sudo apt install x11-apps`** ::: </center> * <font color="yellow">step 1. MobaXTerm SSH 至遠端裝置</font> * <font color="yellow">step 2. 查詢 DISPLAY 端口:`echo ${DISPLAY}`</font> ![image](https://hackmd.io/_uploads/HJPFy0nqC.png =80%x) * <font color="yellow">step 3. export DISPLAY 端口:`export DISPLAY=localhost:xx.0`</font> 例如在 VSCode 運行程式並需要 GUI,可以背景執行 MobaXTerm。 然後把 DISPLAY 窗口 export 到 VSCode 裡的終端機當中。 ![image](https://hackmd.io/_uploads/Sy6SlRn9A.png =80%x) :::warning 如果是 Container 中需要 GUI: 1. docker compose 須配置對應參數,如 .Xauthority 可以參考 [compose.yml 細節](/@925/compose)。 2. 開啟 Container 的終端機就須配置 DISPLAY,不能等到進入容器才配置。 當然,容器內的終端也需要配置 DISPLAY。 3. 開啟 Container 後,需要在主機中設定 `xhost +local:docker`。 可以參考以下 shell script 範例: ```sh= export DISPLAY=:0 xhost +local:docker docker compose -p rtabmap build docker compose -p rtabmap up -d ``` ::: </br> <h3><font color="magenza">遠端 GUI 原理 </font></h3> X Window 系統(X11)是一個通用的圖形顯示協議。 * **X Server**:處理顯示和用戶輸入。它通常運行在顯示器所連接的計算機上。 * **X Client**:運行在遠程計算機上,通過 X 協議請求 X Server 渲染圖形界面。 * **DISPLAY 環境變數**:當 X client 啟動時,它需要知道要將圖形界面顯示到哪個 X server 上,而 DISPLAY 環境變數指定了 X server 的地址。 例如 `localhost:10.0` 表示本地的 X server。 所以如果今天有多台裝置都用 MobaXTerm 連到同台裝置,每個人都會被分配到不同的 DISPLAY 號。如果設置錯誤,有可能你運行的 GUI 介面跑到別人的螢幕上喔 ~