找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 39906|回复: 472

[发布] [史上最伟大网管]自主研发!支持HTTP,适应BIOS/UEFI环境! NBpxe网启服务器(keep_alive)

   火... [复制链接]
发表于 2025-8-14 14:03:10 | 显示全部楼层 |阅读模式
本帖最后由 江南一根葱 于 2026-5-5 19:24 编辑

🚀 N B p x e S e r v e r 🚀
极简 · 暴力 · 全能
—— 轻量级 PXE 网络启动服务器巅峰之作 ——


📡 震撼人心!单文件集成 ProxyDHCP + TFTP + HTTP + SMB 📡





🎯 项目精魂 / Project Soul
本工具是一款轻量级绿色单文件PXE服务器,专为同时兼容传统 BIOS现代 UEFI(特别是 VMware 环境)而生。
它不挑环境,无需复杂安装,可与您现有的路由器、交换机完美共存,是部署网络启动环境的“深山利器”!


🔗 源码仓库:https://github.com/zwj4031/NBpxeServer

📥 立即下载
Win7 32位专用版: NBPxeServer-x86.part1.rar (3.81 MB, 下载次数: 64) NBPxeServer-x86.part2.rar (3.69 MB, 下载次数: 65)





📦 使用秘籍 / Usage Guide
🔥 极简操作:直接把工具放入 ipxefm 目录即可起飞!

⚠️ 避坑指南:
Grub2Grub4dos for UEFI 均不支持在 PXE 菜单阶段启动后工作,只能作为第一启动文件
NetGrubFM 能在 iPXE 菜单阶段启动并使用(经过特殊处理)。
📖 更多硬核说明请移步 ➜ 2 楼




🆕 进化之路 / Update Logs

🌟 2026.05.05 更新 - v0.5.12 (最新稳定版)
  • 🚀 HTTP 协议升级:支持 Keep-Alive 持久连接,响应速度大幅提升。
  • 🧵 TFTP 暴力多线程:默认开启 60 线程,并发传输不卡顿。


💎 2025.11.20 更新 - v1.0.3
  • 🛠️ HTTP/1.1 全面优化,支持 HEAD 方法,完美兼容 httpdisk 挂载 ISO
  • 📑 增加 Last-Modified 和 ETag,缓存机制更智能。
  • ✨ 全面美化 README.md 文档,颜值即正义。


🔙 往期辉煌:
  • 📅 09.26:动态生成 iPXE 菜单,彻底破除 255 字节限制
  • 📅 09.17:预登记模式上线!锁定 IP 与计算机名,机房维护神器。
  • 📅 09.15:目录浏览即启动!支持 efi、iso、wim 免配置直启
  • 📅 09.14:实时展示硬盘 SMART 健康状态 与网卡百兆/千兆信息。
  • 📅 09.02:支持安全启动 (Secure Boot) !! 传统 BIOS 与 UEFI 通吃。
  • 📅 08.17:HTTP 支持断点续传,共享方式增加“可写模式”。





💡 核心亮点功能清单


绿色单文件:不写注册表,随拷随用。
多协议支持:内置 ProxyDHCP、TFTP、HTTP、SMB。
状态监控:客户机在线/离线/心跳一目了然。
远程克星:支持远程唤醒、执行、重启、关机。
动态黑科技:iPXE 动态菜单,可视化管理启动项。






📸 界面预览 / Preview
GIF.gif





🤖 作者的“凡尔赛”声明
本人完全不懂 Python,连 Hello World 都不会写 🤯
本项目 100% 由 AI 编写,我只是安稳地躺在 AI 的怀抱里进行开发 😂
感谢 AI,让“小白”也能造出核武器级工具!🙏






🔗 关联信息:
示例所需文件 | 详细使用说明

评分

参与人数 3无忧币 +12 收起 理由
freesoft00 + 5
redapple + 2 神马都是浮云
ksafei + 5 很给力!

查看全部评分

 楼主| 发表于 2025-9-15 21:54:32 | 显示全部楼层
本帖最后由 江南一根葱 于 2026-5-5 17:34 编辑

🛠️ N B p x e S e r v e r 🛠️
使用说明 · 注意事项 · 核心内幕


⚠️ 每次更新后,请务必手动删除 ipxefm_cli.ini 和 NBpxe.ini 再运行! ⚠️





📌 一、 核心前言 / Preface
  • 🛠️ 打磨阶段:本工具目前处于功能迭代与微调期,文件结构变化较快,请养成更新后清理旧配置的习惯。
  • 📡 高度依赖:此网启服务器与 iPXEFM 项目 深度绑定。如需启动其他项目,请自行钻研并修改启动文件。
  • 💡 新手建议:初学者建议先在配置中 关闭“PXE 菜单”,仅保留“iPXE 菜单”以获得更稳健的体验。

