Câu trả lời:
Thông thường, bạn sẽ không cần cài đặt X trên máy chủ mà bạn đang sử dụng VNC vì nó chỉ hiển thị một màn hình X trở lại từ máy chủ này.
Trong điện toán, Virtual Network Computing (VNC) là một hệ thống chia sẻ đồ họa để bàn sử dụng giao thức Bộ đệm khung từ xa (RFB) để điều khiển từ xa một máy tính khác. Nó truyền các sự kiện bàn phím và chuột từ máy tính này sang máy tính khác, chuyển tiếp các cập nhật màn hình đồ họa theo hướng khác, qua mạng.
Bit này có thể là những gì gây nhầm lẫn cho mọi người:
Lưu ý rằng máy chủ VNC đang chạy không cần phải có màn hình vật lý. Trong phương thức hoạt động bình thường, trình xem kết nối với một cổng trên máy chủ (cổng mặc định 5900).
Khi họ đề cập đến "Hiển thị", họ đang nói về một màn hình vật lý. Máy chủ từ xa vẫn yêu cầu X phải được cài đặt và định cấu hình để máy tính để bàn GUI có thể chạy.
Xvnc là một máy chủ X11 mà bạn có thể chạy độc lập, nhưng nó vẫn sẽ cần một máy tính để bàn để vận hành nó, nếu không, khi bạn khởi chạy, bạn sẽ được hiển thị chỉ với một cửa sổ màu đen. Vì vậy, Xvnc về mặt kỹ thuật không yêu cầu phải cài đặt X vì nó chứa máy chủ X của chính nó.
Vì vậy, Xvnc thực sự là hai máy chủ trong một. Đối với các ứng dụng, nó là máy chủ X và với người dùng VNC từ xa thì đó là máy chủ VNC. Theo quy ước, chúng tôi đã sắp xếp rằng số hiển thị của máy chủ VNC sẽ giống với số hiển thị của máy chủ X, có nghĩa là bạn có thể sử dụng, vd. snoopy: 2 để chỉ hiển thị 2 trên máy 'snoopy' trong cả thế giới X và thế giới VNC.
Thông thường, bạn sẽ bắt đầu Xvnc bằng cách sử dụng tập lệnh vncserver, được thiết kế để đơn giản hóa quy trình và được viết bằng Perl. Bạn có thể sẽ muốn chỉnh sửa điều này cho phù hợp với sở thích và điều kiện địa phương của bạn. Chúng tôi khuyên bạn nên sử dụng vncserver thay vì chạy trực tiếp Xvnc, nhưng Xvnc về cơ bản có các tùy chọn giống như máy chủ X tiêu chuẩn, với một vài tiện ích mở rộng. Chạy Xvnc -h sẽ hiển thị danh sách.
$ export DISPLAY=localhost:1.0
$ /usr/bin/Xvnc :1 -ac -auth "/root/.Xauthority" \
-geometry "1200x700" -depth 8 -rfbwait 120000 \
-rfbauth /root/.vnc/passwd 2> /root/.vnc/ServerDaemon.log &
$ /bin/sleep 10
$ /usr/bin/fvwm 2> /root/.vnc/fvwm.log &
x11vnc
Trong đó Xvnc chứa máy chủ X của riêng nó, x11vnc thì không. Đó là máy chủ VNC tích hợp với máy chủ X đang chạy, Xvnc hoặc Xvfb. Nó có tính năng độc đáo là có thể kết nối với những thứ có bộ đệm khung.
đoạn tríchđoạn tríchx11vnc giữ một bản sao bộ đệm khung của máy chủ X trong RAM. Giao diện lập trình X11 XShmGetImage được sử dụng để lấy dữ liệu pixel của bộ đệm khung. x11vnc so sánh bộ đệm khung của máy chủ X với bản sao của nó để xem các vùng pixel nào đã thay đổi (và do đó cần phải được gửi đến người xem VNC.)
máy chủ vncsNó cho phép truy cập từ xa từ máy khách từ xa đến máy tính lưu trữ phiên X Window và phần mềm x11vnc, liên tục thăm dò bộ đệm khung của máy chủ X để thay đổi. Điều này cho phép người dùng điều khiển máy tính để bàn X11 của họ (KDE, Gnome, XFCE, v.v.) từ một máy tính từ xa trên mạng riêng của người dùng hoặc từ Internet như thể người dùng đang ngồi trước nó. x11vnc cũng có thể thăm dò các thiết bị đệm khung không phải X11, chẳng hạn như webcam hoặc thẻ điều chỉnh TV, iPAQ, Neuros OSD, bảng điều khiển Linux và màn hình đồ họa Mac OS X.
x11vnc không tạo thêm màn hình (hoặc máy tính để bàn X) cho điều khiển từ xa. Thay vào đó, nó sử dụng màn hình X11 hiện có được hiển thị trên màn hình của một máy tính giống Unix trong thời gian thực, không giống như các lựa chọn thay thế khác của Linux như Máy chủ TightVNC. Tuy nhiên, có thể sử dụng Xvnc hoặc Xvfb để tạo màn hình phụ 'ảo' và có x11vnc kết nối với nó, cho phép X-11 truy cập vào các máy chủ không đầu.
vncserver
chỉ là tập lệnh Perl ngoại vi giúp giảm bớt sự phức tạp khi thiết lập VNC + X trên các máy chủ từ xa mà bạn sẽ sử dụng VNC để kết nối.
vncserver được sử dụng để khởi động máy tính để bàn VNC (Máy tính mạng ảo). vncserver là tập lệnh Perl giúp đơn giản hóa quá trình khởi động máy chủ Xvnc. Nó chạy Xvnc với các tùy chọn phù hợp và khởi động trình quản lý cửa sổ trên màn hình VNC.
Nếu bạn không chạy X11 (X) nhưng sử dụng bộ đệm khung, thì có bộ đệm khung-vncserver. https://github.com/ponty/framebuffer-vncserver Điều này hoạt động tốt, ngoại trừ việc nó không hỗ trợ đầu vào. Điều này rất dễ dàng để làm việc xung quanh, bằng cách tiêm trực tiếp đầu vào ở phía máy chủ.