Xt 오류: xhost 및 Xauthority를 ​​구성했지만 디스플레이를 열 수 없습니다.

Xt 오류: xhost 및 Xauthority를 ​​구성했지만 디스플레이를 열 수 없습니다.

로컬 네트워크 내의 다른 모니터에 X 지원 프로그램을 표시하려고 합니다.

나는 디스플레이를 사용하여 IP 192.168.4.79를 가진 호스트에서 X 서버를 실행하고 있습니다 :0. 클라이언트 역할을 하려는 다른 호스트(192.168.4.23)가 있습니다. 즉, 프로그램을 실행하고 그 결과를 192.168.4.79:0에 있는 서버에 표시해야 합니다.

서버를 실행하는 호스트에서 xhost를 사용하여 액세스 제어 목록에 클라이언트 IP를 추가합니다.

$ xhost +192.168.4.23

그런 다음 서버 호스트에서 ~/.Xauthority의 관련 콘텐츠를 추출하고 클라이언트 호스트에서 ~/.Xauthority에 병합했습니다.

$ xauth extract - $DISPLAY > xauth_extract

그런 다음 ftp를 사용하여 클라이언트 호스트에 복사합니다. 그리고 클라이언트 측에서는 다음을 수행합니다.

$ xauth merge xauth_extract

또는 SSH 지원 클라이언트에서(하단 참고 참조):

$ xauth extract - $DISPLAY | ssh [email protected] xauth merge -

그러나 (클라이언트에서) 실행하면:

$ xterm -display 192.168.4.79:0

오류가 표시됩니다: xterm: Xt error: Can't open display: 192.168.4.79:0.

호스트는 잘 통신할 수 있습니다: ping -c1 192.168.4.79. 방화벽 문제도 아닌 것 같아요. 먼저, 로컬 네트워크 내에서 들어오는 모든 연결을 허용하기 위해 서버를 실행하는 호스트에 방화벽을 설정했습니다.

ipset create sjlan hash:net
ipset add sjlan 192.168.4.0/22
iptables -I INPUT -m set --match-set sjlan src -j ACCEPT

또한 서버 호스트()에서 방화벽을 일시적으로 비활성화하면 systemctl stop firewall동일한 오류가 발생합니다.

여기서 내가 무엇을 놓치고 있을까요? 이 문제를 어떻게 해결할 수 있나요?


나는 이것을 달성하기 위해 의도적으로 ssh를 사용하지 않으므로 X11Forwarding을 사용하여 이를 수행하는 방법에 대답하지 마십시오. 나는 이미 이 작업을 수행하는 방법을 알고 있으며 (사소한 노력으로) 설정할 수 없거나 설정할 수 없는 30년 된 hp-ux 인스턴스(X11R5 사용)를 실행하는 호스트에서 작동해야 하기 때문에 의도적으로 사용하지 않습니다. SSH를 사용합니다.

또한 X11R7을 실행하는 두 대의 최신 Linux 시스템으로 처음 테스트했기 때문에 당면한 문제는 새 시스템의 X11 구현과 이전 시스템의 X11 구현 간의 비호환성이 아닙니다.

또한 지금까지 효과가 있었던 유일한 방법은 HP-UX 시스템에서 서버를 실행하고 서버 역할을 하려는 호스트를 클라이언트 역할을 하는 것이었습니다. 192.168.4.79에서 xterm을 실행하고 해당 디스플레이를 보고 HP-UX 시스템에서 상호 작용할 수 있습니다. 그래서 새 컴퓨터의 일부 설정이 액세스를 차단하고 있는 것 같습니다. 나는 구형 컴퓨터가 보안 측면에서 훨씬 더 낮은 기준을 가질 것으로 기대합니다.

답변1

대부분의 최신 시스템의 X 서버는 기본적으로 수신 IP 주소를 비활성화하고(본질적으로 안전하지 않기 때문에) 로컬 도메인 소켓만 사용합니다.

자세한 내용은 배포판에 따라 다르지만 및 man Xserver매개변수를 참조하세요. 배포판에서 X 서버를 시작하는 항목(디스플레이 관리자, systemd 등)을 찾아야 합니다. 또는 배포판에서 허용하는 경우 이러한 옵션을 사용하기 위해 두 번째 서버를 시작할 수 있습니다.-listen-nolisten

관련 정보