Sử dụng "startxwin" để chạy máy chủ Cygwin X. Sử dụng putty hoặc trình khách ssh cygwin để ssh đến máy ảo khách của bạn.
Nếu sử dụng ssh cygwin, hãy "xuất DISPLAY =: 0" trước khi chạy ssh (ví dụ: "vagrant ssh - -vvv -X").
Đối với putty: Chạy "startxwin - -listen tcp", bật chuyển tiếp ssh-X11 trong cấu hình kết nối putty, đặt "vị trí hiển thị X" thành "localhost: 0" và đặt đường dẫn chính xác của tệp .Xauthority (trình duyệt, nó có thể là trong thư mục nhà của bạn, đầu ra startxwin sẽ cho bạn biết nơi).
Có lẽ không sử dụng msys2 ssh (môi trường mặc định được cài đặt mặc định là msys2 nhưng cũng có vẻ không hoạt động tốt với Cygwin) với máy chủ Cygwin X. (Xem chi tiết để biết thêm về việc tại sao)
chi tiết:
Nếu bạn nhận được "kết nối /tmp/.X11-unix/X0: Không có tập tin hoặc thư mục" (dưới ssh chế độ verbose) hoặc lỗi putty " Proxy PuTTY X11: không thể kết nối với máy chủ X được chuyển tiếp: Lỗi mạng: Kết nối bị từ chối ", hãy thử sử dụng ổ cắm tcp thay vì ổ cắm miền unix mặc định.
Khi bạn chạy máy chủ Cygwin X, hãy vào "X -listen tcp -multiwindow" (multiwindow là tùy chọn - nó sẽ mở cửa sổ mới cho từng ứng dụng).
Nếu sử dụng openssh "ssh" từ dòng lệnh: Trước khi đi "vagrant ssh - -vvv -X", đi "xuất DISPLAY = localhost: 0" (không phải ": 0" nhưng "localhost: 0" vì vậy nó sử dụng tcp). Tôi đang chạy git bash trong đó sử dụng msys2 mà dường như không giao tiếp đúng với máy chủ Cygwin X của tôi trên ổ cắm miền unix giả lập. Nhưng nếu tôi sử dụng "vagrant ssh - -X" dưới dấu nhắc Cygwin của tôi (với DISPLAY =: 0 cho unix domain sockets), nó hoạt động.
lớn nguồn thông tin: http://dustwell.com/how-x-over-ssh-really-works.html
Ngoài ra, bạn có thể thêm "config.ssh.forward_x11 = true" để Vagrantfile của bạn. Tôi nghĩ rằng điều này đặt X11Forwarding trong/etc/ssh/sshd_config khi máy khách ảo được thiết lập hoặc "tải lại vagrant" được chạy. - https://coderwall.com/p/ozhfva/run-graphical-programs-within-vagrantboxes
Cập nhật: Không nên chạy X mà không có bảo mật xauth (như được hiển thị ở trên). Nó không an toàn. Ví dụ, các máy tính khác trên cùng một mạng LAN có thể kết nối với máy chủ x của bạn thông qua tcp và đánh hơi các phím bấm của bạn bằng cách sử dụng xkeys. Sử dụng "startxwin" thay vì chạy X trực tiếp để nó sử dụng tùy chọn "-auth" của XWin. Điều này làm cho nó khó khăn cho tôi để có được sys msys2 của tôi để chuyển hướng X đến máy chủ Cygwin X của tôi. Nhật ký ssh trong khi kết nối nói rằng nó không thể tìm thấy lệnh xauth - đó là vì nó không có trong môi trường msys2 của tôi. Cygwin ssh X-chuyển hướng vẫn hoạt động tốt. Putty hoạt động tốt miễn là bạn thiết lập đường dẫn tệp .Xauthority (nó có lẽ là đúng trong thư mục chính của bạn) trong cấu hình phiên putty.
tôi phát hiện ra tình trạng tcp/unix-miền vấn đề ổ cắm/giải pháp thực sự là trong faq Cygwin (faq này khá hữu ích và có rất nhiều thông tin):
6.7. Các phiên X được PuTTY chuyển tiếp không thể kết nối. Các máy khách X không phải Cygwin cục bộ không thể kết nối.
Máy chủ X hiện sử dụng -nolisten tcp theo mặc định, làm tăng độ bảo mật của máy chủ X bằng cách không mở ổ cắm TCP/IP, chỉ một ổ cắm cục bộ (miền UNIX). Các ứng dụng không phải Cygwin không thể kết nối với ổ cắm đó.
https://x.cygwin.com/docs/faq/cygwin-x-faq.html
này đã được giải quyết bằng cách sử dụng Cygwin như máy chủ X bằng cách làm theo này [tư vấn] (http://x.cygwin.com/docs/ug/setup.html). – Matt
Bạn có thể thêm nó dưới dạng câu trả lời dưới đây và chấp nhận không? Nhận xét không phải là nơi tốt nhất cho câu trả lời đúng. –
@RadekSimko Xong. Cảm ơn đã chỉ ra điều đó! – Matt