当我使用 vncserver 启动新的 X 服务器时,我可以使用端口 5901 连接它。例如,从终端,我还可以执行以下操作:
导出 DISPLAY=:1.0 xterm
(这只是一个例子)
我在 Xvncserver 上得到了一个 xterm。
:1.0 和端口 5901 之间有什么关系?
答案1
端口 5901(通常按照约定端口 5900 + XDisplaynumber)是 VNC 服务侦听的 TCP 端口。这就是他们的关系。实际上,您可以使用任意 TCP 端口和任意 Xdisplaynumbers。
VNC 服务旨在将输入(鼠标、键盘)从客户端传输到服务器,并将输出(图像)从服务器传输到客户端。这与 X 没有任何关系。例如,在虚拟化中,VNC 通常用于使虚拟机的“物理”终端可远程访问。
X11 系统比这复杂得多,程序使用它与 Xserver 以及彼此之间进行交互。 X 世界中的措辞一开始有点不直观,因此输出、座位、屏幕、显示器、服务器、客户端的含义需要学习并值得考虑。
对于您的问题:Xdisplay 是任何 X 实例的逻辑核心。当您启动一个程序时,该程序是一个 Xclient,并连接到 Xserver 提供的显示器。:1.0
实际上是一个缩写,意思是“在本地主机上显示 1”。您可以提供主机名或 IP 地址,例如 DISPLAY=192.168.1.2:3.0,让您要启动的程序连接到具有给定 IP 地址的(远程)计算机上的 Xdisplay 3。
X和VNC是两种完全不同的服务,为不同的目的和不同的目标而实施。 (有人可能会说,一些/大多数 VNC 目标也是开发 X 时的目标,但这是相当学术性的,而且非常深入。)
使用 Xvncserver 时,这两个概念是背靠背组合的。因此,存在一个 Xserver,Xclient 可以“以正常方式”与其进行通信,但 Xvncserverit 实现了一个 VNC 服务器,VNC 客户端可以连接到该 VNC 服务器,而不是使用可用于与用户交互的硬件。
答案2
本质上,没有。
当你运行它时,xvncserver
它需要做两件事。
- 打开监听端口(对于VNC来说是5901
- 创建显示目标
显示目标可以是任何数字。通常,通过 X 登录控制台会使用 display :0
。不一定,你可以先登录控制台再使用startx :36
。默认情况下使用 VNC,1.0
因为它可能是第一个可用的显示。
这两个是由习俗,除了附加到两者的运行进程之外,没有任何魔法将它们绑定在一起。