Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pumba — أداة اختبار الفوضى، ومحاكاة الشبكة، واختبار الضغط للحاويات | Kitploit
أدوات/GitHubGitHub/alexei-led/pumba
أمن الحاوياتDevSecOpsهندسة الفوضى
GitHubalexei-led/pumba

pumba

أداة اختبار الفوضى، ومحاكاة الشبكة، واختبار الضغط للحاويات

عرض المستودع
3.1k215منذ 16س 4دتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Pumba
أداة اختبار الفوضى لحاويات Docker و containerd و Podman

GitHub Release Release Build and Test Go Report Card Codecov License

بدء سريع · دليل المستخدم · فوضى الشبكة · النشر · المساهمة


Pumba هي أداة لاختبار الفوضى ومحاكاة الشبكة لحاويات Docker و containerd و Podman. مستوحاة من Netflix Chaos Monkey، تنقل Pumba هندسة الفوضى إلى مستوى الحاويات — قتل الحاويات أو إيقافها أو إيقافها مؤقتًا أو إزالتها، وحقن تأخيرات الشبكة وفقدان الحزم، أو اختبار إجهاد موارد الحاويات.

كيف يعمل

root@kitploit:~
graph LR
    A[Pumba CLI] -->|Docker API / containerd API / Podman compat API| B[Container Runtime]
    B -->|List & Filter| C[Target Containers]

    A -->|kill / stop / pause / rm| C

    A -->|netem / iptables| D[Helper Container / Direct Exec]
    D -->|Shares network namespace| C
    D -->|Runs tc / iptables| E[Network Chaos]

بيئات التشغيل المدعومة

المنصات المدعومة

يستهدف Pumba حاويات Linux — يعتمد كل إجراء فوضى على أوليات Linux (netns و cgroups v2 و iptables و tc qdiscs ومقابس بيئة تشغيل الحاويات). الملفات الثنائية الصادرة:

لا يُبنى Windows عمدًا. أوليات الفوضى — كتابات Linux netns/cgroup، حقن الحاوية المساعدة (sidecar) عبر tc/iptables، إعادة توجيه إشارات POSIX (SIGCONT/SIGSTOP/SIGUSR1/SIGUSR2 المستخدمة من بيئة تشغيل containerd) — لا مقابل لها في Windows. لا توجد حالة استخدام معقولة لـ Windows حتى مع الواجهة الخلفية WSL2 في Docker Desktop، لذلك لا يُنشر أي ملف ثنائي لـ Windows. لن تُقبل طلبات السحب (PRs) التي تضيف دعمًا لـ Windows؛ يرجى تشغيل pumba على Linux (محليًا أو داخل حاوية أو VM).

الميزات

بدء سريع

التثبيت

حمّل أحدث إصدار الخاص بمنصتك، أو استخدم Docker:

root@kitploit:~
# Binary
curl -sL https://github.com/alexei-led/pumba/releases/latest/download/pumba_linux_amd64 -o pumba
chmod +x pumba

# Docker (recommended)
docker pull ghcr.io/alexei-led/pumba:latest

أول تجربة فوضى

root@kitploit:~
# Kill a random container matching "test" every 30 seconds
pumba --interval=30s --random kill "re2:^test"

# Add 3 seconds network delay to mydb for 5 minutes
pumba netem --duration 5m delay --time 3000 mydb

# Drop 10% of incoming packets to myapp for 2 minutes
pumba iptables --duration 2m loss --probability 0.1 myapp

# Stress CPU of mycontainer for 60 seconds
pumba stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

بيئة تشغيل containerd

root@kitploit:~
# Kill a container by ID via containerd
pumba --runtime containerd --containerd-namespace k8s.io kill <container-id>

# Add network delay via containerd (requires tc in the container image)
pumba --runtime containerd --containerd-namespace moby \
  netem --duration 5m delay --time 3000 <container-id>

بيئة تشغيل Podman

يتواصل Pumba مع Podman عبر مقبسه المتوافق مع Docker. خيار --podman-socket اختياري — إذا كان فارغًا، يستكشف pumba $CONTAINER_HOST ثم $PODMAN_SOCK ثم podman machine inspect ثم /run/podman/podman.sock ثم $XDG_RUNTIME_DIR/podman/podman.sock بالترتيب.

root@kitploit:~
# Kill a container by name via Podman (rootful socket auto-detected)
sudo pumba --runtime podman kill mycontainer

# Add network delay via Podman (requires rootful socket)
sudo pumba --runtime podman netem --duration 5m delay --time 3000 mycontainer

# Stress CPU via Podman (default child-cgroup mode)
sudo pumba --runtime podman stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

# Explicit socket override
pumba --runtime podman --podman-socket unix:///run/podman/podman.sock kill mycontainer

تتطلب netem و iptables و stress استخدام Podman بوضع rootful — الوضع rootless يفشل فورًا مع رسالة واضحة تشير إلى podman machine set --rootful (على macOS) أو وحدة systemd بوضع rootful (على Linux).

