PXE
定义
PXE 是一种由固件与网卡共同实现的网络引导环境,其作用是在本机没有可用硬盘或操作系统的情况下,让计算机从网络上取得引导代码并运行[1]。在 PXE 启动过程中,被引导的机器被称为 PXE 客户机(client),它可以是服务器、台式机、笔记本,也可以是任何内置 PXE 启动代码的设备[3]。
PXE 并不是操作系统,也不是一个单独的程序,而是一套写在网卡固件中的规范,规定客户机如何定位引导服务器、如何下载引导文件以及如何把控制权交给下载到的程序[4]。规范通过扩展客户机固件、增加一组预定义的应用程序接口(API)来实现这一目标,同时使用了 IP、UDP、DHCP 和 TFTP 等网络协议以及 GUID、UUID、通用网络驱动接口(UNDI)等概念[1]。
原理
PXE 的工作流程在协议层面主要依靠 DHCP 与 TFTP 两种服务:DHCP 负责告诉客户机“到哪里找引导服务器”,TFTP 负责把初始引导程序和后续文件搬运到客户机内存[1]。客户机固件首先向网络广播一个带有 PXE 选项的扩展 DHCPDISCOVER 包,目标端口为 67/UDP,普通 DHCP 服务会忽略其中的 PXE 选项,具备 PXE 能力的服务则会回应[3]。
当网络中部署了 PXE 重定向服务(代理 DHCP)时,该服务收到扩展 DHCPDISCOVER 包后,会向客户机的 68/UDP 端口回送带有 PXE 选项的应答,其中包含 PXE 发现控制字段、可用引导服务器类型表、引导菜单提示与超时值等信息[3]。由于代理 DHCP 与标准 DHCP 不能共用 67/UDP 端口,前者通常运行在 4011/UDP 端口上,标准 DHCP 在应答中加入专用选项,使客户机知道可以去同一主机的 4011/UDP 端口寻找代理服务[1]。
客户机获得 IP 地址与引导服务器信息后,会通过多播或单播向 4011/UDP 端口发送带 PXE 选项的扩展 DHCPREQUEST 包,或者广播到 67/UDP 端口;该包中带有引导服务类型与引导层信息,因此一个守护进程可以同时提供多种引导服务[1]。随后固件按服务器给出的路径向网络引导程序(NBP)发起请求,用 TFTP 把该程序下载到内存,必要时进行校验,最后转去执行它[3]。
在常见的 Linux 部署实践中,PXE 网卡向 DHCP 服务器发出请求后,DHCP 不仅返回 IP 地址、子网掩码、网关等标准信息,还给出 TFTP 服务器地址与引导镜像(如 pxelinux.0)的位置;客户机据此从 TFTP 取回镜像并执行,再按 MAC 地址、IP 地址的十六进制形式依次查找 pxelinux.cfg 目录下的配置文件,最终下载内核与根文件系统[2]。
sequenceDiagram
participant C as PXE 客户机
participant D as DHCP / 代理 DHCP
participant T as TFTP 服务器
C->>D: 扩展 DHCPDISCOVER (67/UDP)
D->>C: 应答:IP、引导服务器、NBP 路径
C->>D: 扩展 DHCPREQUEST (4011/UDP)
C->>T: 请求网络引导程序
T->>C: 下载 NBP 至内存
C->>T: 下载内核与根文件系统
C->>C: 执行引导程序
发展历程
PXE 的源头是英特尔在 1997 年推动的有线管理基线规范(Wired for Management Baseline,WfM),它作为该框架的组成部分被提出,自 WfM 2.0 起另立为独立的 PXE 1.0 规范[5]。1999 年 9 月 20 日,英特尔与 Systemsoft 联合公布了 PXE 2.1 版规范,这也是此后被广泛引用的一版文本[1]。
2.1 版规范为 6 种系统类型分配了体系结构标识,覆盖 IA-64 与 DEC Alpha 等,但只有 IA-32 被完整描述;英特尔在 IA-64 的 EFI 固件中集成了 PXE,使这一实现成为事实标准[4]。2.1 版描述的是基于 IPv4 的网络引导流程,并未涵盖 IPv6 下的 PXE;后者的流程与 DHCP6 选项写入了 UEFI 2.2 及之后的规范,UEFI 2.6 在第 23.3.1 节给出了 IPv6 版 PXE 的说明[5]。
在安全能力上,WfM 2.0 引入了引导完整性服务(Boot Integrity Services,BIS),通过数字签名认证下载的引导镜像,使网络启动只用经过许可的镜像;2.1 版的引导服务器也可支持该服务,客户机借助同一服务器下载的校验文件验证取回的 NBP[6]。
应用
PXE 最典型的用途是在不接触机器的情况下完成系统安装与配置,例如为终端用户准备新电脑、刷新 BIOS、对磁盘分区格式化以及安装操作系统,都可以通过网络引导远程完成[6]。在数据中心与服务器运维中,它常被用来把操作系统镜像批量分发到大量裸机,把安装流程从逐台插盘改为集中下发[2]。
在教学与科研场景中,PXE 被用于机房和实验室的软件批量部署:搭建 PXE 服务器并配置 DHCP 服务与 TFTP 服务,把需要安装的软件打包成镜像上传到 TFTP 服务器,即可让多台机器同时完成部署[7]。在计算机硬件检测中,借助 PXE 实现远程启动、硬盘网络检测与维护,可以减少逐台操作带来的工作量[7]。
云平台与容器化基础设施也将 PXE 作为底层交付手段,用其完成部署节点的操作系统自动化安装,再叠加后续的容器编排[7]。在测试环境中,中央服务器可以按待测服务器的需求生成包含内核与文件系统的根文件系统,通过 PXE 把内核加载进待测机内存,再以网络挂载方式使用该根文件系统,形成无盘测试环境[8]。
局限
PXE 的运行高度依赖网络与配套服务,DHCP、TFTP 或引导服务器任一环节不可用,客户机就无法取得引导文件,因此对网络基础设施的稳定性要求较高[7]。同时,PXE 服务器承载镜像与文件分发,容易成为瓶颈或单点故障,公开检索到的研究也把镜像管理非云原生、文件服务器受限列为传统网络引导方式的不足[7]。
协议覆盖面存在历史遗留限制:PXE 2.1 只规定了 IPv4 环境下的引导过程,IPv6 下的 PXE 需依赖 UEFI 规范另作描述,部署纯 IPv6 网络时不能只按 2.1 版文本实施[5]。体系结构支持也并不均衡,规范虽列出 6 种系统类型,却只对 IA-32 作出完整规定[4]。
此外,TFTP 本身不提供加密与身份认证机制,引导文件在传输环节的完整性主要依靠 BIS 一类的附加校验手段保障,未启用相应服务时下载内容缺乏验证[6]。随着算力网络与异构芯片的发展,传统 PXE 无盘启动在启动效率、交互流程复杂度和镜像管理上也显露出不足,业界已在探索基于新型总线与安全启动的替代方案[7]。
参见
参考资料
- [科普中国]-预启动执行环境 [引用日期2026-10-29]
- appdx_pxeboot [引用日期2026-10-29]
- 图文详情——科普中国资源服务 [引用日期2026-10-29]
- Preboot Execution Environment [引用日期2026-10-29]
- Preboot Execution Environment (PXE) [引用日期2026-10-29]
- Wired for Management Standard [引用日期2026-10-29]
- NSTL国家科技图书文献中心 [引用日期2026-10-29]
- google.com 上的网页 [引用日期2026-10-29]