tftp-http-proxy是一个简单的TFTP服务器,它将所有读取请求代理到后备HTTP服务器,并提供响应。
源码地址:https://github.com/bwalex/tftp-http-proxy
Usage of dist/tftp-http-proxy: -http-base-url string HTTP base URL (default "http://127.0.0.1/tftp") -tftp-timeout duration TFTP timeout (default 5s)
启动tftp-http-proxy时,它将作为常规TFTP服务器在(UDP)端口69上侦听。每当接收到新的TFTP读取请求时,该请求就会作为HTTP请求转发到已配置的HTTP URL(-http-base-url标志)。HTTP请求将包含一些其他HTTP标头,其中包含有关TFTP请求的信息:
-http-base-url
X-TFTP-IP
X-TFTP-Port
X-TFTP-File
如果HTTP请求返回状态200响应,则响应的内容将作为TFTP读取请求的文件内容发送。HTTP响应应包含准确的ContentLength标头,因为它将用于在读取响应上设置TFTP TSize选项。
如果HTTP响应状态不是200,则会将错误响应发送到TFTP客户端。
我修改了一下,把默认的HTTP base URL 改成了http://127.0.0.1
使用示例:tftp-http-proxy_amd64.exe -http-base-url http://127.0.0.1/ -http-append-path false -tftp-timeout 5 -tftp-bind-address :69
在虚拟机测试,http服务使用nginx,能正常通过PXE引导到grub4dos菜单,但加载大文件时,比如启动WIM,会明显不如直接从http get的速度,所以看上去这种转发效果跟直接tftp获取速度差不多