基本环境说明
我的是Centos 7 mini 或者 Ubuntu最小化安装,想通过mstsc连接到xrdp,再通过xrdp连接到 Centos 7 mini,不安装桌面,只打开 xterm
1、安装依赖
Centos
yum install -y epel-release
yum install -y xrdp xorgxrdp xterm
Ubuntu
apt-get install -y xrdp xorgxrdp xserver-xorg-core xterm
2、修改进入xrdp的开机启动项
echo xterm >> ~/.xsession
chmod 777 ~/.xsession
.xsession 是家目录里的,每个用户可以配置自己的默认启动应用
需要显示桌面的,.xsession 这里写的是桌面程序,可能需要做额外配置(如安装桌面,写配置文件等),这里不做深究
比如Centos mini需要安装
yum groupinstall -y "X Window System"
yum groupinstall -y "GNOME Desktop"
Ubuntu mini 需要安装 (貌似最新的Ubuntu没有无桌面版本,mini都是第三方的制作的)
apt install lxde-core
3、启动两个服务,关闭防火墙
systemctl restart xrdp
systemctl restart xrdp-sesman
# Ubuntu 好像没有防火墙
systemctl stop firewalld
现在可以通过mstsc连接到3389端口到 Centos 7 或者 Ubuntu 的xterm程序
4、关于配置文件
# xrdp主程序,核心服务
vim /etc/xrdp/xrdp.ini
# sesman,管理linux用户认证以及X11转发
vim /etc/xrdp/sesman.ini
sesman.ini 可以配置启动Xvnc或者Xorg的参数,比如我想给Xvnc加个5秒钟断连,就是追加(Xvnc的参数可以使用 Xvnc -help 查看)
[Xvnc]
param=-MaxDisconnectionTime
param=5
Xorg的断连配置在
[Sessions]
KillDisconnected=true
DisconnectedTimeLimit=1
xrdp.ini 配置文件里面有个 [Xvnc] 和 [Xorg],[Xorg] 正常是被注释的,我们可以打开它,mstsc连上去界面上就会出现 [Xorg] 的选项
改了配置文件记得重启服务
具体区别我也不是很清楚,只是知道 Xvnc 和 Xorg 都是xrdp需要拉起的程序,Xvnc是TigerVNC团队写的,然后Xorg是xrdp团队写的,xorg的使用需要安装 xorgxrdp
Xorg特征官方机翻
xorgxrdp 支持屏幕大小调整。当 RDP 客户端连接时,屏幕将调整为客户端提供的大小。
xorgxrdp 在内部使用每像素 24 位。xrdp 根据请求为 RDP 客户端转换颜色深度。即使 RDP 客户端使用不同的颜色深度,它们也可以断开连接并重新连接到同一会话。
5、关于日志文件
cat /var/log/xrdp.log
cat /var/log/xrdp-sesman.log
cat ~/.xsession-errors
6、排查故障
a、查看 .xsession-errors 报错
X connection to :21.0 broken (explicit kill or server shutdown).
这个是没有创建 .xsession ,参考步骤2
b、查看 .xsession-errors 报错
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":21.0"
after 8 requests (8 known processed) with 0 events remaining.
XIO: fatal IO error 2 (没有那个文件或目录) on X server ":21.0"
after 11 requests (11 known processed) with 0 events remaining.
这个是 .xsession 没有执行权限 ,参考步骤2
7、环境变量
环境变量可能需要修改
vim /etc/xrdp/startwm.sh
参考
vnc xrdp远程桌面,环境变量未加载的问题_lightliubo的博客-CSDN博客
http://hichenwang.blogspot.com/2014/08/setup-environment-variables-for-xrdp-in.html
8、其他
vnc 断连
Xvnc断连比较麻烦,虽然会话断连,但是tmp的临时文件还在,还需要清理临时文件,不然会占着端口
linux - How to find disconnected xrdp sessions? - Server Fault
vnc - What is the correct way to kill a vncsession in linux? - Super User
还有关于 thinclient_drives 目录
d?????????? ? ? ? ? ? thinclient_drives
这个目录是关于驱动器、剪切板的,不用的话可以直接
sudo umount $HOME/thinclient_drives
或者修改 xrdp.ini ,将allow_channels 设置为 false ,不允许channel
参考
http://catch22cats.blogspot.com/2018/05/xrdp-creates-strange-directory-called.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)