无忧启动论坛

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

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

  [复制链接]
1#
发表于 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
回复

使用道具 举报

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

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

再训练一下。

点评

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

使用道具 举报

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

使用道具 举报

4#
发表于 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
回复

使用道具 举报

5#
发表于 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
回复

使用道具 举报

6#
发表于 2025-8-15 15:32:15 来自手机 | 显示全部楼层
shared_root_dir = G:\
回复

使用道具 举报

7#
发表于 2025-8-15 16:38:09 | 显示全部楼层
本帖最后由 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,从文件重载配置。
回复

使用道具 举报

8#
发表于 2025-8-15 17:15:41 | 显示全部楼层
你已经成功网起,只是没有找到菜单。
在命令行执行:
root
pxe

点评

如图  详情 回复 发表于 2025-8-15 17:32
回复

使用道具 举报

9#
发表于 2025-8-15 17:46:21 | 显示全部楼层
在菜单里设置 set http
在 G:\ 建立 g:\efi\grub\   安放 menu.lst
在 G:\ 建立 g:\efi\grub\ext\   安放 ntboot

点评

建议解决proxydhcp支持的问题 https://github.com/a1ive/grub2-filemanager 编译出来的efi文件是支持proxydhcp的  详情 回复 发表于 2025-8-15 19:00
回复

使用道具 举报

10#
发表于 2025-8-15 19:05:40 来自手机 | 显示全部楼层
proxydhcp与dhcp有什么不同?系统里只留一个dhcp不好吗?g4e是静态绑定ip的。

点评

https://github.com/a1ive/grub/blob/77322411ddd574b461ca7c2b666c881bae51d8bd/grub-core/net/drivers/efi/efinet.c#L468 支持proxydhcp代码好像在这里,瞎猜的  详情 回复 发表于 2025-8-15 20:07
按ai的说法,proxydhcp提供dhcp服务但不分配ip地址,只给出next-server也就是tftp地址和启动文件  详情 回复 发表于 2025-8-15 19:43
回复

使用道具 举报

11#
发表于 2025-8-15 19:24:26 来自手机 | 显示全部楼层
我理解这是虚拟机或者实体机的UEFI固件提供的。
回复

使用道具 举报

12#
发表于 6 天前 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2025-8-24 09:05 编辑

昨天突然被Windows Defender删除了,说是有Trojan:Win32/Wacatac.B!ml病毒!以前一直相安无事。
设置白名单,重新下载后,运行有问题:
ProxyDHCP: 无法绑定 4011: [WinError 10049] 在其上下文中,该请求的地址无效。
DHCP: 致命错误,无法绑定端口: [WinError 10049] 在其上下文中,该请求的地址无效。
TFTP: 致命错误,无法绑定端口: [WinError 10049] 在其上下文中,该请求的地址无效。
HTTP: 致命错误,无法启动: [WinError 10049] 在其上下文中,该请求的地址无效。
HTTP: 线程已停止。


鬼抽筋,现在又正常了。Windows Defender提醒了一次,选择允许。记得以前添加过嘛。

“SMB: 删除旧共享'pxe'时出错,可能不存在。”
SMB已经禁止,就不需要执行删除功能了吧。


点评

好像禁用后删除下也是必要的,如果是之前共享着,再删除下。。如果有同名共享,删除下。不过大多数情况下是有点重复  详情 回复 发表于 6 天前
貌似有时候也要tinypxe那样ini删除大法  详情 回复 发表于 6 天前
回复

使用道具 举报

13#
发表于 6 天前 来自手机 | 显示全部楼层
明白了
回复

使用道具 举报

14#
发表于 6 天前 来自手机 | 显示全部楼层
如果首先运行服务器,然后从VM虚拟机正常启动G4E,在菜单或者命令行执行 "pxe init",从而实现网起,这是不是你说的实现了proxydhcp?

点评

proxydhcp模式下,如果启动grub2的话pxe init后输入set能看到tftpserver的ip,而且取菜单文件不是从原先的dhcp取就行了  详情 回复 发表于 6 天前
回复

使用道具 举报

15#
发表于 3 天前 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2025-8-27 14:47 编辑

排除了dhcpsrv常驻的干扰,实测使用NBpxe_Serve作为服务器,网起VM虚拟机,失败。
环境:
1. 笔记本操作系统:Windows 10
2. 虚拟机:VMware Workstation Pro 17.6.4
    虚拟机网络仅主机模式设置:
        将主机虚拟适配器连接到此网络   勾选
        所有本地DHCP服务器将IP地址分配给虚拟机   勾选
        子网IP:  192.168.182.0
        子网掩码:255.255.255.0
3.  虚拟机操作系统:MyWin  (其实是空盘,只有几个必要文件)
     虚拟机操作系统网络适配器:仅主机模式


