원격 컴퓨터에서 X 프로그램을 시작하려고 하면 "디스플레이를 열 수 없습니다"

원격 컴퓨터에서 X 프로그램을 시작하려고 하면 "디스플레이를 열 수 없습니다"

2개의 가상 머신이 있는데 하나는 CentOS 7을 실행하고 다른 하나는 CentOS 6.5를 실행합니다. CentOS 6.5 가상 머신에서 애플리케이션을 실행하고 7 가상 머신에 표시하고 싶습니다.

ssh -X(또는 )을 사용할 수 없습니다 -Y. 사용해야 xeyes -display host:displaynumber하지만 지금은 작동하게 할 수 없습니다.

6.5VM에서 시도한 것은 다음과 같습니다.xeyes -display 192.168.1.20:0

다음 메시지가 나타납니다.

No protocol specified
Error: Can't open display: 192.168.1.20:0

그러나 ssh -X 192.168.1.20(6.5VM에서) 그렇게 하면 xeyes제대로 작동합니다.바르게7VM에 성공적으로 연결되고 xeyes 응용 프로그램이 6.5VM에 표시된다는 뜻이므로 호스트 이름 문제는 아닌 것 같습니다. 그 반대의 경우(예: xeyes를 시작하기 위해 7VM에서 6.5VM으로 ssh)도 잘 작동합니다.

echo $DISPLAY:0두 기계 모두에 제공됩니다. X11Forwarding yes/etc/ssh/sshd_config에 추가했습니다 . ( AllowTcpForwarding yes도)

잊어버린 내용이 있으면 언제든지 추가 정보를 문의해 주세요. 저는 초보자라 몇몇 간단한 내용을 잊어버렸을 수도 있습니다.

답변을 보내주셔서 미리 감사드립니다!

답변1

부분 답변:

X 서버는 Unix 도메인 소켓(로컬 연결용)과 TCP 포트(6000 + 디스플레이 번호)를 수신할 수 있습니다. 후자는 최신 서버에서 기본적으로 비활성화되어 있으므로 연결할 수 없습니다.

따라서 연결하려는 서버(7번째 VM)에서 ps axu | grep X비슷한 작업을 수행한 다음 X 서버를 시작하는 명령줄을 살펴보세요. -nolisten또는 이 있는 경우 -nolisten tcp이를 제거하고 를 추가해야 합니다 -listen tcp.

X 서버를 시작하는 방법에는 여러 가지가 있습니다. 귀하의 시스템에서 어떤 방법을 사용하는지 모르겠습니다. 따라서 X 프로세스의 상위 프로세스 ID(PPID)를 보고 몇 번 더 ps호출하여 알아낼 수 있는지 확인하십시오. 디스플레이 관리자(예: gdm 또는 kdm)일 수도 있고 시스템일 수도 있습니다. 무엇을 시작하든 이러한 명령줄 옵션을 구성해야 합니다.

서버가 포트 6000에서 올바르게 수신 대기 중인 경우 다음 단계는 방화벽 규칙(iptables)을 확인하는 것입니다.

관련 정보