这是我的 xrdp 配置:
[Globals]
ini_version=1
fork=true
port=3389
use_vsock=false
tcp_nodelay=true
tcp_keepalive=true
security_layer=negotiate
crypt_level=high
certificate=
key_file=
ssl_protocols=TLSv1.2, TLSv1.3
autorun=
allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
max_bpp=128
use_compression=yes
new_cursors=true
use_fastpath=both
blue=009cb5
grey=dedede
ls_top_window_bg_color=009cb5
ls_width=350
ls_height=430
ls_bg_color=dedede
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50
ls_label_x_pos=30
ls_label_width=65
ls_input_x_pos=110
ls_input_width=210
ls_input_y_pos=220
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30
[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=true
SyslogLevel=DEBUG
[Channels]
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
我正在尝试用 mstsc 连接到这台机器(这是在重新启动电脑后,没有人登录):
在此登录框中,不会发生断开连接:
在我输入正确的登录名/密码后,我首先出现黑屏,然后关闭 mstsc 窗口。我尝试从 KDE 远程连接应用程序连接,但它也以同样的方式失败。xrdp.log 似乎不包含任何有趣的内容:
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
[20190606-04:14:36] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20190606-04:14:36] [DEBUG] return value from xrdp_mm_connect 0
[20190606-04:14:36] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC started connecting
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC connecting to 127.0.0.1 5910
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC tcp connected
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC security level is 2 (1 = none, 2 = standard)
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC password ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending share flag
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving server init
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving pixel format
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving name length
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving name
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending pixel format
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending encodings
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending framebuffer update request
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending cursor
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC connection complete, connected ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: connected ok
[20190606-04:14:36] [DEBUG] xrdp_mm_connect_chansrv: chansrv connect successful
[20190606-04:14:36] [DEBUG] Closed socket 18 (AF_INET 127.0.0.1:47744)
[20190606-04:14:37] [DEBUG] Closed socket 20 (AF_UNIX)
[20190606-04:14:37] [DEBUG] Closed socket 12 (AF_INET 127.0.0.1:3389)
[20190606-04:14:37] [DEBUG] xrdp_mm_module_cleanup
[20190606-04:14:37] [DEBUG] VNC mod_exit
[20190606-04:14:37] [DEBUG] Closed socket 19 (AF_INET 127.0.0.1:40224)
我该如何解决?
尝试这个:
停止xrdp
sudo service xrdp stop
编辑 xrdp 启动脚本:
sudo nano /etc/xrdp/startwm.sh
在这个文件中,替换行
和
startxfce4
#
(您可以通过在开头添加来注释掉行)重启xrdp
sudo service xrdp start
选择 Xrdp 作为会话,然后登录。
我自己解决了这个问题,希望其他人会发现它有用。我看了一下 ~/.xsession-errors,它包含:
然后我用谷歌搜索了一个根本原因,miniconda 安装破坏了 .bashrc 文件中的 PATH,我删除了这一行并修复了它:
更新:后来我发现x2go,它的工作方式比 XRDP 更可靠、更快。
sudo apt-get update
sudo apt install xrdp
sudo apt-get install xserver-xorg-core
sudo apt-get install xorgxrdp
nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
将下面的 polkit 复制到
02-allow-colord.conf
sudo ufw allow 3389/tcp
sudo /etc/init.d/xrdp restart
sudo systemctl status xrdp
sudo systemctl enable xrdp
注销您的会话。
尝试使用 RDP
您尝试使用的用户帐户,他们是
sudo
或wheel
组的成员吗?使用 Kali 2020 版本,任何不属于其中的用户sudo
都会立即断开连接,我必须终止该用户的所有进程 (pkill -u <username>
),然后删除该用户帐户并重新创建它。当我有时间时,我仍在追查发生这种情况的确切原因。但我想我分享我的经验。您必须执行以下附加操作:
要配置 Xrdp,首先添加
到配置文件的末尾
或者使用以下命令将“exec gnome-session”添加到“/etc/xrdp/xrdp.ini”配置文件的末尾
重新启动 xrdp 以加载新配置
参考: How to: Install Xrdp (Remote Desktop) on CentOS 8 – (How to: Use Windows to remote control CentOS 8)
我在尝试连接到在红帽企业 Linux 7 上运行 xrdp 的工作机器时遇到了这个问题。我在远程机器上的主文件夹中的基本环境中安装了 miniconda 和 datalad,这破坏了 Windows 远程桌面。解决方案出奇地简单。我卸载了datalad并通过SSH在新环境中重新安装了它。然后我可以通过 Windows 远程桌面重新连接到机器,没有任何问题。
在过去的几年里,我花了很多天来解决从 Windows 10 PC 访问 Linux 服务器的间歇性问题。服务器 xrdp.ini 修改的不同方法似乎可以解决问题,但不是永久的。在新的 RHEL8 和 Centos8 安装失败后,所有的 PC RDP 登录都失败了,我观察到以下常见错误。在 PC 失败后,从同一台 PC 的“半”成功重新登录中观察到的错误是可观察到的,
systemctl status xrdp
其中显示了一系列失败的项目。但是,当使用屏幕、键盘和鼠标直接在服务器上观察时(我旁边有戴尔 R430),systemctl status xrdp
,看起来很干净,没有问题。每次使用 Xvnc 重新登录到 RDP,显然都会启动一个单独的 rdp 会话/进程。我得出的结论是,问题出在 PC 上,而且不知何故是 SSL 故障。它在 PC 上一直存在,直到重新启动。服务器不需要重新启动。当然,重新启动 PC 是不切实际的,但它屡屡成功。我也解决了这个问题,而且,似乎仅仅安装 xrdp 包是不够的,因为(1)依赖包不会被安装,(2)startwm.sh 问题。我没有找到完美的解决方案。我注意到其他答案之一是使用我想使用的 xfce4。最后,我默认了更轻量级的东西,即icewm,即
而且,实际上,我的
startwm.sh
脚本顶部有以下内容,即我已经规避或替换了默认行为: