ano*_*man 13 linux networking vnc gui x11
VNC 服务器可以在没有安装 X Server 的情况下工作吗?我知道 vnc 可以与 X Server 一起使用,但是没有它呢?
slm*_*slm 14
不,您通常需要在使用 VNC 远程处理的服务器上安装 X,因为它只是从该服务器显示一个 X 桌面。
在计算方面,Virtual Network Computing (VNC) 是一种图形桌面共享系统,它使用远程帧缓冲协议 (RFB) 来远程控制另一台计算机。它将键盘和鼠标事件从一台计算机传输到另一台计算机,通过网络将图形屏幕更新转发回另一个方向。
这一点可能让人们感到困惑:
请注意,运行 VNC 服务器的机器不需要有物理显示器。在正常操作方法中,查看器连接到服务器上的端口(默认端口 5900)。
当他们提到“显示”时,他们指的是物理显示器。远程服务器仍然需要安装和配置 X,以便可以运行 GUI 桌面。
Xvnc是一个 X11 服务器,你可以独立运行,但它仍然需要一个桌面来操作它,否则当你启动它时,你只会看到一个黑色窗口。因此 Xvnc 在技术上不需要安装 X,因为它包含自己的 X 服务器。
所以Xvnc实际上是两台服务器合二为一。对于应用程序,它是一个 X 服务器,对于远程 VNC 用户,它是一个 VNC 服务器。按照惯例,我们安排 VNC 服务器显示编号与 X 服务器显示编号相同,这意味着您可以使用例如。snoopy:2 指代 X 世界和 VNC 世界中机器“史努比”上的显示 2。
通常,您将使用 vncserver 脚本启动 Xvnc,该脚本旨在简化过程,并且是用 Perl 编写的。您可能希望对其进行编辑以适合您的偏好和当地条件。我们建议使用 vncserver 而不是直接运行 Xvnc,但 Xvnc 具有与标准 X 服务器基本相同的选项,但有一些扩展。运行 Xvnc -h 将显示一个列表。
$ 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 &
Run Code Online (Sandbox Code Playgroud)
x11vnc
Xvnc 包含自己的 X 服务器,而x11vnc没有。它是一个 VNC 服务器,与已经运行的 X 服务器、Xvnc 或 Xvfb 集成。它确实具有能够连接到具有帧缓冲区的事物的独特功能。
摘抄摘抄x11vnc 在 RAM 中保留 X 服务器帧缓冲区的副本。X11 编程接口 XShmGetImage 用于检索帧缓冲区像素数据。x11vnc 将 X 服务器的帧缓冲区与其副本进行比较,以查看哪些像素区域已更改(因此需要发送给 VNC 查看器。)
虚拟服务器它允许从远程客户端远程访问托管 X Window 会话和 x11vnc 软件的计算机,不断轮询 X 服务器的帧缓冲区以获取更改。这允许用户从远程计算机上控制他们的 X11 桌面(KDE、GNOME、XFCE 等),无论是在用户自己的网络上,还是从 Internet 上,就像用户坐在它前面一样。x11vnc 还可以轮询非 X11 帧缓冲设备,例如网络摄像头或电视调谐卡、iPAQ、Neuros OSD、Linux 控制台和 Mac OS X 图形显示器。
x11vnc 不会为远程控制创建额外的显示器(或 X 桌面)。相反,它使用在类 Unix 计算机的监视器上实时显示的现有 X11 显示,与其他 Linux 替代品(如 TightVNC 服务器)不同。但是,可以使用 Xvnc 或 Xvfb 来创建“虚拟”额外显示,并将 x11vnc 连接到它,从而使 X-11 能够访问无头服务器。
vncserver
只是一个前端 Perl 脚本,有助于减轻在您将使用 VNC 连接到的远程服务器上设置 VNC + X 的复杂性。
vncserver 用于启动 VNC(虚拟网络计算)桌面。vncserver 是一个 Perl 脚本,它简化了启动 Xvnc 服务器的过程。它使用适当的选项运行 Xvnc 并在 VNC 桌面上启动一个窗口管理器。