XDMCP
来自 Wikipedia
- X 显示管理器控制协议 (XDMCP) 使用 UDP 端口 177。X 服务器通过发送 Query(查询)数据包请求显示管理器启动一个会话。如果显示管理器允许该 X 服务器访问,它将向 X 服务器发送一个 Willing(愿意)数据包作为响应。
这允许远程打开 X 会话。
设置图形登录
XDM
用 ! 注释掉配置文件的最后一行
/etc/X11/xdm/xdm-config
!DisplayManager.requestPort: 0
然后通过取消以下内容的注释,允许任何主机获取登录窗口
/etc/X11/xdm/Xaccess
* #any host can get a login window
如果你有多个网络接口,请同时添加如下行
LISTEN 192.168.0.10
其中 192.168.0.10 是你的服务器 IP 地址。
然后 重启 xdm.service。
GDM
在配置文件中启用 XDMCP
/etc/gdm/custom.conf
[xdmcp] Enable=true Port=177
然后 重启 gdm.service。
LightDM
在配置文件中启用 XDMCP 服务器
/etc/lightdm/lightdm.conf
[XDMCPServer] enabled=true port=177
在无头(headless)系统中,禁用单个座位的自动启动,以便 LightDM 可以在后台运行
[LightDM] start-default-seat=false
然后 重启 lightdm.service。
从局域网中的远程机器访问 X
你可以在网络计算机上访问你的登录管理器(在以下命令中使用 192.168.0.10)。由于开启了 TCP 和 UDP 流,因此无法通过 SSH 连接访问登录管理器。
$ Xnest -query 192.168.0.10 -geometry 1280x1024 :1
或者,如果你在使用 Xnest 时遇到刷新问题,可以使用 Xephyr
$ Xephyr -query 192.168.0.10 -screen 1280x1024 -br -reset -terminate :1
或者,如果你处于运行级别 3 (runlevel 3)
$ X -query server address
Xserver 应该能够识别你的显示器并设置适当的分辨率。
在按照上述步骤允许 XDMCP 访问后,编辑 /etc/X11/xdm/Xservers 并注释掉
#:0 local /usr/bin/X :0
然后以 root 身份启动 XDM,例如 xdm -config /etc/X11/xdm/archlinux/xdm-config
精简客户端设置
首先应该设置 dhcp 和 tftp 服务器。Dnsmasq 同时包含这两者。网络启动镜像请查看 thinstation 项目。如果你的网卡不支持 PXE,可以尝试 Etherboot
基于 GUI 的客户端
- Remmina
- 适用于 Windows 的 Xming
故障排除
会话被拒绝:已达到最大会话数
编辑 /etc/gdm/custom.conf 并增加 MaxSessions。值得注意的是,对于一次允许多少个 XDMCP 连接可能有限制,因此如果多个客户端从同一 IP 连接,建议同时增加 DisplaysPerHost[1]。
[xdmcp] Enable=true MaxSessions=X DisplaysPerHost=X