无忧启动论坛

 找回密码
 注册
搜索

[史上最伟大网管]自主研发!支持HTTP,适应BIOS/UEFI环境! NBpxeServer网启全面公测

查看数: 853 | 评论数: 41 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-8-14 14:03

正文摘要:

本帖最后由 江南一根葱 于 2025-8-14 20:54 编辑 声明:我完全不懂python,我连python写"hello world"都不会全由AI使用python语言编写,我是躺在AI的怀抱里进行开发!NBpxeServer 功能简介与使用说明功能简介本 ...

回复

mygamexxx 发表于 3 分钟前
配置文件修改如下,启用代理,客户机返回到BOOT MANAGER
[General]
listen_ip = 192.168.220.1
server_ip = 192.168.220.1

[DHCP]
enabled = false
mode = proxy
pool_start = 192.168.220.2
pool_end = 192.168.220.254
subnet = 255.255.255.0
router = 192.168.1.1
dns = 192.168.1.1
lease_time = 86400

[FileServer]
shared_root_dir = G:\
tftp_enabled = true
http_enabled = true
http_port = 80

[BootFiles]
bios = ipxe.bios
uefi32 = ipxe32.efi
uefi64 = BOOTG4E.EFI
ipxe = ipxeboot.txt

[SMB]
enabled = false
share_name = pxe


wechat_2025-08-15_164723_515.png (17.46 KB, 下载次数: 0)

wechat_2025-08-15_164723_515.png
mygamexxx 发表于 10 分钟前
试了下BOOTG4E.EFI

wechat_2025-08-15_164027_464.png (13.9 KB, 下载次数: 0)

wechat_2025-08-15_164027_464.png

wechat_2025-08-15_164008_549.png (4.48 KB, 下载次数: 0)

wechat_2025-08-15_164008_549.png

wechat_2025-08-15_164000_278.png (4.81 KB, 下载次数: 0)

wechat_2025-08-15_164000_278.png
2011yaya2007777 发表于 14 分钟前
本帖最后由 2011yaya2007777 于 2025-8-15 16:47 编辑
没有区别!并且NBpxeServer.exe必须在根目录,否则设置就会与显示不一致

这是我的配置:
[General]
listen_ip = 192.168.182.1
server_ip = 192.168.182.1

[DHCP]
enabled = false
mode = proxy
pool_start = 192.168.56.2
pool_end = 192.168.56.254
subnet = 255.255.255.0
router = 192.168.1.1
dns = 192.168.1.1
lease_time = 86400

[FileServer]
shared_root_dir = C:\usr\TinyPXEServer\netboot\
tftp_enabled = true
http_enabled = true
http_port = 80

[BootFiles]
bios = grldr
uefi32 = ipxe32.efi
uefi64 = bootx64.efi
ipxe = ipxeboot.txt

[SMB]
enabled = false
share_name = pxe

我的NBpxeServer文件在:C:\usr\dist\
你是不是需要配置一下。选4,从文件重载配置。
mygamexxx 发表于 15 分钟前
分配192.168.220.2,读取变成192.168.220.128?

wechat_2025-08-15_163511_627.png (25.04 KB, 下载次数: 0)

wechat_2025-08-15_163511_627.png
mygamexxx 发表于 半小时前
本帖最后由 mygamexxx 于 2025-8-15 16:21 编辑

没有区别!并且NBpxeServer.exe必须在根目录,否则设置就会与显示不一致。
[FileServer]
shared_root_dir = G:\
tftp_enabled = true
http_enabled = true
http_port = 80

wechat_2025-08-15_161858_779.png (17.78 KB, 下载次数: 0)

wechat_2025-08-15_161858_779.png
2011yaya2007777 发表于 1 小时前
shared_root_dir = G:\
mygamexxx 发表于 2 小时前
本帖最后由 mygamexxx 于 2025-8-15 14:34 编辑
2011yaya2007777 发表于 2025-8-15 11:57
可以设置任意目录。c:\asd\zxc

如何设置?
配置文件中好像没地方设置,将程序NBpxeServer.exe放在G:根目录
[FileServer]
shared_root_dir = G:
tftp_enabled = true
http_enabled = true
http_port = 80

