技术文档
本文档提供MPXE的技术配置详情、API接口说明和故障排查指南。
入门指南请查看 快速开始,无人值守配置请查看 无人值守文档。
配置文件详解
配置文件位于
网络配置参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| DHCP_SERVER_IP | 192.168.2.2 | PXE服务器IP地址 |
| DHCP_SERVER_NIC | eth0 | 监听的网络接口名称 |
| DHCP_OFFER_BEGIN | 192.168.2.100 | DHCP地址池起始IP |
| DHCP_OFFER_END | 192.168.2.150 | DHCP地址池结束IP |
| DHCP_SUBNET | 255.255.255.0 | 子网掩码 |
| DHCP_ROUTER | 192.168.2.1 | 网关地址 |
| DHCP_DNS | 8.8.8.8 | DNS服务器地址 |
| DHCP_FILESERVER | 192.168.2.2 | 文件服务器地址(通常与服务器IP一致) |
| DHCP_BROADCAST | 255.255.255.255 | 广播地址 |
服务配置参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| HTTP_PORT | 80 | HTTP服务端口 |
| TFTP_PORT | 69 | TFTP服务端口 |
| DHCP_MODE_PROXY | false | ProxyDHCP模式开关(用于已有DHCP服务器的环境) |
| LOG_LEVEL | INFO | 日志级别:DEBUG/INFO/WARNING/ERROR |
访问控制参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| DHCP_WHITELIST | [] | MAC白名单列表,留空表示允许所有MAC访问 |
| DHCP_BLACKLIST | [] | MAC黑名单列表,优先级高于白名单 |
引导配置参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| USE_IPXE | true | 启用iPXE引导固件 |
| USE_HTTP | true | 启用HTTP传输(推荐,速度更快) |
| USE_TFTP | true | 启用TFTP服务 |
| MENU_DEFAULT | 默认启动项名称 | |
| MENU_TIMEOUT | 1200 | 菜单超时时间(1/10秒,如1200表示2分钟) |
端口需求汇总
| 端口 | 协议 | 用途 |
|---|---|---|
| 80 | TCP | HTTP服务、Web管理页面 |
| 67 | UDP | DHCP服务(PXE引导) |
| 69 | UDP | TFTP服务(引导文件传输) |
| 111, 2049 | TCP | NFS服务(镜像文件传输) |
服务详解
DHCP服务
DHCP服务负责为客户端分配IP地址并提供PXE引导信息,实现基于RFC2131/RFC2132标准。
- 监听UDP端口67
- 支持标准DHCP和ProxyDHCP两种模式
- 自动识别客户端架构(BIOS/UEFI/ARM64/LoongArch64)
- 支持iPXE链式引导
- 维护IP地址租约记录到leases.json
架构识别规则
| 客户端架构 | 架构代码 | 引导文件 |
|---|---|---|
| BIOS/x86 | 0 | pxelinux.0 / x86.kpxe |
| EFI IA32 | 6 | syslinux.efi32 |
| EFI x86-64 | 7, 9 | syslinux.efi64 / ipxe_efi/x86_64.efi |
| ARM64 | 11 | ipxe_efi/arm64.efi |
| LoongArch64 | 39, 40 | ipxe_efi/loongarch64.efi |
| MIPS (3A4000) | 12 | BOOTMIPS.EFI |
TFTP服务
TFTP服务用于传输小型引导文件,基于RFC1350和RFC2348标准实现。
- 监听UDP端口69
- 支持可变块大小传输(blksize选项,最高5120字节)
- 支持文件大小查询(tsize选项)
- 自动超时重传机制(默认重试10次)
HTTP服务
HTTP服务提供大文件传输和Web管理界面。
- 提供Web管理界面(默认端口80)
- 支持ISO镜像文件高速传输
- 支持分块传输(Range请求)
- 提供实时日志SSE推送
- RESTful API接口
API接口
HTTP服务提供RESTful API接口,用于Web管理和客户端通信。
服务端API
| 接口路径 | 方法 | 说明 | 参数 |
|---|---|---|---|
| /web/get_info | GET | 获取服务器信息和配置 | - |
| /web/get_blackwhitelist | GET | 获取黑白名单配置 | - |
| /web/set_blackwhitelist | POST | 设置黑白名单 | whitelist, blacklist |
| /web/saveandrestart | POST | 保存网络配置并重启服务 | ip_address, gateway, name, netmask, ip_start, ip_end |
| /web/setserver | POST | 设置服务器参数 | log_level, menu_timeout, menu_default, http_port |
| /web/getisoipxe | GET | 获取ISO和PXE配置 | - |
| /web/setisoipxe | POST | 设置ISO和PXE配置 | ipxename, isoname, extpathname, autoinstall, grubcfg, autoinstallcfg |
| /web/delisoipxe | POST | 删除ISO配置 | ipxename |
| /web/rescan | GET | 重新扫描ISO目录 | - |
| /web/restart | GET | 重启所有服务 | - |
| /web/log | GET | 获取日志内容 | lines (可选,默认500) |
| /web/log/sse | GET | SSE实时日志流 | - |
| /web/getclientlist | GET | 获取客户端列表 | - |
客户端API
| 接口路径 | 方法 | 说明 | 参数 |
|---|---|---|---|
| /monitor/statusreport | GET | 客户端上报安装状态 | progress, status, msg, mac |
故障排查
服务启动失败
| 问题 | 解决方案 |
|---|---|
| 提示"NFS服务未安装" | 执行: |
| 提示"iso文件夹中未发现镜像文件" | 确认已将ISO镜像放入iso目录,并重启服务 |
| 端口被占用 | 检查是否有其他服务占用了67、69、80等端口: |
客户端引导失败
| 问题 | 检查项 | 解决方案 |
|---|---|---|
| DHCP发现超时 | 防火墙、客户端PXE支持 | 检查防火墙设置;确认客户端与服务器在同一网络;检查客户端网卡PXE功能 |
| TFTP超时 | TFTP服务状态、网络带宽 | 检查TFTP服务状态;确认网络带宽足够(建议千兆网络) |
| 引导文件找不到 | netboot目录结构 | 检查netboot目录结构是否完整;查看日志获取详细信息 |
| 架构不匹配 | BIOS/UEFI设置 | 确认客户端BIOS/UEFI设置与ISO镜像架构匹配 |
安装过程问题
| 问题 | 解决方案 |
|---|---|
| NFS挂载失败 | 检查NFS服务状态;确认/etc/exports配置正确;检查防火墙NFS端口 |
| 镜像下载慢 | 建议启用HTTP传输模式(设置USE_HTTP=true),速度更快 |
| 应答文件不生效 | 检查应答文件语法;确认grub配置中指定了正确的应答文件路径 |
日志查看
详细日志文件位于
可通过以下方式查看:
- Web界面实时日志查看
- 命令行查看:
tail -f logs/pxe.log - 设置日志级别为DEBUG获取更详细信息
获取帮助
如问题无法解决,请提供以下信息:
- MPXE版本
- 服务器操作系统和版本
- 客户端机器型号和架构
- 相关日志内容(logs/pxe.log)
联系方式:Q群 390480890