Macun-> Cygwin X11 Yönlendirme “Ekran açılamıyor” Hatası


11

Başka bir sunucuya ssh için bir Windows makinesinde Putty kullanıyorum. Bir kez orada, bilgisayarıma pop pencereler için X11 iletme kullanmaya çalışıyorum. Uzak sistem sorun değildir, çünkü diğer birçok kullanıcı tarafından aynı şekilde başarıyla kullanılan büyük bir sistemdir.

Putty üzerinden sisteme sorunsuz giriş yapıyorum ve sonra startxwincygwin'de çalışıyorum. Ancak, Putty'de çalıştırıldığında , pound işaretlerinin her oturum açtığımda değeri değişen iki tamsayı olduğu xtermhatayı alıyorum xterm Xt error: Can't open display: localhost:##.0.

  • Macun ayarlarında X11 iletmeyi etkinleştirdim
  • "X görüntüleme konumu" nu localhost:0
  • Cygwin için X11 paketini indirmeyi sağladım
  • Sadece startxyerine kullanmayı denedimstartxwin
  • Denedim setenv DISPLAY localhost:0vesetenv DISPLAY my.ip.address

Maalesef sorun devam ediyor. Google ile ilgili kaynaklarımı bu konuda tükettim ve bu nedenle her türlü yardımı çok takdir ediyorum. Teşekkürler!


localhost:##.0Burada hangi gerçek sayıları görüyorsunuz? Windows bilgisayarda ne tür bir X yazılımı kullanıyorsunuz?
Kenster

Yanıtlar:


11

Son Cygwin güncellemeleri X sunucusunu varsayılan olarak TCP bağlantılarını dinlemeyecek şekilde değiştirdi. Bunun yerine Cygwin's X, Unix etki alanı yuvalarını (Cygwin uygulaması) kullanır ve PuTTY (yerel bir Windows programı olarak) bunların nasıl kullanılacağını bilmez.

Cygwin X SSS ve Cygwin posta listeleri daha fazla ayrıntı var.

Benim çözümüm X'i başlatmak için startxwin kullanan standart Cygwin kısayolunu kullanmaktı :

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

ve yerine xinit'i doğrudan istediğim seçeneklerle çağır (değiştir -listen tcpve kaldır -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"

Bu, Cygwin'in yeni varsayılanlarından daha az güvenlidir; yalnızca tek kullanıcılı bir sistemde kullanılmalıdır ve güvenlik duvarınızı XWin'e bağlantıları engelleyecek şekilde yapılandırmak akıllıca olabilir.


nerede çalıştırmak için ?? cygwin terminalinde / PS / CMD
yellowandred

1
@yellowandred `C:` ile başlıyor, bu yüzden Cygwin terminali değil, Windows tarzı bir yol. Sadece Windows kısayolumun Hedef bölümüne koydum. CMD çalışmalı. PowerShell çalışmalıdır, ancak alıntıyı güncellemeniz gerekebilir.
Josh Kelley

6

Josh Kelley'in söylediklerine alternatif olarak, startxwin dosyasını düzenleyebilir ve "-listen tcp" yi varsayılan sunucu argümanlarına ekleyebilirsiniz.

Eski: defaultserverargs = "- çoklu pencere"

Yeni: defaultserverargs = "- multiwindow -listen tcp"

Ayrıca kimlik doğrulama etkinken, startxwin betiği tarafından oluşturulan kimlik doğrulama dosyasına macun göstermek zorundaydım. Benimki burada bulundu: c: \ cygwin64 \ home \ USERNAME.Xauthority

Bu dosya yeniden oluşturulduğundan, xserver'ınızı sıfırladıktan sonra macun oturumlarını yeniden başlatmanız gerekecektir.

Güvenlik için, macunun ilettiği yer olduğu için yalnızca localhost'tan bağlantılara da izin verebilirsiniz.


4

"X görüntüleme konumu" ayarını localhost'a ayarlamayı denedim: 0

Lütfen "X görüntüleme konumu" nu ": 0.0" olarak ayarlamayı deneyin!

export DISPLAY=:0.0

Josh Kelley , Cygwin X SSS'den bahsetti :

3.13. Yeni sürüme geçtim ve şimdi X istemcileri bağlanamıyor

A1:

X sunucusu 1.17 olduğundan, varsayılan olarak sunucu TCP / IP bağlantılarını dinlemez, yalnızca bir unix etki alanı soketindeki yerel bağlantıları kabul eder.

Yerel istemciler için DISPLAY = localhost: 0.0, DISPLAY = 127.0.0.1: 0.0, DISPLAY = :: 1: 0.0 vb. Yerine DISPLAY =: 0.0 kullanın.



0

Diğerlerinin söylediği gibi, hile -listen tcpsunucu argümanlarına eklemektir . Ancak, ben çağırarak bunu tavsiye startxwin -- -listen tcpizin startxwinkalanı oluşturmak xinitkomuta.

Başlat Menüsü kısayolunda:

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin -- -listen tcp"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.