關於Linux遠程桌面,比較容易想到的是利用teamview實現,不做介紹。這里使用xrdp +vnc
方案實現遠程桌面。
Ubuntu 16.04系統自帶的unity桌面不支持遠程桌面。所以需要安裝新的桌面系統xUbuntu-desktop。
-
Windows的遠程桌面基於RDP(Remote Desktop Protocol)協議,Linux下對應xrdp。RDP協議中繪制界面的任務是給客戶端的,服務器和客戶端之間傳遞的是指令。
-
大部分Linux發行版遠程應用是基於RFB(Remote Frame Buffer)協議的,對應的遠程桌面程序是VNC(Virtual Network Computing)。RFB協議主要傳圖像,服務器端將界面畫好之后,把圖像發給客戶端。
值得注意的是:
xrdp所以還需要vncserver的幫助才能實現桌面分享。xrdp啟動之后。系統會自己主動啟動一個VNC會話進程監聽服務。
xrdp會把所有通過3389端口數據都轉發到vncserver的端口上,同時vncserver只監聽127.0.0.1這個地址,vncserver的端口是不對外開放的。vncserver還為每一次遠程桌面會話分配一個系統端口。
1. 安裝桌面
sudo apt-get install xUbuntu-desktop
2. 安裝xrdp服務
sudo apt-get install xrdp
3. 安裝vnc4server tightvncserver
sudo apt-get install vnc4server tightvncserver
4. 移除unity桌面
sudo apt-get remove unity
5. 重啟系統
sudo reboot
6. 后續設置
# 允許桌面共享
sudo vino-preferences
勾選允許,如下圖:
# 寫入.xsession文件
echo xfce4-session >~/.xsession
# 重啟srdp服務
sudo service xrdp restart
7. 遠程連接
Windows系統自帶了一個遠程桌面連接。
遠程桌面服務默認端口為3389(因為是我需要通過路由器訪問服務器,所以做了端口映射,截圖顯示是23389端口),連接的方式如下:
ip地址 : 端口號
也可以使用MobaXterm遠程管理軟件中的RDP會話:
備注
- 當新增用戶遠程桌面連接出現桌面閃退時,將一個用戶的/home/username/.xsession文件拷貝至該用戶下即可。
- MobaXterm是個相當優秀的linux服務器遠程登陸工具,推薦使用。