wechat_2025-08-15_143225_372.png (13.37 KB, 下载次数: 0)

wechat_2025-08-15_143225_372.png
fegr 发表于 2 小时前
谢谢楼主分享
yidaifengniu 发表于 4 小时前
感谢分享
redapple 发表于 4 小时前
用哪个AI这么强大?给个地址
2011yaya2007777 发表于 4 小时前
可以设置任意目录。c:\asd\zxc

点评

如何设置? 配置文件中好像没地方设置 [FileServer] shared_root_dir = tftp_root tftp_enabled = true http_enabled = true http_port = 80  详情 回复 发表于 2 小时前
yahu5 发表于 5 小时前
AI让你搞正了
mygamexxx 发表于 5 小时前
能否将TFTP与HTTP的根目录设置不在程序所在目录下,并且能使用磁盘根目录?
wqsohu 发表于 6 小时前
谢谢分享
江南一根葱 发表于 7 小时前
2011yaya2007777 发表于 2025-8-15 07:08
HTTP已经完美支持断点续传!

反馈一个问题:

应该是启动了多个,我启动两个才遇到有这情况,或者默认有可能监听了0.0.0.0,那就冲突几率大,可能要改成实际ip
2011yaya2007777 发表于 9 小时前
HTTP已经完美支持断点续传!

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

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

点评

应该是启动了多个,我启动两个才遇到有这情况,或者默认有可能监听了0.0.0.0,那就冲突几率大,可能要改成实际ip  详情 回复 发表于 7 小时前
AcidBurn 发表于 11 小时前
谢谢楼主的分享!
yuguotqing 发表于 昨天 23:06
赞 一只支持你!!
zp1688 发表于 昨天 22:43
不错!
2011yaya2007777 发表于 昨天 22:33
你这效率太高了!我明天再测试吧。
luodeman 发表于 昨天 22:03
先生大才,感谢分享,辛苦了
江南一根葱 发表于 昨天 21:50
本帖最后由 江南一根葱 于 2025-8-14 21:58 编辑
2011yaya2007777 发表于 2025-8-14 21:41
不错,现在支持断点续传了!

不过,他不支持:

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


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, 菜单等)均保持原样。






2011yaya2007777 发表于 昨天 21:41
不错,现在支持断点续传了!

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

再训练一下。

点评

您提出了一个非常好的问题,并且观察得非常仔细!您是对的,我之前的实现只解析了 bytes=start-end 格式,没有处理 bytes=-suffix(即从文件末尾计算的范围)这种有效的 Range 请求格式,因此会导致服务器返回 400  详情 回复 发表于 昨天 21:50
江南一根葱 发表于 昨天 21:04
2011yaya2007777 发表于 2025-8-14 20:17
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

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


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, 菜单等)均保持不变。



江南一根葱 发表于 昨天 20:55
2011yaya2007777 发表于 2025-8-14 20:17
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

有没有支持断点续传的软件,我可以让ai调试出来,貌似sanboot需要这个支持吧
2011yaya2007777 发表于 昨天 20:17
成功通过G4E网起虚拟机VM。要是HTTP服务支持断点续传就完美了。

点评

责令AI改了个怕点续传版本,试下看 AI是这么说的 好的,遵照您的要求,我已经将 HTTP 服务器的逻辑修改为支持 Range 请求,从而实现断点续传功能。[/backcolor]核心改动如下:[/backcolor] [*]创建了自定义的  详情 回复 发表于 昨天 21:04
有没有支持断点续传的软件,我可以让ai调试出来,貌似sanboot需要这个支持吧  详情 回复 发表于 昨天 20:55
wn168cn@163.com 发表于 昨天 19:35
感谢楼主分享 !
江南一根葱 发表于 昨天 19:13
season111 发表于 2025-8-14 18:31
感谢分享,可以了,刚才80端口被iis占用了,共享B盘无法使用,找不到

B盘手工smb共享为pxe就行了
handsome_xiang 发表于 昨天 18:49
感谢分享!

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

闽公网安备 35020302032614号

GMT+8, 2025-8-15 16:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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