📡 二、 关于 PXE 与 iPXE 菜单的深度解析
● PXE 菜单:主要用于调用其他 TFTP 服务器或网启文件。支持安全启动,开机提示时按下 "F8" 即可自由选择 bootmgfw.efi、iPXE.efi 等。

● 特别注意(避坑必看):
在 PXE 菜单阶段,除了 iPXE,启动其他引导文件(如 Grub2、Grub4dos for UEFI)均不支持 ProxyDHCP
※ 解决方案:若必须使用,请在“修改配置”->“引导文件”里直接将 UEFI64 启动文件改为 netgrubfmg4e.efi





📜 三、 启动菜单项定义 (256 字节限制版)
定义格式:菜单文本, 启动文件, 类型(4位Hex), 服务器IP


  1. iPXE (iPXEFM_Menu), ipxeboot.txt, 8001, %tftpserver%
  2. Bind_ClientIP, %dynamicboot%=whoami, 8005, %tftpserver%
  3. iPXE_File_Manager, %dynamicboot%=ipxefm, 0001, %tftpserver%
  4. newbeeplus.wim, %dynamicboot%=/newbeeplus.wim, 8005, %tftpserver%
  5. newbeeplus.iso, %dynamicboot%=/newbeeplus.iso, 8006, %tftpserver%
  6. netboot.xyz, https://boot.netboot.xyz, 8002, %tftpserver%
  7. GRUB4DOS FOR UEFI, g4e.efi, 8003, %tftpserver%
  8. GRUBFM, grubfmx64.efi, 8004, %tftpserver%
  9. Boot from Local Disk, , 0000, 0.0.0.0
复制代码





🧪 四、 核心黑科技:动态启动原理解析
  • ⚙️ 动态变量 %dynamicboot%:
    它的值实际上是 http://${pxebs/next-server}/dynamic.ipxe?bootfile
    dynamic.ipxe 是服务器内存中动态生成的,你在物理目录里找不到它,这就是“无中生有”的黑科技。
  • 🔄 WIM/ISO 直启:
    示例:%dynamicboot%=/newbeeplus.wim 表示直接从 HTTP 下载并启动。
    (注:当前版本默认写死 80 端口,后续根据需求开放端口自定义)
  • 🖥️ 新增:预登记模式 (Bind_ClientIP):
    教室/机房场景的神技。选中后进入登记界面。假设你给 1 号机分了 192.168.11.1,登记后该机重启,无论是进 PE 还是原生 Windows,都会被强制锁定获得该 IP。
    ※ 前提:需先在右键菜单中批量添加客户机。
  • 📁 新增:真 · iPXE_File_Manager 模式:
    进入后自动扫描 HTTP 目录下的 iso, wim, img, ima, efi 等格式。浏览即启动,无需手动写菜单,极度丝滑。





🖼️ 视觉效果对比 / Visual Preview



PXE 菜单启动效果 pxe菜单.png
iPXE 菜单启动效果 ipxe菜单是.png

💡 这里的启动文件完全独立于 ipxeboot.txt,配置灵活度拉满!




NBpxeServer - 为网启发烧友而生

点评

iPXE菜单启动效果: iPXE这个菜单是怎么出现的?  详情 回复 发表于 2025-9-16 23:47
回复

使用道具 举报

 楼主| 发表于 2025-9-18 12:18:31 | 显示全部楼层
本帖最后由 江南一根葱 于 2026-5-5 17:36 编辑

🎮 玩 法 一 : 懒 人 终 极 方案 🎮
零配置 · 免写脚本 · 全自动搜寻启动


🚀 告别繁琐代码!把 PE 丢进去就能启,大山里的妹子也能秒学会! 🚀





📁 STEP 1. 整理你的“武器库”
首先下载 ipxefm,把你珍藏的那一堆 PE 文件直接丢进目录。
支持自定义建立各种 iso、wim、img 文件夹,强迫症患者的福音,文件再多也能清清爽爽,强如“宇宙第一快”的文件索引!

放iso.png





⚡ STEP 2. 点火!启动 NBpxeServer
运行服务器程序,无需复杂设置,它会自动识别你的目录结构并开启 HTTP/TFTP 分发服务。

2.png





🖥️ STEP 3. 客户机一键“点播”
客户机进入网络启动环境,在第二个 iPXE 菜单 界面轻按 F8,在弹出的列表中选择 “List Files”

3.png





🎉 STEP 4. 见证奇迹的时刻
此时,你目录里所有的 PE 文件会像电影清单一样整齐排列在屏幕上。
看中哪个启哪个,选中后直接按回车,起飞!

