문제: GDM/KDE는 기본적으로 CentOS 8에서 DISPLAY:0 대신 DISPLAY:1을 사용합니다. CentOS 7에서처럼 DISPLAY:0을 사용하고 싶습니다. 이는 x11vnc에 영향을 미치고 시스템에 대한 VNC를 더욱 골치 아프게 만듭니다(현재 로그인 화면에 VNC를 전혀 사용할 수 없습니다).
이전/작업 버전
- 운영체제 7
- KDE SC 버전 4.14.8
- GDM 버전 3.28.2
이전 시스템에 SSH로 접속하고 x11vnc를 실행하면 다음을 볼 수 있습니다. 0은 DISPLAY입니다.
$ w -us
USER TTY FROM IDLE WHAT
user :0 :0 ?xdm? /bin/sh /usr/bin/startkde
깨진/새 버전
- CentOS 스트림 8
- KDE 플라즈마 버전: 5.18.4
- GDM 버전 40.0
새 시스템에 SSH로 연결하고 x11vnc를 실행하면 다음을 볼 수 있습니다. 1은 DISPLAY입니다.
$ w -us
USER TTY FROM IDLE WHAT
user :1 :1 ?xdm? /usr/libexec/gdm-x-session --register-session --run-script /usr/bin/startplasma-x11
user pts/0 :1 46:05 kded5
이제 CentOS 8의 로그인 세션에서 x11vnc를 시작하려면 를 실행해야 합니다. x11vnc -display :1
이는 큰 문제는 아니며 약간 짜증나고 일부 스크립트에 영향을 줍니다. 더 큰 문제는 현재 VNC를 통해 로그인 화면에 접근할 수 없다는 점입니다. off 변형을 사용 ssh -X
x11vnc -display :1
하고 루트로 실행하는 등의 작업을 수행합니다.
둘 다 정확히 동일한 SSH 구성(X11 전달 등)을 갖습니다.
편집하다:
VNC를 통해 로그인 화면으로 이동하는 중 오류 발생:
~> ssh user@centos8
$ echo $DISPLAY
$ x11vnc # this works on CentOS 7 w/ and w/o X11 forwarding
...
10/06/2021 16:28:55 *** XOpenDisplay failed. No -display or DISPLAY.
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59 XOpenDisplay(":0") failed.
10/06/2021 16:28:59 Trying again with XAUTHLOCALHOSTNAME=localhost ...
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59 XOpenDisplay(":0") failed.
10/06/2021 16:28:59 Trying again with unset XAUTHLOCALHOSTNAME ...
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59
...
10/06/2021 16:28:59 ***************************************
10/06/2021 16:28:59 *** XOpenDisplay failed (:0)
...
$ x11vnc -display :1
10/06/2021 16:30:16 *** XOpenDisplay failed (:1)
$ exit
~> ssh -X user@centos8
$ echo $DISPLAY
localhost:10.0
$ x11vnc
...
10/06/2021 16:24:16 WARNING: DISPLAY starts with localhost: 'localhost:10.0'
10/06/2021 16:24:16 WARNING: Is this an SSH X11 port forwarding? You most
10/06/2021 16:24:16 WARNING: likely don't want x11vnc to use that DISPLAY.
10/06/2021 16:24:16 WARNING: You probably should supply something
10/06/2021 16:24:16 WARNING: like: -display :0 to access the physical
10/06/2021 16:24:16 WARNING: X display on the machine where x11vnc is running.
...
X11 MIT Shared Memory Attach failed:
Is your DISPLAY=localhost:10.0 on a remote machine?
Note: DISPLAY=localhost:N suggests a SSH X11 redir to a remote machine.
Suggestion, use: x11vnc -display :0 ... for local display :0
caught X11 error:
10/06/2021 16:24:17 deleted 53 tile_row polling images.
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 130 (MIT-SHM)
Minor opcode of failed request: 1 (X_ShmAttach)
Serial number of failed request: 56
Current serial number in output stream: 111
$ x11vnc -display :1
...
10/06/2021 16:26:16 *** XOpenDisplay failed (:1)
...
루트로 실행할 때 비슷한 오류 발생
답변1
CentOS7 gdm-3.28.2-26.el7.x86_64.rpm 및 pulseaudio-gdm-hooks-10.0-6.el7_9.x86_64.rpm을 사용하여 Rocky Linux 8(8.4)에 이것을 다운로드하여 설치(다운그레이드)했습니다. 두 패키지: dnf gdm-3.28.2-26.el7.x86_64.rpmpulseaudio-gdm-hooks-10.0-6.el7_9.x86_64.rpm 설치
이 약간 오래된 버전의 gdm은 "DISPLAY:0"을 사용하며 x11vnc를 사용하여 로그인 화면에 로그인할 수 있습니다. gdm에 어떤 종속성이 있고 어떤 부작용이 발생할 수 있는지 잘 모르겠습니다. 운영 체제를 업데이트하면 "DISPLAY :1"을 사용하여 최신 gdm 버전의 Rocky Linux 8이 다시 설치됩니다.
답변2
저도 똑같은 문제가 있는데 정말 짜증나네요. 내 무차별 대입 솔루션은 VNC를 스크립트로 래핑하고 :0 및 :1을 표시하는 것이었습니다. :0은 항상 로그인 화면이고, :1은 항상 그놈 세션입니다. 이렇게 하면 워크스테이션에 VNC하여 로그인할 수 있습니다. 그런 다음 VNC 세션이 종료되고 다시 시작해야 데스크탑을 볼 수 있습니다. 로그오프하면 X도 종료되므로 VNC 세션이 다시 종료됩니다.
그것은 마치,
(
while true; do
for displayNum in {0..1} ; do
if ! pgrep -f "x11vnc -repeat -display" > /dev/null; then
currentUserId=$(pgrep -x gnome-shell |
xargs --no-run-if-empty ps -ho uid |
awk '{print $1}')
x11vnc -repeat -display ":${displayNum}" -rfbport 5900 \
-shared -auth /run/user/${currentUserId}/gdm/Xauthority \
-forever
sleep 0.5
else
sleep 10
fi
done
done
) &