터널링시 X Windows DISPLAY 환경 변수 이해


9

난 둘 다 실행, 원격 서버에 ssh를 할 CentOS함께 X11Forwarding사용 가능.

그러나 X 응용 프로그램 중 하나에서 제대로 실행될 수 없습니다. 호스트 B에서는 제대로 작동합니다. 그러나 호스트 AI에서 X 응용 프로그램을 시작할 때마다 "디스플레이에 연결할 수 없습니다"라는 오류가 발생합니다.

DISPLAYX 창과 관련이 있다고 생각되는 호스트 A 의 환경 변수를 확인한 후 그 값을 찾았습니다 localhost:10.0. 여기 의 팁에 따라 변경 DISPLAY=0:10.0하고 작동합니다. 그러나 DISPLAY호스트 B에서는 여전히 localhost:10.0작동하며 정상적으로 작동합니다.

내 질문은, 그 가치가 무엇을 DISPLAY나타내는가? 차이점은 무엇이며 localhost:10.0그리고 0:10.0?

localhost호스트 이름 을 식별 한다고합니다 . 그런 다음 어느 호스트를 식별합니까, 내 X 응용 프로그램이 실행되는 서버 (호스트 A / B) 또는 X 윈도우를 표시하려는 로컬 클라이언트입니까?

문서에 대한 힌트 나 조언이 있으면 감사하겠습니다.

답변:


5

답변의 일부는 실제로 여기에서 찾을 수 있습니다 : /programming/746119/how-do-you-use-display-specifications

DISPLAY 변수는 기본적으로 3 가지 구성 요소입니다.

<host>:<display>[.<screen>]

localhost aka 127.0.0.1 vs. 0.0.0.0 aka 0에 관한 한이 게시물을 살펴볼 수 있습니다.

/server/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

차이점을 설명합니다.

특정 경우 0.0.0.0:10.0과 localhost : 10.0은 동일한 효과를 갖지만 기본적으로 다음을 의미합니다.

  1. 디스플레이 10이 설정된 인터페이스에 연결
  2. lo0에서 디스플레이 10의 리스너에 연결하십시오.

실제로 첫 번째 경우 모든 인터페이스의 스캔이 lo0으로 시작하므로 일반적으로 목록의 첫 번째 인터페이스이므로 차이가 없습니다.


1
처음에 감사합니다. 나는 실제 문제가 당신의 팁을 따른다는 것을 알았습니다. 실제 문제는 호스트 A에 localhost바인딩되어 있습니다 192.168.1.200(이와 같은 특정 ip. 실제 구성을 공개하고 싶지 않습니다.) DISPLAY=127.0.0.1:10.0. export 할 때도 작동합니다 . X 전달은 루프백 인터페이스에서만 작동합니까?
Summer_More_More_Tea

localhostLinux에서 루프백 인터페이스 (lo0)에 바인드되는 특수 이름이며 실제 IP 주소에 바인드되어서는 안됩니다. sudo netstat -apn | grep 6010SSH 를 실행 하여 바인딩을 실제로 확인할 수 있으며 해당 포트에서 디스플레이 연결을 수신 대기해야합니다. 내가 알 수있는 한 그것은 127.0.0.1유일한 것입니다.
Karlson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.