1. 程式人生 > >ubuntu系統共享桌面的使用和配置

ubuntu系統共享桌面的使用和配置

> 內容轉載自[我的部落格](https://blog.whuzfb.cn/blog/2020/08/17/ubuntu_desktop_sharing/) [TOC] ## 1. ubuntu共享桌面 在ubuntu桌面發行版開啟`螢幕共享`功能,步驟如下: ```txt 設定-->共享-->螢幕共享 開啟總開關 允許連線控制螢幕 需要密碼(自己設定密碼,最多8位) 網路開啟 設定-->共享-->遠端登入 開啟總開關 ``` 檢視當前使用者佔用的共享桌面埠`lsof -i:5900` ```text zfb@my-Server:~/build$ lsof -i:5900 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vino-serv 4308 zfb 11u IPv6 12350285 0t0 TCP *:5900 (LISTEN) vino-serv 4308 zfb 12u IPv4 12350286 0t0 TCP *:5900 (LISTEN) ``` 本使用者只能看到自己佔用的埠,一般從`5900`開始,一個使用者佔用一個,只有開啟共享的使用者才佔用。例如,使用者`root1`和使用者`zfb`都開啟了共享,則使用者`zfb`執行命令`lsof -i:5900`、`lsof -i:5901`和`lsof -i:5902`,只有一個命令有返回結果,即自己佔用的那個埠。但是,使用命令`ss -lnt`可以看到`5900-5902`埠都在被佔用,只是無法看到具體程序和使用者 ## 2. 區域網登入遠端桌面 ### 2.1 ubuntu使用remmina登入遠端桌面 開啟軟體`remmina`,選擇`VNC`協議,輸入要連線的機器的地址`192.168.10.11:5900`(附帶埠),然後會提示輸入密碼,這裡要輸入`5900`埠對應的那個使用者的密碼(共享桌面密碼,不是使用者密碼),即可成功看到桌面。 ### 2.2 在windows登入遠端桌面 下載[vnc viewer](https://www.realvnc.com/en/connect/download/viewer/windows/)並安裝,開啟軟體,根據提示輸入ip地址`192.168.10.11:5900`,如果提示加密策略不一致。那麼需要回到開啟桌面共享的ubuntu機器上,輸入以下命令關閉加密即可 `gsettings set org.gnome.Vino require-encryption false` 或者安裝`dconf-editor`工具進行配置,輸入以下命令即可安裝: `sudo apt-get install dconf-editor` 然後桌面搜尋`dconf-editor`開啟,依次展開`org->gnome->desktop->remote-access`,然後取消`requlre-encryption`的勾選即可 ### 2.3 Android使用RD Client登入遠端桌面 下載安裝`Microsoft Remote Desktop`軟體,開啟軟體新增`Desktop`,設定`PC name`為`192.168.10.11:5900`,`Additional Options`根據需要設定,然後儲存,單擊即可連線 ## 3. 外網登入遠端桌面 ### 3.1 方法一 前提: * 可以在外網使用ssh訪問內網的ubuntu機器(比如使用frp進行內網穿透,公網雲主機的ip為`56.78.12.34`,這臺內網伺服器的`frpc.ini`檔案中配置的遠端ssh埠為`7001`) * 內網ubuntu伺服器已經開啟桌面共享 使用如下程式碼通過公網雲主機ssh遠端連線到內網的ubuntu伺服器,並且把伺服器的5901埠對映到使用者本地的8080埠 `ssh -p 7001 -NL localhost:8080:localhost:5900 [email protected]` 此命令無回顯輸出,使用者直接使用支援vnc的軟體在本地開啟即可,遠端地址填寫為`127.0.0.1:8080`,根據提示輸入密碼(內網ubuntu機器開啟桌面共享時設定的密碼) **特點:** 此方法可以使用`zfb`的使用者名稱和密碼檢視其他使用者(例如`root`)的遠端桌面,命令如下 `ssh -p 7001 -NL localhost:8080:localhost:5901 [email protected]` 相比上一條命令,只是修改為5901埠(`root`使用者的監聽埠) ### 3.2 方法二 使用frp轉發此埠(遠端桌面監聽的埠,一般從5900開始),具體方法為: * 若已配置過frp轉發ssh內網穿透,則雲主機的`frps.ini`不需要任何變化 * 此方法的所有修改僅限於內網機器的`frpc.ini`檔案,在檔案中新增以下內容: ```ini [rdp] type = tcp local_ip = 127.0.0.1 # 假如只需要轉發佔用5901埠的使用者的桌面 local_port = 5900 # 可以任意設定公網雲主機的埠,不要與其他服務衝突即可 remote_port = 9901 ``` * 公網雲主機安全策略要放通9901埠 使用者直接使用支援vnc的軟體在本地開啟即可,遠端地址填寫為`56.78.12.34:9901`,根據提示輸入密碼(內網ubuntu機器開啟桌面共享時設定的密碼) **注意:** 2、3和4都只能在使用者登入之後(顯示屏上的桌面為該使用者時)才能顯示畫面,否則不行 ## 4. 安裝xrdp實現多使用者登入遠端桌面 根據[教程](https://c-nergy.be/blog/?p=14888),下載[壓縮包](http://c-nergy.be/downloads/xRDP/xrdp-installer-1.2.zip)解壓得到指令碼,(最好在`root`使用者)執行即可。然後登出桌面環境,此時即可通過3389埠利用rdp協議登入xorg桌面,多個使用者都可以登入,且可以同時登入,但是物理機器要保留在登入介面 **注意:** 同一個使用者,本地和遠端同時只能登入一個 此步驟與前面不衝突,是一種新的方法(也許依賴第一步),VNC仍然需要登入才可用 使用frp對本地3389埠進行內網穿透,只需要修改frp客戶端配置 ```ini [rdp] type = tcp local_ip = 127.0.0.1 # 假如只需要轉發佔用3389埠的使用者的桌面 local_port = 3389 # 可以任意設定公網雲主機的埠,不要與其他服務衝突即可 remote_port = 6689 ``` 在遠端桌面遇到終端報錯`Transport endpoint is not connected`,且看到桌面有`thinclient_drives`驅動器時的解決辦法 可以使用程式碼`sudo umount -f thinclient_drives`來解決,但是此時共享剪下板和跨裝置複製貼上檔案就不能用了 最好可以重新登陸一次,也許就正