التطوير على macOS باستخدام Podman

يعمل Podman على macOS داخل جهاز VM بنظام Linux. يجب أن يعمل Pumba على نفس النواة التي تعمل عليها الحاويات المستهدفة (قراءة /proc/<pid>/cgroup من جانب المضيف)، لذا شغّل ملف pumba الثنائي داخل جهاز VM الخاص بـ podman machine:

root@kitploit:~
# one-time setup
brew install podman
podman machine init --rootful --cpus 4 --memory 4096 --now
podman machine ssh sudo dnf install -y bats      # optional, for bats tests

# copy a linux/arm64 or linux/amd64 pumba binary into the VM
podman machine ssh sudo cp /path/to/pumba /usr/local/bin/

# run inside the VM
podman machine ssh sudo pumba --runtime podman --log-level debug ps
podman machine ssh sudo pumba --runtime podman netem --duration 10s delay --time 200 <container-id>

نصيحة: لفوضى الشبكة على الحاويات التي لا تحتوي على tc/iptables، استخدم --tc-image لإنشاء حاوية مساعدة (sidecar):

root@kitploit:~
pumba --runtime containerd netem --tc-image ghcr.io/alexei-led/pumba-alpine-nettools:latest \
  --duration 5m delay --time 3000 <container-id>

التشغيل باستخدام Docker

root@kitploit:~
docker run -it --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/alexei-led/pumba --interval=10s --random kill "re2:^test"

صور Docker

السجلالصورةالحالة
GitHub Container Registryghcr.io/alexei-led/pumba✅ أساسي
Docker Hubalexeiled/pumba⚠️ مُهجَر

تُبنى الصور بشكل أصلي (native) لكل من linux/amd64 و linux/arm64 (بدون QEMU).

الوثائق

عرض توضيحي

asciicast

المجتمع والدعم

  • المشكلات: GitHub Issues
  • المدونة: Pumba - Chaos Testing for Docker

الترخيص

Apache License 2.0

تنزيل الأداة
RuntimeSocket (default)netem / iptables / stressNotes
Docker/var/run/docker.sockWorks as root or with socket accessDefault runtime.
containerd/run/containerd/containerd.sockRequires root (overlayfs mounts for sidecar)Namespaces: k8s.io (Kubernetes), moby (Docker-managed), default (pure containerd).
Podman/run/podman/podman.sock (rootful)Requires rootful Podman (fails fast else)Uses Podman's Docker-compat API; on macOS pumba runs inside podman machine (see below).
OSamd64arm64Notes
Linux✅✅الهدف الأساسي. شغّل pumba على نفس نواة الحاويات المستهدفة.
macOS✅✅لراحة المطوّرين فقط. استخدمه لقيادة VM بعيد يعمل بـ Docker/Podman/containerd (مثل Colima أو podman machine).
Windows❌❌غير مدعوم وغير مخطط له. انظر أدناه.
الفئةالأوامرالوصف
فوضى الحاوياتkill, stop, pause, rm, restartتعطيل دورة حياة الحاويات
التنفيذexecتشغيل أوامر داخل الحاويات
تأخير الشبكةnetem delayإضافة كمون إلى حركة المرور الصادرة
فقدان الحزمnetem loss, iptables lossإسقاط الحزم (الصادرة والواردة)
تأثيرات الشبكةnetem duplicate, corrupt, rateتكرار الحزم أو إفسادها أو تحديد معدل نقلها
اختبار الإجهادstressإجهاد CPU والذاكرة والإدخال/الإخراج عبر stress-ng (الحقن في cgroup فرعي أو نفس cgroup)
الاستهدافالأسماء، التعبيرات النمطية (re2:)، التسميات، --randomتحديد مرن للحاويات
الجدولة--intervalفوضى متكررة على فترات زمنية ثابتة
العلامةالافتراضيالوصف
--runtimedockerبيئة تشغيل الحاويات (docker أو containerd أو podman)
--containerd-socket/run/containerd/containerd.sockمسار مقبس containerd
--containerd-namespacek8s.ioمساحة أسماء containerd (k8s.io لـ Kubernetes، moby لـ Docker)
--podman-socket(اكتشاف تلقائي)URI مقبس Podman (مثل unix:///run/podman/podman.sock)؛ تركه فارغًا يؤدي إلى الاكتشاف التلقائي
المستندالوصف
دليل المستخدمأوامر فوضى الحاويات، الاستهداف، الجدولة، التكوين
فوضى الشبكةnetem و iptables، سيناريوهات متقدمة، مخططات معمارية
اختبار الإجهاداختبار إجهاد CPU/الذاكرة/الإدخال-الإخراج باستخدام stress-ng
النشرDocker و DaemonSets الخاصة بـ Kubernetes و OpenShift
المساهمةالبناء من المصدر، تشغيل الاختبارات، بنية المشروع