之前测试过xfce4桌面,但是其实ubuntu16.04.1默认的unity桌面也是可以的.首先需要安装 tigervncserver_1.6.80
wget -c http://www.c-nergy.be/downloads/tigervncserver_1.6.80-4_amd64.zip #下载
unzip tigervncserver_1.6.80-4_amd64.zip #解压
sudo apt install ./tigervncserver_1.6.80-4_amd64.deb #安装,自动解决依赖
然后安装xrdp
sudo apt install xrdp
修改xrdp配置文件/etc/xrdp/startwm.sh,解决xrdp远程后无图像,无顶栏的问题..
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
/usr/lib/gnome-session/gnome-session-binary --session=ubuntu &
/usr/lib/x86_64-linux-gnu/unity/unity-panel-service &
/usr/lib/unity-settings-daemon/unity-settings-daemon &
for indicator in /usr/lib/x86_64-linux-gnu/indicator-*;
do
basename=`basename ${indicator}`
dirname=`dirname ${indicator}`
service=${dirname}/${basename}/${basename}-service
${service} &
done
. /etc/profile
unity
. /etc/X11/Xsession
修改 /etc/pam.d/sesman 文件,添加两行,解决环境变量不全的问题
#%PAM-1.0
session required pam_env.so readenv=1 envfile=/etc/environment
session required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
@include common-account
@include common-session
@include common-password
添加配置文件 /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” ||
action.id == “org.freedesktop.color-manager.create-profile” ||
action.id == “org.freedesktop.color-manager.delete-device” ||
action.id == “org.freedesktop.color-manager.delete-profile” ||
action.id == “org.freedesktop.color-manager.modify-device” ||
action.id == “org.freedesktop.color-manager.modify-profile”) &&
subject.isInGroup(“{users}”)) {
return polkit.Result.YES;
}
});
重启服务
sudo service xrdp restart
sudo service polkitd restart
连接成功后如下图显示
可以看到有正常的顶栏(任务栏,可以用来注销当前用户),而且环境变量也是正确的.系统的版本是Ubuntu16.04.1
以上就是ubuntu16.04 安装xrdp 的步骤.
但是在实际使用中发现存在以下严重问题
相同的账户并不能共享画面,即用ip(192.168.1.3),账号test,连接远程桌面;然后再用ip(192.168.1.4)账号test,连接远程桌面.这两个画面可以同时显示,且不一样,但都是相同的 test账号的.这与微软的远程桌面不一致.微软的远程桌面同一个账号只能有一个画面,后来登录者会踢掉前者的画面.相同账号具有排他性.所以对于不想麻烦的同学,推荐一个写好的脚本.网站在这里
http://c-nergy.be/blog/?p=11719,我测试的 是
http://www.c-nergy.be/downloads/install-xrdp-1.9.2.zip
因为脚本使用git,所以不同时间拉取的代码可能不一样.我测试发现,默认运行后并不能远程桌面访问,会提示 发生身份验证错误,给函数提供的标志无效
查询后得知,需要修改 /etc/xrdp/xrdp.ini
; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1
将默认的 TLSV1.3修改为TLSv1或者用逗号分隔后添加 TLSv1
之后就可以正常的远程访问桌面,并且相同账号只能有一个画面,方便在不同的地方远程使用.
But,再次测试发现,通过 mstsc 看到的画面 和直接在服务器上登录相同的账号看到的画面不一致,也就是说相同的账号最多有两个画面,一个服务器本地登录的画面,一个远程桌面的画面.以上的脚本基本满足要求了.和windows的还是不一致.windows 相同的账号只有一个画面不区分本地和远程桌面.