lxc 特权和非特权之分

在Proxmox中,即便是为了托管虚拟机才入门,迟早也得接触LXC容器。虽然这种技术提供的隔离性稍弱,但它的灵活性和低资源占用使其适合包括新手在内的各类用户。Proxmox VE Helper-Scripts库更是让LXC的搭建变得非常简便。不过,LXC有特权和非特权之分,大多数默认脚本偏好后者。对于家庭实验室的玩家来说,非特权容器显然是更好的选择。毕竟它们的特权版本虽然在设备直通和网络共享方面很方便,但风险也不容忽视。 特权容器传递设备和挂载网络共享确实很容易。在处理多个GPU密集型服务(比如Ollama、Immich和Jellyfin)时,把同一张卡分给不同虚拟机并不需要研究SR-IOV。你也不用修改内核模块或执行一堆脚本就能让GPU直通。当然,把PCI设备传给无特权LXC就没这么容易了,你得折腾配置文件和UID/GID映射才能让它工作。相比之下,特权容器只需要把设备路径粘贴到资源选项卡就搞定了。 网络共享也是个头疼的问题。非特权容器出于安全考虑禁用了网络共享,这对需要挂载SMB或NFS共享的人来说很不友好。虽然可以通过在主机上挂载共享来解决(比如让Jellyfin、Calibre-Web、Immich和RomM访问),但这并不是个好主意。如果想让这些媒体服务器和NAS配对,这种方法显得相当勉强。而特权容器支持网络共享就方便多了。 不过这种便利性背后隐藏着巨大的安全隐患。因为特权容器的根ID与Proxmox主机的根用户是一样的。一旦这些容器遭到入侵,恶意软件就能轻松渗透到整个家庭实验室。虽然虚拟机能保持相对隔离,但有特权的LXC却不行。它们通过共享UID/GID映射变得非常脆弱。非特权容器为了安全会映射到主机上的随机高数字ID,这也是为什么它们配置设备直通这么麻烦的原因。 好在现在还有更好的解决方案。你可以使用SR-IOV技术来把同一根PCI设备分配给多个虚拟机。或者利用Proxmox VE Helper-Scripts库中的模板来简化部署过程。对于那些不想冒险的用户来说,放弃特权容器可能是个明智的选择。如果你确实需要快速配置设备直通或网络共享功能,那可能还得在安全性和便利性之间做出权衡。