![xrdp 的烦人问题](https://linux22.com/image/143996/xrdp%20%E7%9A%84%E7%83%A6%E4%BA%BA%E9%97%AE%E9%A2%98.png)
我必须安装一个基于Linux的服务器,所以在一遍又一遍地面对许多问题之后,我终于设法克服了所有这些问题
所以现在我正在配置 xrdp,乍一看,一切正常,但随后出现的问题是我根本找不到修复它的方法
在我的工作中,我们有很多计算机,其中只有 2 台运行 Linux,其余的都是 Windows,问题出在 Windows/Linux 之间的 UI 远程连接
当某人使用Windows本机远程应用程序时,那个人可以毫无问题地连接,您甚至可以通过瘦客户端与远程计算机(服务器)共享文件,但只是在第一次..
当用户结束会话时,稍后返回并开始新会话后,尝试再次打开 Thinclient_drives 时,它不起作用
用户收到以下错误:未处理的错误消息:获取文件信息时出错。端点传输未连接。
我根本没明白,因为 some1 第一次登录时,它工作得很好,你甚至可以退出远程连接,而无需结束会话并稍后再回来,一切仍然正常
但是,如果您确实完成了会话并稍后再次登录,则在服务器重新启动之前它将不再起作用
我尝试了很多东西,我首先认为这是一些隐藏的会话留下的,我什至尝试重新启动 xrdp,但问题根本没有得到解决
我也尝试过卸载,但它不允许我卸载瘦客户端
我尝试使用命令“ps aux”来查看所有正在运行的进程,并杀死了其中很多进程,试图在不重新启动的情况下修复,但没有成功
无论我多么努力,我都找不到发生了什么,我知道这可能是一些我看不到的隐藏过程或其他东西,但我不知道如何找到它,如果是这样的东西
目前唯一的解决方案是在离开远程连接时不要钓鱼会话,否则必须重新启动服务器
重新启动时,瘦客户端再次正常工作,但只有一次,然后同样的事情再次发生
关于造成这一切的原因或如何解决它有什么建议吗?
答案1
在网上寻找解决方法后,我找到了一个临时解决方案
看起来原因是ubuntu 18.04版本本身的问题
修复它的方法很简单,登录后,你应该做的第一件事就是卸载瘦客户端,我是通过终端使用
sudo umount -f thinclient_drives
之后,您必须将其重命名thinclient_drives
为.thinclient_drives
只需在前面添加一个点,它就会修复所有问题,但是,看起来 ubuntu 在完成会话时无法正确卸载,因此,您每次都必须手动卸载,这样,下次登录时它将正常工作并正确安装
我现在要尝试看看是否可以在注销之前运行某种命令,如果可以,那么我会通过设置一个命令在每次 b4 登录时卸载来修复它
答案2
vi(m)/etc/xrdp/sesman.ini
文件。
在 [Chansrv] 下添加:
FuseMountName=/tmp/%u/thinclient_drives
注销并重新登录。thinclient_drives 现在将安装在/tmp/{uid}/thinclient_drives
.
你可以rmdir thinclient_drives
在你的 homedir 中。
答案3
我喜欢这里的所有答案,对我来说,解决这个问题最有效的方法是通过使用 sed to 来查看/etc/xrdp/sesman.ini
并更改FuseMountName=thinclient_drives
为来结合这两种方法FuseMountName=.thinclient_drives
。
#!/usr/bin/env bash
#set -o errexit
set -o nounset
#set -eu -o pipefail
#set -x
#trap read debug
thinclient=$(sudo cat /etc/xrdp/sesman.ini | grep FuseMountName)
if [ -z "$thinclient" ]; then
echo 'Entry doesn'\'''t exist, adding...''
sudo sed -i '/Chansrv/a FuseMountName=.thinclient_drives' /etc/xrdp/sesman.ini
else
echo 'Entry exists, modifying...'
sudo sed -i s/"$thinclient"/FuseMountName=.thinclient_drives/g /etc/xrdp/sesman.ini
fi
注销然后重新登录后,问题应该会自行解决。