i3 창 관리자를 사용하여 Arch Linux에서 xrdp가 작동하지 않습니다.

i3 창 관리자를 사용하여 Arch Linux에서 xrdp가 작동하지 않습니다.

새로 Arch Linux를 설치했는데,

[0s] $ uname -a
Linux fermata 4.8.11-1-ARCH #1 SMP PREEMPT Sun Nov 27 09:26:14 CET 2016 x86_64 GNU/Linux

xrdp를 설치하고 활성화하고 시작했습니다.

systemctl --type="server"
...
xrdp-sesman.service     loaded active running xrdp session manager
xrdp.service            loaded active running xrdp daemon

vncserver도 실행 중입니다.:0

[0s] $ vncserver -list

TigerVNC server sessions:

X DISPLAY # PROCESS ID
:0          615

수신 대기 중인 포트는 다음과 같습니다.

[0s] $ sudo lsof -Pi | grep LISTEN
...
sshd       361 root    3u  IPv4  15595      0t0  TCP *:22 (LISTEN)
sshd       361 root    4u  IPv6  15597      0t0  TCP *:22 (LISTEN)
xrdp-sesm  370 root    7u  IPv4  15228      0t0  TCP localhost.localdomain:3350 (LISTEN)
xrdp       375 root    7u  IPv4  16056      0t0  TCP *:3389 (LISTEN)
Xvnc       615 mark    4u  IPv4  14285      0t0  TCP *:5900 (LISTEN)
Xvnc       615 mark    5u  IPv6  14286      0t0  TCP *:5900 (LISTEN)
...

macOS Sierra에서 Arch 박스에 연결하려고 하므로 Microsoft Remote Desktop(버전 8.0.36(빌드 27228))을 다운로드하여 설치하고 Arch 박스의 IP 주소와 내 Arch 사용자 계정을 지정하는 프로필을 생성했습니다. 비밀번호.

연결을 시도하면 다음 메시지가 포함된 회색 상자가 나타납니다.

connecting to sesman ip 127.0.0.1 port 3350
sesman connect ok
sending login info to session manager, please wait...
xrdp_mm_process_login_response: login successful for display 10
VNC started connecting
VNC connecting to 127.0.0.1 5910
VNC error - problem connecting

로그인이 성공한 것을 확인 display 10하고 :0 대신 :10에서 VNC를 실행해야 한다고 생각하여 :0 세션을 종료하고 :10에서 새 세션을 요청했습니다. 위와 같은 오류가 발생합니다.

...
xrdp_mm_process_login_response: login successful for display 11
...

다음은 로그의 출력입니다.

[0s] $ journalctl -f -u xrdp
-- Logs begin at Sat 2016-12-03 20:28:10 CST. --
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC Error after security negotiation
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC error before sending share flag
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC error before receiving server init
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC error before receiving pixel format
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC error before receiving name length
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC error before receiving name
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] xrdp_mm_module_cleanup
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[DEBUG] VNC mod_exit
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[INFO ] An established connection closed to endpoint: NULL:NULL - socket: 12
Dec 06 08:05:25 fermata XRDP[4451]: (4451)(139899817027328)[INFO ] An established connection closed to endpoint: 127.0.0.1:3350 - socket: 11

iptables가 비어 있습니다.

[3s] $ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

그 과정에서 홈 디렉토리에 a .Xclient및 a 파일을 추가하고 다음 파일을 시도했습니다 ..xsessiongnome-sessioni3-session

또한 백업 복사본을 만들고 /etc/xrdp/startwm원본을 다음으로 변경했습니다.

#!/bin/sh
gnome-session

나는 또한 시도했는데 여기 i3-sessionxfce-session다른 환경이 설치되어 있습니다.

`.vnc/fermata:10.log를 추적하면 다음이 표시됩니다.

** (nm-applet:4314): WARNING **: atk-bridge: GetRegisteredEvents returned message with unknown signature

** (nm-applet:4314): WARNING **: AT-SPI: Could not obtain desktop path or name


** (nm-applet:4314): WARNING **: AT-SPI: Could not obtain desktop path or name

polybars launched...
polybar|error  Monitor "HDMI2" not found or disconnected
polybar|error  Monitor "HDMI2" not found or disconnected

polybar내 i3 설정의 일부이므로 VNC는 최소한 내가 궁극적으로 원하는 세션을 가리킵니다.

분명히 xrdp와 VNC 사이에 몇 가지 핵심 부분이 누락되었습니다. 나는 그 조각이 무엇인지 모른다.

답변1

vnc 세션을 미리 시작할 필요는 없습니다. xrdp가 자동으로 이를 수행합니다(그래서 :0을 시작하면 :10에 시작하고 :10을 시작하면 :11에 시작합니다).

창 관리자는 일반적으로 $HOME/.xsessionrc에 있습니다.

.xsessionrc가 종료되면 VNC 세션도 종료됩니다. 오류를 방지하기 위해 할 수 있는 한 가지 방법은 창 관리자 대신 /usr/bin/xterm을 실행해 보는 것입니다. 이렇게 하면 "내 창 관리자가 실행되고 있습니까?"라는 모든 복잡성이 제거됩니다. 화면에 xterm만 표시되면 xrdp 프로세스가 실행 중이고 창 관리자 문제를 해결하고 있는 것입니다.

관련 정보