4.png





💡 葱哥点评:
这种玩法彻底终结了“手写菜单时代”。
只要你会复制粘贴文件,你就是全街最靓的装机大神!



更多高阶玩法持续更新中 >>
回复

使用道具 举报

发表于 2025-8-14 14:12:08 | 显示全部楼层
这是要出力作的前奏啊!注意身体啊!
回复

使用道具 举报

发表于 2025-8-14 14:27:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2025-8-14 14:40:24 | 显示全部楼层
感谢分享了
回复

使用道具 举报

发表于 2025-8-14 15:03:40 | 显示全部楼层
感谢分享原创优秀资源
回复

使用道具 举报

发表于 2025-8-14 15:31:09 | 显示全部楼层
感谢分享了
回复

使用道具 举报

发表于 2025-8-14 16:10:18 | 显示全部楼层
网刻这类的东西 都快忘完了
回复

使用道具 举报

发表于 2025-8-14 16:28:42 | 显示全部楼层
东西是好东西,奈何平时用不到。
回复

使用道具 举报

发表于 2025-8-14 16:42:47 | 显示全部楼层
感谢楼主的分享,超赞
回复

使用道具 举报

发表于 2025-8-14 17:48:13 | 显示全部楼层
版主,版本高了win7用不了,能否分享下py文件感谢

点评

编译了个低版本的  详情 回复 发表于 2025-8-14 18:13
7用有啥提示没  详情 回复 发表于 2025-8-14 17:54
回复

使用道具 举报

 楼主| 发表于 2025-8-14 17:54:14 | 显示全部楼层
season111 发表于 2025-8-14 17:48
版主,版本高了win7用不了,能否分享下py文件感谢

7用有啥提示没
回复

使用道具 举报

 楼主| 发表于 2025-8-14 18:13:36 | 显示全部楼层
season111 发表于 2025-8-14 17:48
版主,版本高了win7用不了,能否分享下py文件感谢

编译了个低版本的
回复

使用道具 举报

发表于 2025-8-14 18:31:32 | 显示全部楼层
本帖最后由 season111 于 2025-8-14 18:56 编辑

感谢分享,可以了,刚才80端口被iis占用了,共享B盘无法使用,找不到

点评

B盘手工smb共享为pxe就行了  详情 回复 发表于 2025-8-14 19:13
回复

使用道具 举报

发表于 2025-8-14 18:49:12 | 显示全部楼层
感谢分享!
回复

使用道具 举报

 楼主| 发表于 2025-8-14 19:13:26 | 显示全部楼层
season111 发表于 2025-8-14 18:31
感谢分享,可以了,刚才80端口被iis占用了,共享B盘无法使用,找不到

B盘手工smb共享为pxe就行了
回复

使用道具 举报

发表于 2025-8-14 20:17:19 来自手机 | 显示全部楼层
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

点评

责令AI改了个怕点续传版本,试下看 AI是这么说的 好的,遵照您的要求,我已经将 HTTP 服务器的逻辑修改为支持 Range 请求,从而实现断点续传功能。[/backcolor]核心改动如下:[/backcolor] [*]创建了自定义的  详情 回复 发表于 2025-8-14 21:04
有没有支持断点续传的软件,我可以让ai调试出来,貌似sanboot需要这个支持吧  详情 回复 发表于 2025-8-14 20:55
回复

使用道具 举报

 楼主| 发表于 2025-8-14 20:55:04 | 显示全部楼层
2011yaya2007777 发表于 2025-8-14 20:17
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

有没有支持断点续传的软件,我可以让ai调试出来,貌似sanboot需要这个支持吧
回复

使用道具 举报

 楼主| 发表于 2025-8-14 21:04:06 | 显示全部楼层
2011yaya2007777 发表于 2025-8-14 20:17
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

责令AI改了个怕点续传版本,试下看 NBpxeSer断点续传测试.part2.rar (1.52 MB, 下载次数: 18) NBpxeSer断点续传测试.part1.rar (3.81 MB, 下载次数: 17)


AI是这么说的

好的,遵照您的要求,我已经将 HTTP 服务器的逻辑修改为支持 Range 请求,从而实现断点续传功能。

核心改动如下:

  • 创建了自定义的 :这个类继承自 http.server.SimpleHTTPRequestHandler,并重写了 do_GET 方法。

  • 方法的新逻辑

    • 它会检查客户端请求头中是否包含 Range 字段。

    • 如果没有 Range 头,它会像以前一样,发送整个文件。

    • 如果,它会解析请求的字节范围,并返回 206 Partial Content 状态码,以及所请求的那部分文件数据。

    • 它还会正确处理无效的范围请求,返回 416 Range Not Satisfiable 错误。

    • 为了告知客户端服务器支持此功能,响应头中会加入 Accept-Ranges: bytes。


  • 无缝集成:run_http_server 函数现在使用这个新的 RangeRequestHandler 来处理请求,而脚本的其他所有部分(DHCP, TFTP, SMB, 菜单等)均保持不变。



