本地主机上的LXC来宾的快速X?


12

如何有效地在LXC容器中运行X应用程序?

ssh -Y guest

太慢-没有图形加速ssh -Y-一切都必须使用传统的X11协议在虚拟网络上传输。

能够在主机和来宾应用程序之间复制粘贴是理想的,但不是必需的。(出于我的目的)运行两台X服务器(一台用于主机,一台用于来宾)是必不可少的。

我无法在guest虚拟机内部运行本机Xorg,因为它抱怨/dev/tty0丢失,并且无法在guest虚拟机中运行mknod该设备,因为我拒绝了权限,即使以root身份进行操作也是如此。

Answers:


12

您可能要尝试使用xpra或NX,VNC等,如果需要GL加速,也可以看看VirtualGL

如果可以与主机共享目录,则可以将mmap与xpra一起使用(指定mmap文件的路径),这可以显着提高性能。


有人可以分享有关如何在LXC中使用Xpra和Xephyr的安全示例吗?
baptx

3

注意:这种方法有点不合理。它还不支持在主机和来宾之间复制和粘贴- 完全不安全!

  1. /tmp在来宾配置中添加为附加文件系统,该文件系统会传递到/tmp主机上。
  2. 确保未将X服务器配置为接受任何类型的网络连接,因为下一步将禁用X安全性。
  3. 键入xhost +在一个终端窗口。
  4. 启动LXC来宾
  5. 在来宾内以所需的普通用户身份登录(即不是以root用户身份),然后键入

DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &

DISPLAY=:2 /etc/X11/xinit/Xsession

在来宾内部(2如果使用来连接到多个LXC VM,则将s 替换为要使用的屏幕号。)调整分辨率(-screen)和DPI(-dpi)参数以适合。

这样做是建立与来宾中运行的Xephyr嵌套X服务器的“代理”连接(使用UNIX域套接字和MIT-SHM扩展),以及从Xephyr到主机X服务器的另一个代理连接(使用UNIX域套接字) ,但由于LXC的设计,据我所知无法使用MIT-SHM。对于LXC guest虚拟机,这似乎是最快的配置,至少对于我的硬件(nvidia)的开源驱动程序而言。


是否有将Xephyr与LXC结合使用的安全方法?firejail支持使用Xephyr进行X11隔离,因此我想我们也可以使用LXC进行隔离。
baptx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.