Netbootxyz 是一种通过PXE从BIOS中启动各种操作系统安装程序或实用工具的方式,无需获取物理介质。它使用iPXE提供用户友好的菜单,让您可以轻松选择所需的操作系统以及任何特定类型的版本或可启动标志。
此镜像已弃用。我们将不再为该镜像提供支持,也不会更新。
建议切换到容器:[]
LinuxServer.io团队提供的此容器具有以下特点:
我们利用docker manifest实现多平台支持。只需拉取 lscr.io/linuxserver/netbootxyz:latest 即可获取适合您架构的正确镜像,您也可以通过标签拉取特定架构的镜像。
此镜像支持的架构:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
此镜像提供多种版本,可通过标签获取。请仔细阅读描述,并在使用不稳定或开发标签时谨慎行事。
| 标签 | 可用 | 描述 |
|---|---|---|
| latest | ✅ | 用于完全自托管的Web应用程序 |
| tftp | ✅ | 仅TFTP服务器,包含NETBOOT.XYZ启动文件 |
要使用此镜像,您需要一个现有的DHCP服务器,您可以在其中将此TFTP服务器设置为DHCP启动目标。此镜像不包含DHCP服务器,我们未来也不打算支持DHCP服务器功能。这只是一个托管来自netboot.xyz的最新IPXE内核构建的TFTP服务器。如果您对他们的项目感兴趣,但没有能力设置DHCP服务器来引导此 payload,他们的下载页面上也提供了可使用的USB stick镜像。
服务 -> DHCP服务器
设置"TFTP服务器"选项和高级"网络启动"部分下的选项。
netboot.xyz.kpxenetboot.xyz.efinetboot.xyz.efi服务 -> DHCP服务器
在高级"网络启动"部分下。
netboot.xyz.kpxenetboot.xyz.efinetboot.xyz.efi网络 -> LAN(或您要从中启动的网络)-> 高级DHCP选项
netboot.xyz.kpxe
高级完全支持通过SSH连接
configure set service dhcp-server use-dnsmasq enable set service dns forwarding options "dhcp-match=set:bios,60,PXEClient:Arch:00000" set service dns forwarding options "dhcp-boot=tag:bios,netboot.xyz.kpxe,,SERVERIP" set service dns forwarding options "dhcp-match=set:efi32,60,PXEClient:Arch:00002" set service dns forwarding options "dhcp-boot=tag:efi32,netboot.xyz.efi,,SERVERIP" set service dns forwarding options "dhcp-match=set:efi32-1,60,PXEClient:Arch:00006" set service dns forwarding options "dhcp-boot=tag:efi32-1,netboot.xyz.efi,,SERVERIP" set service dns forwarding options "dhcp-match=set:efi64,60,PXEClient:Arch:00007" set service dns forwarding options "dhcp-boot=tag:efi64,netboot.xyz.efi,,SERVERIP" set service dns forwarding options "dhcp-match=set:efi64-1,60,PXEClient:Arch:00008" set service dns forwarding options "dhcp-boot=tag:efi64-1,netboot.xyz.efi,,SERVERIP" set service dns forwarding options "dhcp-match=set:efi64-2,60,PXEClient:Arch:00009" set service dns forwarding options "dhcp-boot=tag:efi64-2,netboot.xyz.efi,,SERVERIP" commit; save
在UI或配置文件中的各个位置设置附加/自定义DNSMASQ选项 设置以下行:
dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP
更改后确保重启DNSMASQ服务。
从路由器角度来看,其他任何支持Dnsmasq选项或专有PXE引导选项的设备都需要检查Google以获取支持(尝试使用确切的路由器型号加上'pxe boot')或考虑在Linux中设置自己的DHCP服务器。
此镜像还包含netboot.xyz.efi,可用于使用UEFI网络引导。如果选择使用UEFI引导和菜单,其功能将受到限制。
为帮助您从此镜像创建容器,您可以使用docker-compose或docker cli。
[!NOTE] 除非参数标记为"可选",否则它是必填项,必须提供值。
yaml--- services: netbootxyz: image: lscr.io/linuxserver/netbootxyz:latest container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - MENU_VERSION=1.9.9 #可选 - PORT_RANGE=30000:30010 #可选 - SUBFOLDER=/ #可选 - NGINX_PORT=80 #可选 - WEB_APP_PORT=3000 #可选 volumes: - /path/to/netbootxyz/config:/config - /path/to/assets:/assets #可选 ports: - 3000:3000 - 69:69/udp - 8080:80 #可选 restart: unless-stopped
bashdocker run -d \ --name=netbootxyz \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e MENU_VERSION=1.9.9 `#可选` \ -e PORT_RANGE=30000:30010 `#可选` \ -e SUBFOLDER=/ `#可选` \ -e NGINX_PORT=80 `#可选` \ -e WEB_APP_PORT=3000 `#可选` \ -p 3000:3000 \ -p 69:69/udp \ -p 8080:80 `#可选` \ -v /path/to/netbootxyz/config:/config \ -v /path/to/assets:/assets `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/netbootxyz:latest
容器通过运行时传递的参数进行配置(如上所示)。这些参数用冒号分隔,表示<外部>:<内部>。例如,-p 8080:80会将容器内的端口80暴露出来,可从主机的IP上通过端口8080访问。
| 参数 | 功能 |
|---|---|
-p 3000:3000 | Web配置界面。 |
-p 69:69/udp | TFTP端口。 |
-p 80 | 用于托管资产的NGINX服务器。 |
-e PUID=1000 | 用户ID - 详见下面的说明 |
-e PGID=1000 | 组ID - 详见下面的说明 |
-e TZ=Etc/UTC | 指定要使用的时区,参见此列表。 |
-e MENU_VERSION=1.9.9 | 指定要使用的NETBOOT.XYZ引导文件的特定版本(未设置则拉取最新版本) |
-e PORT_RANGE=30000:30010 | 指定tftp用于数据传输的端口范围 (参见***) |
-e SUBFOLDER=/ | 如果在反向代理后面运行,指定子文件夹(即/proxy/) |
-e NGINX_PORT=80 | 为资产服务器指定不同的内部端口 |
-e WEB_APP_PORT=3000 | 为配置UI指定不同的内部端口 |
-v /config | 引导菜单文件和Web应用程序配置的存储 |
-v /assets | NETBOOT.XYZ可引导资产(Live CD和其他文件)的存储 |
您可以通过使用特殊的前缀FILE__从文件中设置任何环境变量。
例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
将根据/run/secrets/mysecretvariable文件的内容设置环境变量MYVAR。
对于我们所有的镜像,您可以使用可选的-e UMASK=022设置来覆盖容器内启动的服务的默认umask设置。
请记住,umask不是chmod,它基于其值减去权限,而不是添加权限。在请求支持之前,请先阅读相关内容。
使用卷(-v标志)时,主机操作系统和容器之间可能会出现权限问题,我们通过允许您指定用户PUID和组PGID来避免此问题。
确保主机上的任何卷目录都由您指定的相同用户拥有,任何权限问题都将神奇地消失。
在这个例子中PUID=1000和PGID=1000,要找到您的ID,请使用id your_user,如下所示:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
我们发布各种Docker Mods以启用容器内的附加功能。可用于此镜像的Mods列表(如果有)以及可应用于我们任何镜像的通用Mods可通过上面的动态徽章访问。
容器运行时的Shell访问:
bashdocker exec -it netbootxyz /bin/bash
实时监控容器日志:
bashdocker logs -f netbootxyz
容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' netbootxyz
镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/netbootxyz:latest
我们的大多数镜像是静态的、版本化的,需要更新镜像和重新创建容器来更新内部的应用程序。除了一些例外情况(在相关的readme.md中注明),我们不建议或支持在容器内更新应用程序。请查阅上面的应用设置部分,了解是否推荐对该镜像进行更新。
以下是更新容器的说明:
更新镜像:
所有镜像:
bashdocker-compose pull
单个镜像:
bashdocker-compose pull netbootxyz
更新容器:
所有容器:
bashdocker-compose up -d
单个容器:
bashdocker-compose up -d netbootxyz
您还可以删除旧的悬空镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/netbootxyz:latest
停止运行中的容器:
bashdocker stop netbootxyz
删除容器:
bashdocker rm netbootxyz
使用上述相同的docker run参数重新创建一个新容器(如果正确映射到主机文件夹,您的/config文件夹和设置将被保留)
您还可以删除旧的悬空镜像:
bashdocker image prune
[!TIP] 我们推荐Diun用于更新通知。不建议或支持其他自动更新容器的工具。
如果您想对这些镜像进行本地修改以用于开发目的或只是为了自定义逻辑:
bashgit clone [***] cd docker-netbootxyz docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/netbootxyz:latest .
可以使用lscr.io/linuxserver/qemu-static在x86_64硬件上构建ARM变体,反之亦然
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429