praqma/Network-MultiTool)一款多架构容器/网络测试和故障排除多工具。主Docker镜像基于Alpine Linux,另有Fedora变体,适用于仅允许基于RedHat Linux或其衍生版的环境。
该容器镜像包含大量工具及Nginx Web服务器(默认监听80和443端口)。Web服务器使容器能以简单方式运行,方便通过exec进入容器使用各类工具。
此前,我与Henrik共同创建并维护该工具,名为praqma/network-multitool。Praqma被其他公司收购后,"Praqma"品牌逐步停用,因此该工具的Git和Docker仓库需迁移。经公司当前代表决定,将其移交我继续维护。除仓库名称小幅变更外,工具功能无变化。
当前拉取该镜像的Docker仓库为:[***]
或使用命令:
docker pull wbitt/network-multitool
OpenShift对容器镜像运行有严格限制,因此该多工具的OpenShift变体存在以下限制/变更:
traceroute、tcptraceroute等)无法使用1180和*** - 非80和443setuid以保持可用性,包括:
请注意,此多工具纯为故障排除工具,不应用于滥用OpenShift(或任何系统)的安全性。
80、443)- 支持自定义端口!大小: 压缩后16 MB,未压缩38 MB
包含"minimal"版所有工具,另加:
大小: 压缩后64 MB,未压缩220 MB
/bin/sh shell解释器 - 非/bin/bash大小: 未压缩72 MB
注意: SSL证书为"localhost"生成的自签名证书,位于/certs/目录。测试时可忽略证书警告,使用curl时可加-k参数忽略SSL证书错误。
$ docker run -d wbitt/network-multitool
然后:
$ docker exec -it 容器名称 /bin/bash
创建单个Pod(无部署):
$ kubectl run multitool --image=wbitt/network-multitool
创建部署:
$ kubectl create deployment multitool --image=wbitt/network-multitool
然后:
$ kubectl exec -it pod名称 /bin/bash
注意: 可在上述kubectl命令中添加--namespace=<目标命名空间>参数。
$ oc new-project test-project-1 $ oc new-app wbitt/network-multitool:openshift --name multitool-openshift $ oc status $ oc get pods $ oc logs pod名称 $ oc exec -it pod名称 /bin/sh $ oc port-forward pod名称 1180:1180 ***:***
有时需使用主机网络进行测试,可通过主机网络模式运行多工具:
$ docker run --network host -d wbitt/network-multitool
注意: 若主机80/443端口已被占用,可通过环境变量指定其他端口:
$ docker run --network host -e HTTP_PORT=1180 -e HTTPS_PORT=*** -d wbitt/network-multitool
Kubernetes环境中,可使用kubernetes目录下的multitool-daemonset.yaml清单在所有节点部署DaemonSet(使用主机网络):
$ kubectl apply -f kubernetes/multitool-daemonset.yaml
注意:
--namespace=<目标命名空间>参数当多工具与其他Web服务(如Nginx、Apache)或反向代理(如Traefik、HAProxy)在同一网络命名空间(Docker)或Pod(Kubernetes)中运行时,默认80/443端口可能冲突。可通过HTTP_PORT和HTTPS_PORT环境变量自定义监听端口:
$ docker run -e HTTP_PORT=1180 -e HTTPS_PORT=*** \ -p 1180:1180 -p ***:*** -d wbitt/network-multitool 4636efd4660c2436b3089ab1a979e5ce3ae23055f9ca5dc9ffbab508f28dfa2a $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4636efd4660c wbitt/network-multitool "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 80/tcp, 0.0.0.0:1180->1180/tcp, 443/tcp, 0.0.0.0:***->***/tcp recursing_nobel 6e8b6ed8bfa6 nginx "nginx -g 'daemon of…" 56 minutes ago Up 56 minutes 80/tcp nginx $ curl http://localhost:1180 Praqma Network MultiTool (with NGINX) - 4636efd4660c - 172.17.0.3/16 - HTTP: 1180 , HTTPS: *** $ curl -k https://localhost:*** Praqma Network MultiTool (with NGINX) - 4636efd4660c - 172.17.0.3/16 - HTTP: 1180 , HTTPS: ***
若未指定上述环境变量,容器默认监听80和443端口。
通常,若容器未运行守护进程/服务,需使用"特殊方法"保持容器运行。运行小型Web服务器作为默认进程可简化使用:
docker run -d wbitt/network-multitool启动kubectl run multitool --image=wbitt/network-multitool启动容器以Web服务器身份保持UP状态,随后可通过docker exec或kubectl exec进入容器使用工具。此外,Web服务器本身也是一个实用工具!
我们已包含大多数常用工具,同时保持镜像小巧实用。若有特殊需求,建议基于此镜像构建自定义镜像并添加所需工具。
作为测试工具,SSL证书有效性无关紧要,无需使用LetsEncrypt。
直接在主机安装工具可能导致:
DaemonSet提供"云原生"方式部署调试工具,支持卷挂载(如数据包捕获文件),且无需SSH到节点即可exec进入容器。
欢迎贡献**"绝对必要"、"核心"、"体积小"且"适用场景广泛"**的工具/包。目标不是创建另一个Linux发行版! :)
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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