回复

使用道具 举报

发表于 2025-8-14 21:41:16 | 显示全部楼层
不错,现在支持断点续传了!

不过,他不支持:
bytes=-8         #从末尾读8字节
返回错误代码400:BAD_REQUEST(错误的请求)

再训练一下。

点评

您提出了一个非常好的问题,并且观察得非常仔细!您是对的,我之前的实现只解析了 bytes=start-end 格式,没有处理 bytes=-suffix(即从文件末尾计算的范围)这种有效的 Range 请求格式,因此会导致服务器返回 400  详情 回复 发表于 2025-8-14 21:50
回复

使用道具 举报

 楼主| 发表于 2025-8-14 21:50:32 | 显示全部楼层
本帖最后由 江南一根葱 于 2025-8-14 21:58 编辑
2011yaya2007777 发表于 2025-8-14 21:41
不错,现在支持断点续传了!

不过,他不支持:

NBpxeSer断点续传2.part2.rar (1.33 MB, 下载次数: 29) NBpxeSer断点续传2.part1.rar (4 MB, 下载次数: 31)


AI回复:

您提出了一个非常好的问题,并且观察得非常仔细!您是对的,我之前的实现只解析了 bytes=start-end 格式,没有处理 bytes=-suffix(即从文件末尾计算的范围)这种有效的 Range 请求格式,因此会导致服务器返回 400 Bad Request。

我已经修正了这个问题。新的 RangeRequestHandler 类现在可以正确解析并响应以下所有 Range 格式:

  • bytes=100-200:请求第100到第200个字节。

  • bytes=100-:请求从第100个字节到文件末尾的所有内容。

  • bytes=-800:请求文件的最后800个字节 (这是您指出的未支持的功能)。


我对 do_GET 方法中的范围解析逻辑进行了重写,使其更加健壮和符合 RFC 7233 标准。其他所有功能(DHCP, TFTP, SMB, 菜单等)均保持原样。






回复

使用道具 举报

发表于 2025-8-14 22:03:10 | 显示全部楼层
先生大才,感谢分享,辛苦了
回复

使用道具 举报

发表于 2025-8-14 22:33:55 来自手机 | 显示全部楼层
你这效率太高了!我明天再测试吧。
回复

使用道具 举报

发表于 2025-8-14 22:43:11 | 显示全部楼层
回复

使用道具 举报

发表于 2025-8-14 23:06:24 | 显示全部楼层
赞 一只支持你!!
回复

使用道具 举报

发表于 2025-8-15 07:08:25 | 显示全部楼层
HTTP已经完美支持断点续传!

反馈一个问题:
服务状态:TFTP 红 已停止
日志:TFTP:致命错误,无法绑定端口:[WinError 10048]  通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
但是实际上无论tftp/http都工作正常。这个tftp服务是哪里提供的?

如果点一下服务状态:TFTP 的红方框,变绿了,但是“已停止”仍然是红的。此时再执行HTTP传输,则失败。

点评

应该是启动了多个,我启动两个才遇到有这情况,或者默认有可能监听了0.0.0.0,那就冲突几率大,可能要改成实际ip  详情 回复 发表于 2025-8-15 08:58
回复

使用道具 举报

 楼主| 发表于 2025-8-15 08:58:35 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2025-8-15 07:08
HTTP已经完美支持断点续传!

反馈一个问题:

应该是启动了多个,我启动两个才遇到有这情况,或者默认有可能监听了0.0.0.0,那就冲突几率大,可能要改成实际ip
回复

使用道具 举报

发表于 2025-8-15 10:00:22 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-8-15 11:31:45 | 显示全部楼层
能否将TFTP与HTTP的根目录设置不在程序所在目录下,并且能使用磁盘根目录?

点评

现在可以分别设置了  详情 回复 发表于 2025-8-17 20:01
回复

使用道具 举报

发表于 2025-8-15 11:38:26 | 显示全部楼层
AI让你搞正了
回复

使用道具 举报

发表于 2025-8-15 11:57:43 来自手机 | 显示全部楼层
可以设置任意目录。c:\asd\zxc

点评

如何设置? 配置文件中好像没地方设置 [FileServer] shared_root_dir = tftp_root tftp_enabled = true http_enabled = true http_port = 80  详情 回复 发表于 2025-8-15 14:26
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-18 02:38

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表