이전 버전의 RHEL(최소 RHEL5/6/7)에서는 실행 중인 vncserver(Tigervnc-server에서)를 생성하고 DISPLAY
원격 서버의 환경 변수를 vncserver로 내보내 hostname:display
다른 서버에서 X11 디스플레이를 전달할 수 있었습니다.
workstation1
예를 들어 , server1
, 및 가 있습니다 server2
. 워크스테이션1에서 ssh를 실행 server1
하고 :1에서 vncserver를 시작할 수 있습니다. SSH를 통해 단독 server2
으로 실행합니다 export DISPLAY=server1:1
. 그런 다음 server1에서 X11 응용 프로그램을 실행 server2
하고 올바른 xhost, 방화벽 및 포트 수신 설정을 가정하면 server1의 vncserver에 나타납니다.
RHEL8 및 RHEL9에서는 더 이상 그렇지 않다는 것을 알았습니다. RHEL7에서는 vncserver가 시작되면 수신기가 두 개의 별도 포트에 나타납니다. 5900+ 디스플레이 수량 쌍과 6000+ 디스플레이 수량 쌍. RHEL8 및 RHEL9에서 수신기는 5900개 이상의 모니터에만 나타납니다.
strace
vnc로 전달하려는 출력 에 따르면 xeyes
여전히 6000개 이상의 모니터에 대한 연결을 설정하려고 시도하는 것 같습니다. 시스템을 "속이기" 위해 모니터 101에서 vncserver를 실행했고 포트 6001에 리스너가 생성되었습니다 server1
. 그런 다음 xeyes를 실행해 보세요 export DISPLAY=:1
. server2
포트에 연결을 시도 6001
하지만 여전히 거부됩니다.
Error: Can't open display: server1:1
RHEL8 또는 RHEL9에서 vncserver를 실행할 때 X11 수신기를 활성화할 수 있는 방법이 있습니까? SSH를 통한 전달이 여전히 작동한다는 것을 알고 있지만 디스플레이를 내보내고 네트워크를 통해 기본 X11 전달을 사용할 수 있기를 바랍니다.
또한 관련이 있는 경우. 저는 DE로 Plasma 5를 사용합니다.
답변1
짧은 답변: 구성 파일에 추가 listen=tcp
(예: /etc/tigervnc/vncserver-config-defaults)
나는 TigerVNC git repo를 파헤쳐 본 결과를 발견했습니다.이것. 구체적으로:
나는 최근에 서버가 포트 6000에서 TCP 연결을 수신할 수 있도록 하는 유효한 항목이 "listen=tcp"라는 것을 알게 되었습니다.
vncserver를 추가 listen=tcp
하고 다시 시작했습니다. /etc/tigervnc/vncserver-config-defaults
6000개 이상의 디스플레이 포트에서 수신 대기하는지 확인했는데 그렇습니다. X11을 다시 전달하려고 하면 모든 것이 정상임을 알 수 있습니다.