此方法采用的xrdp原生方案,优点兼容性比较好。
- 安装xrdp
sudo apt install xrdp #最高权限安装xrdp
- 修改配置
nano /etc/xrdp/startwm.sh #使用nano命令编辑'startwm.sh'
把最下面的test和exec两行注释掉,添加一行’gnome-session’,配置文件参考如下:
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence
if test -r /etc/profile; then
. /etc/profile
fi
if test -r /etc/default/locale; then
. /etc/default/locale
test -z "${LANG+x}" || export LANG
test -z "${LANGUAGE+x}" || export LANGUAGE
test -z "${LC_ADDRESS+x}" || export LC_ADDRESS
test -z "${LC_ALL+x}" || export LC_ALL
test -z "${LC_COLLATE+x}" || export LC_COLLATE
test -z "${LC_CTYPE+x}" || export LC_CTYPE
test -z "${LC_IDENTIFICATION+x}" || export LC_IDENTIFICATION
test -z "${LC_MEASUREMENT+x}" || export LC_MEASUREMENT
test -z "${LC_MESSAGES+x}" || export LC_MESSAGES
test -z "${LC_MONETARY+x}" || export LC_MONETARY
test -z "${LC_NAME+x}" || export LC_NAME
test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
test -z "${LC_PAPER+x}" || export LC_PAPER
test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
test -z "${LC_TIME+x}" || export LC_TIME
test -z "${LOCPATH+x}" || export LOCPATH
fi
if test -r /etc/profile; then
. /etc/profile
fi
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
gnome-session
- 重启xrdp服务或者机子重启
service xrdp restart #重启xrdp服务
xrdp的配置
文档在/etc/xrdp目录下的xrdp.ini和sesman.ini
xrdp.ini 关键部分在globals
[globals]
bitmap_cache=yes #位图缓存
bitmap_compression=yes #位图压缩
port=3389 #监听端口
crypt_level=low #加密程度(low为40位,high为128位,medium为双40位)
channel_code=1 #不知道是什么
sesman.ini
[Globals]
ListenAddress=127.0.0.1 #监听ip地址(默认即可)
ListenPort=3350 #监听端口(默认即可)
EnableUserWindowManager=1 #1为开启,可让用户自定义自己的启动脚本
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=1 #允许root登陆
MaxLoginRetry=4 #最大重试次数
TerminalServerUsers=tSUSErs #允许连接的用户组(如果不存在则默认全部用户允许连接)?
TerminalServerAdmins=tsadmins #允许连接的超级用户(如果不存在则默认全部用户允许连接)?
[Sessions]
MaxSessions=10 #最大会话数
KillDisconnected=0 #是否立即关闭断开的连接(如果为1,则断开连接后会自动注销)
IdleTimeLimit=0 #空闲会话时间限制(0为没有限制)
DisconnectedTimeLimit=0 #断开连接的存活时间(0为没有限制)
[Logging]
LogFile=./sesman.log #登陆日志文件
LogLevel=DEBUG #登陆日志记录等级(级别分别为,core,error,warn,info,debug)
EnableSyslog=0 #是否开启日志
SyslogLevel=DEBUG #系统日志记录等级
注意
因Ubuntu root账号默认无法登陆需修改,所远程之前建议先开启此功能。开启方法可看《Ubuntu修改root默认登陆》