[DHCP]
enabled = true
mode = dhcp
#mode = proxy
pool_start = 192.168.182.2
pool_end = 192.168.182.254
subnet = 255.255.255.0
router = 192.168.182.1
lease_time = 86400

[FileServer]
shared_root_dir = C:\usr\TinyPXEServer\netboot\
tftp_enabled = true
#tftp_enabled = false
http_enabled = true
http_port = 80
tftp_root = C:\usr\TinyPXEServer\netboot\
http_root = C:\usr\TinyPXEServer\netboot\
smb_root = C:\usr\TinyPXEServer\netboot\
tftp_multithread = true
http_multithread = true

[BootFiles]
bios = grldr
uefi32 = ipxe32.efi
uefi64 = bootx64.efi
ipxe = ipxeboot.txt
[SMB]
enabled = false
share_name = pxe
permissions = read

VM虚拟机探测:
client IP   192.168.182.7
serverIP   192.168.182.254    #必须为192.168.182.1才能网起



1.jpg (201.62 KB, 下载次数: 1)

1.jpg
回复

使用道具 举报

16#
发表于 3 天前 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2025-8-27 18:21 编辑

为什么要给服务器分配IP为192.168.182.254?怎么不分配192.168.182.1?这个192.168.182.254是怎么来的?日志里面没有提到。

看日志,DHCP,TFTP,HTTP服务都在 192.168.182.1。
而且分配IP为192.168.182.2 -> "bootx64.efi"

DHCP使用proxy模式也一样。

使用TinyPXEServer的DHCP模式成功,proxy模式失败。


回复

使用道具 举报

17#
发表于 前天 16:11 | 显示全部楼层
dhcp模式与proxy模式都不行。


proxy_2.jpg (143.32 KB, 下载次数: 1)

proxy_2.jpg

proxy_1.jpg (253 KB, 下载次数: 1)

proxy_1.jpg

dhcp.jpg (273.92 KB, 下载次数: 1)

dhcp.jpg

点评

看了葱大的IPXEFM,是使用IPXE网启(用config可以查看IPXE的默认变量值),脚本中先判断是否是代理模式,即是否存在proxy/next-server,如果存在用这个IP地址,如果不存在,使用next-server的IP地址。  详情 回复 发表于 前天 19:03
要删ini或重置配置文件  详情 回复 发表于 前天 18:53
回复

使用道具 举报

18#
发表于 前天 19:11 | 显示全部楼层
要删ini或重置配置文件

不行。

0.jpg (233.94 KB, 下载次数: 0)

0.jpg

点评

这个版本要先把高级pxe都关掉  详情 回复 发表于 前天 19:20
回复

使用道具 举报

19#
发表于 前天 19:56 | 显示全部楼层
这个版本要先把高级pxe都关掉

这个在哪里设置,没有找到。
另外,日志文件是乱码。

点评

配置修改上面选项卡,有两个  详情 回复 发表于 前天 20:02
回复

使用道具 举报

20#
发表于 前天 19:58 | 显示全部楼层
在IPXE的脚本第二行,添加isset ${p

我网起的是G4E,不是ipxe.

点评

g4e调试应该能抓到包吧,从dhcp服务器发的包提取出来应该就可以支持proxydhcp了  详情 回复 发表于 前天 20:04
回复

使用道具 举报

21#
发表于 前天 20:06 来自手机 | 显示全部楼层
没有高级二字啊

点评

哦弄错了,以前有高级,现在叫PXE菜单  详情 回复 发表于 前天 20:10
回复

使用道具 举报

22#
发表于 前天 20:36 来自手机 | 显示全部楼层
已经关闭了。现在的问题是,服务器IP被识别为254,实际上应当是1,所以无法通讯。抓包了,但是不大懂,明天再研究一下。

点评

我都是直接塞给ai研究  详情 回复 发表于 前天 20:53
回复

使用道具 举报

23#
发表于 前天 21:23 来自手机 | 显示全部楼层
那训练一下AI,让他支持VM的PXE网起。这是根本。是VM的PXE函数传递参数给网卡,然后G4E从网卡读取。
回复

使用道具 举报

24#
发表于 前天 21:27 来自手机 | 显示全部楼层
或许应当是让AI支持UEFI的PXE网起协议。

点评

其实就是获得dhcp option各种变量值 我完全不懂编程,所以不太清楚,grubfm是解决了的,原版grub2也不支持proxydhcp模式  详情 回复 发表于 昨天 10:26
回复

使用道具 举报

25#
发表于 昨天 15:44 | 显示全部楼层
在proxy模式,收到的服务器IP=192.168.182.254,把他修改为192.168.182.1,就可以进行tftp/http通讯了!
可见是服务器IP传递错了。

不过这时仍然不能启动iso/img/wim等等,因为获取的句柄不对。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-30 13:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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