技术文档

本文档提供MPXE的技术配置详情、API接口说明和故障排查指南。

入门指南请查看 快速开始,无人值守配置请查看 无人值守文档

配置文件详解

配置文件位于 config/config.json,支持完整配置项如下:

网络配置参数

参数 默认值 说明
DHCP_SERVER_IP 192.168.2.2 PXE服务器IP地址(首次启动自动识别)
DHCP_SERVER_NIC eth0 监听的网络接口名称(首次启动自动选择第一个UP网卡)
DHCP_SERVER_PORT 67 DHCP服务端口
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 自动计算 广播地址(为空时根据IP和子网掩码自动计算)
DHCP_LEASE_DURATION 7200 DHCP租约有效期(秒),到期自动清理
DHCP_CHECK_IP_AVAILABILITY true 分配IP前进行ARP缓存+ping双重验证,避免IP冲突
HTTP_SERVER_IP 172.0.0.1 HTTP服务监听地址(默认为回环地址)

服务配置参数

参数 默认值 说明
HTTP_PORT 80 HTTP服务端口(Web管理界面端口,支持自定义)
TFTP_PORT 69 TFTP服务端口
TFTP_SERVER_IP 动态 TFTP服务器IP(自动同步DHCP_SERVER_IP)
DHCP_MODE_PROXY false ProxyDHCP模式开关(用于已有DHCP服务器的环境)
LOG_LEVEL INFO 日志级别:DEBUG/INFO/WARNING/ERROR/CRITICAL
LEASES_FILE config/leases.json DHCP租约持久化文件路径
SYSLOG_SERVER ""(空) 远程Syslog服务器地址(留空则不启用)
SYSLOG_PORT 514 远程Syslog服务器端口

访问控制参数

参数 默认值 说明
DHCP_WHITELIST [] MAC白名单列表,留空表示允许所有MAC访问
DHCP_BLACKLIST [] MAC黑名单列表,优先级高于白名单

引导配置参数

参数 默认值 说明
USE_DHCP true 启用DHCP服务
USE_HTTP true 启用HTTP传输(推荐,速度更快)
USE_TFTP true 启用TFTP服务
MENU_DEFAULT ""(空) 默认启动项名称(匹配ISO目录ID,匹配不到则默认第一个)
MENU_TIMEOUT 1200 菜单超时时间(秒,如1200表示20分钟,-1为永不超时)
NETBOOT_DIR netboot 网络引导文件根目录
NETBOOT_FILE ""(空) 强制指定的引导文件名(空则根据架构自动选择)
STATIC_CONFIG ""(空) 静态租约配置

端口需求汇总

端口 协议 用途
80 TCP HTTP服务、Web管理页面
67 UDP DHCP服务(PXE引导)
69 UDP TFTP服务(引导文件传输)
111, 2049 TCP NFS服务(镜像文件传输)

服务详解

DHCP服务

DHCP服务负责为客户端分配IP地址并提供PXE引导信息,实现基于RFC2131/RFC2132标准。

架构识别规则

客户端架构 架构代码 引导文件
EFI IA32 6 grub_efi/x86_64.efi
EFI x86-64 7, 9 grub_efi/x86_64.efi
ARM64 11 grub_efi/arm64.efi
LoongArch64 39, 40 grub_efi/loongarch64.efi
MIPS (3A4000) 12 grub_efi/mips64el.efi

TFTP服务

TFTP服务用于传输小型引导文件,基于RFC1350和RFC2348标准实现。

HTTP服务

HTTP服务提供大文件传输和Web管理界面。

API接口

HTTP服务提供RESTful API接口,用于Web管理和客户端通信。

服务端API

接口路径 方法 说明 参数
/web/get_info GET 获取服务器网卡信息、服务状态和配置 -
/web/get_server_info GET 获取服务端配置和ISO镜像列表 -
/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服务未安装" 执行:sudo yum install nfs-utilssudo apt install nfs-kernel-server
提示"iso文件夹中未发现镜像文件" 确认已将ISO镜像放入iso目录,并重启服务
端口被占用 检查是否有其他服务占用了67、69、80等端口:sudo netstat -tlnp | grep -E ':(67|69|80)'

客户端引导失败

问题 检查项 解决方案
DHCP发现超时 防火墙、客户端PXE支持 检查防火墙设置;确认客户端与服务器在同一网络;检查客户端网卡PXE功能
TFTP超时 TFTP服务状态、网络带宽 检查TFTP服务状态;确认网络带宽足够(建议千兆网络)
引导文件找不到 netboot目录结构 检查netboot目录结构是否完整;查看日志获取详细信息
架构不匹配 UEFI设置 确认客户端UEFI设置与ISO镜像架构匹配

安装过程问题

问题 解决方案
NFS挂载失败 检查NFS服务状态;确认/etc/exports配置正确;检查防火墙NFS端口
镜像下载慢 建议启用HTTP传输模式(设置USE_HTTP=true),速度更快
应答文件不生效 检查应答文件语法;确认grub配置中指定了正确的应答文件路径

日志查看

详细日志文件位于 logs/pxe.log

可通过以下方式查看:

获取帮助

如问题无法解决,请提供以下信息:

联系方式:Q群 390480890