关于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服务器远程登陆工具,推荐使用。