You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
在 X 下,显示管理器(Display Manager,DM)负责在 X 服务器上显示登录界面,在用户登录后启动对应的桌面环境或者窗口管理器。常见的 DM 有 [GDM](https://gitlab.gnome.org/GNOME/gdm/)(GNOME Display Manager)、[SDDM](https://github.com/sddm/sddm)(Simple Desktop Display Manager,KDE 默认使用)、[LightDM](https://github.com/canonical/lightdm) 等。DM 一般作为 systemd 的服务运行,在系统启动时自动启动 X 服务器,并且显示登录界面。
312
+
313
+
之所以叫 Display Manager 而不是 Login Manager,是因为 DM 还管理着 X(即 "Display")——比如说,如果 X 崩溃了,DM 会重新启动 X 并且重新显示登录界面。
314
+
309
315
### 远程桌面访问 {#x-remote-desktop}
310
316
311
317
X 的网络透明性设计似乎使得远程桌面访问变得非常简单——只需要 `ssh -X` 或者 `ssh -Y` 就可以了。但是由于 X 协议本身的设计问题,这么做的性能并不好,主要原因包括:
312
318
313
319
1. X 协议很「啰嗦」,大量的操作都需要往返通信,这导致网络延迟会被协议放大数倍,甚至十几倍。
314
320
2. 旧的 X 程序一般会调用 X 协议的接口来画线段、字体等(例如[客户端、服务端与窗口](#client-server-window)中展示的 xedit),但是绝大多数现代 UI 框架(例如 GTK、Qt)早已经不这么做了,而是直接画图给服务器。在远程环境下意味着传输大量未压缩的图像数据,网络带宽消耗大。
315
321
316
-
因此 X 的网络透明性几乎只适合在极低延迟的网络环境下使用。对于更常见的场景,根据需求不同,可以使用传统的 VNC/RDP 方案,本身作为 X server,支持多种网络与图形协议的 [Xpra](https://github.com/Xpra-org/xpra),针对游戏场景优化的 [Sunshine](https://github.com/LizardByte/Sunshine),或者为远程协助设计的 [RustDesk](https://rustdesk.com/) 等等。类似的远程桌面方案还有很多,可以按需选择。
322
+
因此 X 的网络透明性几乎只适合在极低延迟的网络环境下使用(基于同样的理由,我们也不介绍为远程使用 DM 设计的古早协议 XDMCP)。对于更常见的场景,根据需求不同,可以使用传统的 VNC/RDP 方案,本身作为 X server,支持多种网络与图形协议的 [Xpra](https://github.com/Xpra-org/xpra),针对游戏场景优化的 [Sunshine](https://github.com/LizardByte/Sunshine),或者为远程协助设计的 [RustDesk](https://rustdesk.com/) 等等。类似的远程桌面方案还有很多,可以按需选择。
317
323
318
324
!!! example "SSH + VNC 的远程桌面访问方案"
319
325
320
-
以下介绍一种常见的远程桌面访问方案:通过 SSH 隧道访问远程主机上的 VNC 服务器。只要能够建立 SSH 连接,就可以通过这种方法获取到基本的 X 桌面环境,并且用户之间互相隔离,且不需要配置防火墙,远程桌面图像也不会经手第三方。
326
+
以下介绍一种常见的远程桌面访问需求的解决方案:通过 SSH 隧道访问远程主机上的 VNC 服务器。只要能够建立 SSH 连接,就可以通过这种方法获取到基本的 X 桌面环境,并且用户之间互相隔离,且不需要配置防火墙,远程桌面图像也不会经手第三方。
0 commit comments