Putty-> Cygwin X11 Forwarding Không thể mở hiển thị Lỗi Lỗi


11

Tôi đang sử dụng Putty trên máy Windows để ssh vào máy chủ khác. Khi đó, tôi đang cố gắng sử dụng chuyển tiếp X11 để bật các cửa sổ vào máy tính của mình. Hệ thống từ xa không phải là vấn đề vì đây là một hệ thống lớn được nhiều người dùng khác sử dụng thành công theo cách tương tự.

Tôi đăng nhập vào hệ thống thông qua Putty mà không gặp vấn đề gì và sau đó chạy startxwintrong cygwin. Tuy nhiên, khi chạy xtermtrong Putty, tôi gặp lỗi xterm Xt error: Can't open display: localhost:##.0trong đó dấu thăng là hai số nguyên có giá trị thay đổi mỗi khi tôi đăng nhập.

  • Tôi đã bật chuyển tiếp X11 trong cài đặt Putty
  • Tôi đã thử đặt "vị trí hiển thị X" thành localhost:0
  • Tôi đã đảm bảo tải xuống gói X11 cho cygwin
  • Tôi đã thử sử dụng chỉ startxthay vìstartxwin
  • Tôi đã thử setenv DISPLAY localhost:0setenv DISPLAY my.ip.address

Thật không may, vấn đề vẫn tồn tại. Tôi đã cạn kiệt tài nguyên Google của mình về chủ đề này và vì vậy tôi sẽ đánh giá rất cao bất kỳ trợ giúp nào. Cảm ơn!


localhost:##.0Những con số thực tế bạn đang nhìn thấy ở đây? Bạn đang chạy loại phần mềm X nào trên máy tính Windows?
Kenster

Câu trả lời:


11

Các bản cập nhật Cygwin gần đây đã thay đổi máy chủ X của nó thành không nghe các kết nối TCP theo mặc định. Thay vào đó, Cygwin's X sử dụng (cài đặt Cygwin) các ổ cắm tên miền Unix và PuTTY (như một chương trình Windows gốc) không biết cách sử dụng các ổ cắm này.

Các Cygwin X FAQCygwin gửi thư danh sách có thêm chi tiết.

Giải pháp của tôi là sử dụng phím tắt Cygwin tiêu chuẩn sử dụng startxwin để khởi chạy X:

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

và thay thế nó bằng một lời cầu xin trực tiếp bằng các tùy chọn mong muốn của tôi (thêm -listen tcpvà xóa -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"

Điều này kém an toàn hơn các mặc định mới của Cygwin; nó chỉ nên được sử dụng trên một hệ thống người dùng và cấu hình tường lửa của bạn để chặn kết nối với XWin có thể là điều khôn ngoan.


Chạy cái này ở đâu ?? trong thiết bị đầu cuối cygwin / PS / CMD
ghi

1
@yellowandred Nó bắt đầu bằng `C:`, vì vậy đây là đường dẫn kiểu Windows, không phải thiết bị đầu cuối Cygwin. Tôi chỉ đặt nó trong phần Target của phím tắt Windows. CMD nên làm việc. PowerShell sẽ hoạt động, nhưng bạn có thể phải cập nhật báo giá.
Josh Kelley

6

Thay thế cho những gì Josh Kelley đã nói, bạn cũng có thể chỉnh sửa tệp startxwin và thêm "-listen tcp" vào các đối số máy chủ mặc định.

Cũ: defaultserverargs = "- multiwindow"

Mới: defaultserverargs = "- multiwindow -listen tcp"

Ngoài ra với tính năng xác thực được bật, tôi phải trỏ putty vào tệp xác thực được tạo bởi tập lệnh startxwin. Của tôi được đặt ở đây: c: \ cygwin64 \ home \ USERNAME.Xmasterity

Vì tệp này được tạo lại, bạn sẽ phải khởi động lại các phiên putty sau khi bạn đặt lại máy chủ xs của mình.

Để bảo mật, bạn cũng có thể chỉ cho phép các kết nối từ localhost, vì đây là nơi mà putty chuyển tiếp nó qua.


4

Tôi đã thử đặt "vị trí hiển thị X" thành localhost: 0

Thay vào đó, hãy thử đặt "vị trí hiển thị X" thành ': 0,0'!

export DISPLAY=:0.0

Josh Kelley đã đề cập đến Câu hỏi thường gặp về Cygwin X :

3.13. Tôi đã nâng cấp và bây giờ khách hàng X không thể kết nối

A1:

Vì máy chủ X 1.17, theo mặc định, máy chủ không lắng nghe các kết nối TCP / IP, chỉ chấp nhận các kết nối cục bộ trên một ổ cắm miền unix.

Đối với các máy khách cục bộ, hãy sử dụng HIỂN THỊ =: 0,0, thay vì HIỂN THỊ = localhost: 0,0, HIỂN THỊ = 127.0.0.1: 0.0, HIỂN THỊ = :: 1: 0.0, v.v.



0

Như những người khác đã nói, mẹo là thêm -listen tcpvào các đối số máy chủ. Tuy nhiên, tôi khuyên bạn nên làm điều này bằng cách gọi startxwin -- -listen tcpđể cho phép startxwinxây dựng phần còn lại của xinitlệnh.

Trong một phím tắt Menu Bắt đầu:

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin -- -listen tcp"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.