퍼티-> Cygwin X11 전달 “디스플레이를 열 수 없습니다”오류 사용하여 컴퓨터에 창을 띄우려고합니다. 원격 시스템은

Windows 시스템에서 Putty를 사용하여 다른 서버로 ssh하고 있습니다. 일단 X11 포워딩을 사용하여 컴퓨터에 창을 띄우려고합니다. 원격 시스템은 다른 많은 사용자가 동일한 방식으로 성공적으로 사용하는 큰 시스템이기 때문에 문제가되지 않습니다.

퍼티를 통해 시스템에 문제없이 로그인 한 다음 startxwincygwin에서 실행 합니다. 그러나 xtermPutty에서 실행 xterm Xt error: Can't open display: localhost:##.0하면 파운드 기호가 로그인 할 때마다 값이 변경되는 두 개의 정수 인 오류가 발생합니다.

  • 퍼티 설정에서 X11 전달을 사용하도록 설정했습니다.
  • “X 디스플레이 위치”를 localhost:0
  • cygwin 용 X11 패키지를 다운로드했습니다.
  • startx대신에 그냥 사용해 보았습니다startxwin
  • 나는 시도 setenv DISPLAY localhost:0하고setenv DISPLAY my.ip.address

불행히도 문제는 지속됩니다. 이 주제에 대한 인터넷 검색 리소스를 모두 사용 했으므로 도움을 주시면 감사하겠습니다. 감사!



답변

최근 Cygwin 업데이트는 기본적으로 TCP 연결을 수신하지 않도록 X 서버를 변경했습니다. 대신 Cygwin의 X는 Unix 도메인 소켓의 Cygwin 구현을 사용하며 PuTTY (기본 Windows 프로그램)는이를 사용하는 방법을 모릅니다.

Cygwin에서 X 자주 묻는 질문Cygwin에서 메일 링 리스트는 자세한 내용이있다.

내 솔루션은 startxwin 을 사용 하여 X를 시작 하는 표준 Cygwin 단축키를 사용하는 것입니다 .

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin"

원하는 옵션으로 xinit를 직접 호출하여 대체하십시오 (add -listen tcp및 remove -auth).

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -multiwindow -listen tcp"

이것은 Cygwin의 새로운 기본값보다 덜 안전합니다. 단일 사용자 시스템에서만 사용해야하며 XWin 연결을 차단하도록 방화벽을 구성하는 것이 좋습니다.


답변

Josh Kelley가 말한 것에 대한 대안으로 startxwin 파일을 편집하고 “-listen tcp”를 기본 서버 인수에 추가 할 수도 있습니다.

Old : defaultserverargs = “-multiwindow”

신규 : defaultserverargs = “-multiwindow -listen tcp”

인증이 활성화 된 상태에서 startxwin 스크립트로 만든 인증 파일을 퍼티로 지정해야했습니다. 내 위치는 c : \ cygwin64 \ home \ USERNAME.Xauthority에 있습니다.

이 파일이 재 작성되므로 xserver를 재설정 한 후 퍼티 세션을 다시 시작해야합니다.

보안을 위해 퍼티가 전달하는 로컬 호스트 연결 만 허용 할 수도 있습니다.


답변

“X display location”을 localhost : 0으로 설정하려고했습니다.

대신 “X 표시 위치”를 ‘: 0.0’으로 설정하십시오!

export DISPLAY=:0.0

Josh KelleyCygwin X FAQ에 대해 언급했습니다 .

3.13. 업그레이드했는데 이제 X 클라이언트를 연결할 수 없습니다

A1 :

X 서버 1.17부터 기본적으로 서버는 TCP / IP 연결을 수신하지 않고 유닉스 도메인 소켓에서 로컬 연결 만 허용합니다.

로컬 클라이언트의 경우 DISPLAY = localhost : 0.0, DISPLAY = 127.0.0.1 : 0.0, DISPLAY = :: 1 : 0.0 등 대신 DISPLAY = : 0.0을 사용하십시오.


답변

xming을위한 것이지만 아마도이 FAQ가 도움이됩니까? 그 배후의 아이디어는 동일하지만 로컬 컴퓨터에서 cygwin 대신 xming을 사용합니다. https://wiki.utdallas.edu/wiki/display/FAQ/X11+Forwarding+using+Xming+and+PuTTY


답변

다른 사람들이 말했듯이, 트릭은 -listen tcp서버 인수 에 추가 하는 것입니다. 그러나 나머지 명령 startxwin -- -listen tcp을 작성하도록 호출하여이 작업을 수행하는 것이 좋습니다 .startxwinxinit

시작 메뉴 바로 가기에서 :

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin -- -listen tcp"


답변