我知道这个线程很旧......但是,我想确保我在 paulsm4 的回答中澄清了一些误导性的东西......
X 是倒退的……您没有连接到 X 服务器。您在本地机器上运行服务器(他所说的客户端实际上是服务器)。当您连接到安装了 X 库的远程 Nix 机器,并将 -X 开关添加到 SSH 命令时,ssh 会将 X 请求转发给您。在另一端运行的程序(Gnome、Chrome、PyCharm 等)将成为您的 X 客户端,并且它将被上游返回到包含 X 服务器的桌面。这是一个序列图:
User Remote
-----------------------------------------------------------------------
User Inits SSH -X Session -----------------> SSH Server Auth User
|
V
SSH Session is established <---------------- SSH User is Authenticated
|
V
User Initiates App on server --------------> App Starts Running
|
V
App Writes output to X Server
|
V
Xorg receives write commands <-------------- SSH Tunnels that back to User
|
V
Writing occurs on desktop
-----------------------------------------------------------------------
大多数时候,X 服务器和 X 客户端是相同的(就像在本地桌面上发生的那样)。因此,一旦客户端写入 X,本地 X 服务器就会写入屏幕。显示过程实际上是在用户的计算机上完成的,无论它在哪里,您的计算机都会成为服务器。疯了吧?