Używam Putty na komputerze z systemem Windows, aby ssh na innym serwerze. Tam staram się używać X11 do przekazywania okien na mój komputer. System zdalny nie stanowi problemu, ponieważ jest to duży system, który jest z powodzeniem wykorzystywany przez wielu innych użytkowników w ten sam sposób.
Bez problemu loguję się do systemu za pośrednictwem Putty, a następnie uruchamiam startxwin
w cygwin. Jednak po uruchomieniu xterm
w Putty pojawia się błąd, w xterm Xt error: Can't open display: localhost:##.0
którym znaki funta to dwie liczby całkowite, których wartość zmienia się przy każdym logowaniu.
- Mam włączone przekazywanie X11 w ustawieniach Putty
- Próbowałem ustawić „Lokalizacja wyświetlania X” na
localhost:0
- Zapewniłem pobranie pakietu X11 dla cygwin
- Próbowałem użyć właśnie
startx
zamiaststartxwin
- Próbowałem
setenv DISPLAY localhost:0
isetenv DISPLAY my.ip.address
Niestety problem nadal występuje. Wyczerpałem swoje zasoby Googling na ten temat i dlatego byłbym bardzo wdzięczny za wszelką pomoc. Dzięki!
localhost:##.0
Jakie rzeczywiste liczby tutaj widzisz? Jakiego rodzaju oprogramowania X używasz na komputerze z systemem Windows?Odpowiedzi:
Ostatnie aktualizacje Cygwin zmieniły jego serwer X, aby domyślnie nie nasłuchiwał połączeń TCP. Zamiast tego X Cygwina używa (implementacja Cygwin) gniazd domeny uniksowej, a PuTTY (jako natywny program Windows) nie wie, jak z nich korzystać.
W Cygwin X FAQ i Cygwin mailing list mieć więcej szczegółów.
Moim rozwiązaniem było skorzystanie ze standardowego skrótu Cygwin, który używa startxwin do uruchomienia X:
i zastąp go bezpośrednim wywołaniem xinit z moimi żądanymi opcjami (dodaj
-listen tcp
i usuń-auth
):Jest to mniej bezpieczne niż nowe ustawienia domyślne Cygwin; powinien być używany tylko w systemie dla jednego użytkownika, a konfiguracja zapory ogniowej w celu blokowania połączeń z XWin może być mądra.
źródło
Alternatywnie do tego, co powiedział Josh Kelley, możesz również edytować plik startxwin i dodać „-listen tcp” do domyślnych argumentów serwera.
Old: defaultserverargs = "- multiwindow"
Nowość: defaultserverargs = "- multiwindow -listen tcp"
Również przy włączonym uwierzytelnianiu musiałem wskazać kit na plik uwierzytelnienia utworzony przez skrypt startxwin. Mój znajdował się tutaj: c: \ cygwin64 \ home \ USERNAME.Xauthority
Ponieważ ten plik jest odtwarzany, po zresetowaniu serwera xserver będziesz musiał ponownie uruchomić sesje szpachlowania.
Ze względów bezpieczeństwa możesz zezwolić tylko na połączenia z hosta lokalnego, ponieważ w tym miejscu kit przekazuje je dalej.
źródło
Spróbuj zamiast tego ustawić „X display location” na „: 0.0”!
Josh Kelley wspomniał o Cygwin X FAQ :
źródło
To jest na xming, ale może to FAQ jest pomocne? Idea jest taka sama, ale używając xming zamiast cygwin na lokalnej maszynie. https://wiki.utdallas.edu/wiki/display/FAQ/X11+Forwarding+using+Xming+and+PuTTY
źródło
Jak powiedzieli inni, sztuczka polega na dodaniu
-listen tcp
argumentów serwera. Jednak polecam to zrobić, wywołując,startxwin -- -listen tcp
abystartxwin
zbudować resztęxinit
polecenia.W skrócie do menu Start:
źródło