Khi sử dụng ssh -X
là bản sao được thực thi và chạy cục bộ hoặc nó chạy trên máy chủ. Vì nó được gọi là X11 chuyển tiếp, nó làm tôi nghĩ rằng cửa sổ được vẽ trên máy của tôi nhưng chạy trên máy chủ.
Khi sử dụng ssh -X
là bản sao được thực thi và chạy cục bộ hoặc nó chạy trên máy chủ. Vì nó được gọi là X11 chuyển tiếp, nó làm tôi nghĩ rằng cửa sổ được vẽ trên máy của tôi nhưng chạy trên máy chủ.
Câu trả lời:
Tệp thực thi được chạy trên máy từ xa và được hiển thị (vẽ) trên máy cục bộ. Những gì ssh -X remote
hiện đang khởi động một máy chủ proxy X11 trên máy tính từ xa. Nếu bạn làm echo $DISPLAY
trên máy từ xa, bạn sẽ thấy một cái gì đó như localhost:21.0
. Đó là yêu cầu chương trình chạy trên máy từ xa gửi lệnh vẽ đến máy chủ X11 với id 21. Sau đó, chuyển tiếp các lệnh đó đến máy chủ X11 thực đang chạy trên máy cục bộ, vẽ trên màn hình của bạn. Chuyển tiếp này xảy ra qua kết nối ssh được mã hóa, vì vậy chúng không thể (dễ dàng) lắng nghe.
Không giống như Windows, Mac OS, v.v., X11 được thiết kế ngay từ đầu để có thể chạy các chương trình trên một mạng mà không cần những thứ như máy tính để bàn từ xa. Trong một thời gian, khách hàng mỏng X11 là phổ biến. Về cơ bản, nó là một máy tính bị loại bỏ chỉ chạy máy chủ X11. Tất cả các chương trình chạy trên một số máy chủ ứng dụng ở đâu đó.
Ứng dụng chạy từ xa, ngoại trừ các thành phần X (tức là hiển thị các lệnh x, v.v.) đang chạy cục bộ. Mọi ứng dụng khách thường sử dụng máy chủ X cục bộ để hiển thị UI. Trong trường hợp này, các lệnh được gửi qua kênh SSH được mã hóa từ máy từ xa đến máy cục bộ của bạn và được hiển thị ở đó.
Chìa khóa có thể nhận ra rằng máy chủ X là một thứ duy nhất cung cấp đồ họa cho người dùng và tất cả các chương trình khác nhau muốn đồ họa phải là máy khách X và kết nối với máy chủ. Giao diện giữa các chương trình máy khách và máy chủ X được thiết kế từ đầu để hỗ trợ các kết nối với các chương trình từ xa, không chỉ các chương trình trên máy cục bộ.
Trong một mạng đủ điên rồ, một chương trình có thể được chạy ở bất cứ đâu và hiển thị đồ họa của nó ở bất cứ nơi nào khác ...