xhost 控制 X Server 接受连接的主机列表,实现远程图形应用在本地显示。本文详解语法、常用场景(SSH X11 转发、Docker 容器 GUI)、安全最佳实践与永久配置。
xhost [+|-] [名称]
# + 增加访问权限
# - 移除访问权限
# 名称:主机名、IP、用户@域、NIS/INET 格式
xhost +remote_host。xhost + 开放所有主机访问(极不安全,仅测试用)。| 命令 | 效果 |
|---|---|
xhost + | 允许所有主机连接本地 X Server |
xhost + 192.168.1.100 | 允许指定 IP 主机连接 |
xhost + user@domain | 允许域用户连接(NIS/INET) |
xhost - 192.168.1.100 | 撤销指定 IP 授权 |
xhost - | 仅允许本地连接(恢复默认安全) |
# 本地 A 机器
xhost +remote_B_ip
# 或配置 SSH 转发(推荐,无需 xhost)
ssh -X user@remote_B
# 远程运行图形程序自动在本地显示
# 宿主机授权
xhost +local:docker
# 运行容器
docker run -it --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
ubuntu:20.04 xclock
编辑 /etc/X0.hosts(显示器编号 0),每行一个授权主机名/IP。重启 X Server 生效。
xhost + 全开放,最小权限原则授权特定 IP/用户。xhost -authorized_host。nolisten tcp)。
xhost 是 X Window 访问控制的基础工具,理解其授权模型与 SSH X11 转发的关系,可安全高效地实现远程图形应用本地显示。现代 Wayland 合成器(GNOME/KDE)已逐步替代 X11,授权机制有所不同。