Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tcpreplay — حرّر وأعد تشغيل حركة مرور الشبكة الملتقطة بسرعات اعتباطية — مجموعة من أدوات pcap لأنظمة *NIX وWindows. | Kitploit
أدوات/GitHubGitHub/appneta/tcpreplay
التقاط وتحليل الحزمتحليل الثغرات الأمنيةالتهرب من IDS/IPSأمن الشبكاتاختبار الاختراق
GitHubappneta/tcpreplay

tcpreplay

حرّر وأعد تشغيل حركة مرور الشبكة الملتقطة بسرعات اعتباطية — مجموعة من أدوات pcap لأنظمة *NIX وWindows.

عرض المستودع
1.3k29261منذ 12 أيامتمت المراجعة من قبل Kitploit
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
<p align="center">
  <img src="https://raw.githubusercontent.com/appneta/tcpreplay/master/docs/guide/assets/images/logo.svg" alt="" width="96" height="96">
</p>
<h1 align="center">Tcpreplay</h1>

[![Test Status](https://github.com/appneta/tcpreplay/actions/workflows/github-actions-ci.yml/badge.svg)](https://github.com/appneta/tcpreplay/actions/workflows/github-actions-ci.yml)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/12017/badge.svg)](https://scan.coverity.com/projects/12017)
[![CodeQL](https://github.com/appneta/tcpreplay/actions/workflows/codeql.yml/badge.svg)](https://github.com/appneta/tcpreplay/actions/workflows/codeql.yml)
[![cpp-linter](https://github.com/appneta/tcpreplay/actions/workflows/c-linter.yml/badge.svg)](https://github.com/appneta/tcpreplay/actions/workflows/c-linter.yml)
[![Website](https://img.shields.io/website-up-down-green-red/https/tcpreplay.appneta.com.svg)](https://tcpreplay.appneta.com)
[![Release](https://img.shields.io/github/release/appneta/tcpreplay.svg)](https://github.com/appneta/tcpreplay/releases)

Tcpreplay هي مجموعة من الأدوات المرخّصة تحت [GPLv3] لأنظمة UNIX (وWindows تحت
[Cygwin]) لتحرير وإعادة تشغيل حركة مرور الشبكة التي تم التقاطها مسبقًا بواسطة
أدوات مثل [tcpdump] و[Wireshark]. وهي تصنّف حركة المرور كعميل أو
خادم، وتعيد كتابة ترويسات الطبقات 2/3/4، وتعيد تشغيلها على الشبكة
عبر المبدّلات والموجّهات والجدران النارية وأنظمة NIDS وIPS — بمعدلات تتراوح من
تدفق ضئيل وصولًا إلى معدل السلك الكامل. يدعم Tcpreplay كلاً من أوضاع بطاقة
الشبكة الواحدة والمزدوجة، لاختبار كل من أجهزة التنصّت والأجهزة المضمّنة في المسار.

يُستخدم Tcpreplay من قِبل العديد من بائعي الجدران النارية وأنظمة IDS وIPS وNetFlow وغيرها
من بائعي الشبكات، والمؤسسات، والجامعات، والمختبرات، والمشاريع
مفتوحة المصدر. إذا كانت مؤسستك تستخدم Tcpreplay، فيرجى إخبارنا بمن
أنتم وما تستخدمونه من أجله، حتى نتمكن من مواصلة إعطاء الأولوية للميزات التي
تهم.

منذ الإصدار 4.0، يستهدف Tcpreplay أيضًا بشكل خاص اختبار أجهزة [IP Flow][flow]/[NetFlow]:
توقيت تشغيل عالي المعدل دقيق وإعداد تقارير النتائج،
وإحصاءات التدفقات في الثانية (fps)، وتحليل انتهاء صلاحية التدفقات لضبط
إعدادات المهلة الزمنية لمنتج التدفقات — حتى مئات الآلاف من التدفقات/ثانية،
اعتمادًا على أحجام التدفقات في ملف pcap.

📖 **التوثيق الكامل متاح على <https://tcpreplay.appneta.com>** — دليل
البدء، وصفحة لكل أداة، ووصفات إرشادية، والمفاهيم الكامنة وراء
المجموعة، وصفحات man، والأسئلة الشائعة. هذا الملف README هو الجولة السريعة؛ أما الموقع فهو
المرجع.

- [المجموعة](#the-suite)
- [الجديد في 4.6](#whats-new-in-46)
- [تثبيت إصدار](#installing-a-release)
- [البناء من المصدر](#building-from-source)
  - [Autotools](#autotools)
  - [CMake](#cmake-recommended)
  - [الأداء: netmap، AF\_XDP، io\_uring](#performance-netmap-af_xdp-io_uring)
  - [إعادة التشغيل على واجهات IP الخام (L3)](#replaying-onto-raw-ip-l3-interfaces)
  - [مكتبة libtcpreplay بلغة C](#libtcpreplay-c-library)
  - [تشغيل مجموعة الاختبارات](#running-the-test-suite)
- [الحصول على المساعدة](#getting-help)
- [المساهمة](#contributing)
- [الترخيص](#license)
- [المؤلفون](#authors)

المجموعة
=========
تشغيل حركة مرور الشبكة:
--------------------------
* **tcpreplay** / **tcpreplay-edit** — إعادة تشغيل ملفات pcap بسرعات عشوائية
  على الشبكة، مع إمكانية تحرير الحزم أثناء التشغيل (`tcpreplay-edit`)
  أو عشوائية عناوين IP (`tcpreplay`)
* **tcpliveplay** — إعادة تشغيل جلسة TCP ملتقطة على شبكة حية بطريقة
  يستجيب لها الخادم البعيد فعليًا (ساهم بها Yazan
  Siam، برعاية [Cisco]، لاختبار حزمة الشبكة الكاملة وصولًا إلى
  التطبيق — إذ يبقى `tcpreplay` العادي عادةً عند الطبقة 2)

محرّرات وأدوات ملفات Pcap:
--------------------------------
* **tcpprep** — معالج مسبق متعدد المراحل لملفات pcap يصنّف الحزم كـ
  عميل أو خادم ويكتب ملف ذاكرة تخزين مؤقت تستهلكه tcpreplay/tcprewrite
* **tcprewrite** — يعيد كتابة ترويسات حزم TCP/IP والطبقة 2 في ملف pcap
* **tcpbridge** — يجسر بين مقطعين شبكيين باستخدام منطق إعادة الكتابة في tcprewrite
* **tcpcapinfo** — مفكّك ومنقّح ملفات pcap الخام

ما الجديد في 4.6
==================
* أصبح [CMake](#cmake-recommended) الآن نظام البناء الأساسي والموصى به
  (لا يزال autotools مستخدمًا لأرشيفات الإصدارات)
* حقن الحزم عبر المسار السريع باستخدام [io_uring](#performance-netmap-af_xdp-io_uring) و
  [AF_XDP](#performance-netmap-af_xdp-io_uring)،
  إلى جانب دعم netmap الحالي — وكلاهما يتطلب إعدادًا أقل من netmap
  ولا يحتاج إلى برامج تشغيل معدّلة
* [libtcpreplay](#libtcpreplay-c-library)، مكتبة C ثابتة لتضمين
  محرك إعادة التشغيل مباشرةً في برنامجك الخاص
* دعم تلقائي لـ[إعادة التشغيل على واجهات IP الخام (L3)](#replaying-onto-raw-ip-l3-interfaces)
  مثل أجهزة WireGuard وtun

راجع [CHANGELOG](https://github.com/appneta/tcpreplay/blob/master/docs/CHANGELOG) للاطلاع على سجل الإصدارات الكامل.

تثبيت إصدار
=====================
[![GitHub downloads](https://img.shields.io/github/downloads/appneta/tcpreplay/total.svg)](https://github.com/appneta/tcpreplay/releases)
[![SourceForge downloads](https://img.shields.io/sourceforge/dt/tcpreplay.svg)](https://sourceforge.net/projects/tcpreplay)

نزّل أحدث [أرشيف إصدار](https://github.com/appneta/tcpreplay/releases/latest)
(متوفر أيضًا على [SourceForge](https://sourceforge.net/projects/tcpreplay))،
ثم:
```
tar xf tcpreplay-*.tar.xz && cd tcpreplay-*
./configure && make && sudo make install
```
حزمة إصدار (tarball) تأتي مع محللات CLI وصفحات man مُولّدة مسبقًا، لذا لا يحتاج هذا إلى أي شيء يتجاوز مترجم C وlibpcap — راجع
[البناء من المصدر](#building-from-source) أدناه فقط إذا كنت تعمل
من نسخة git، أو تريد دعم CMake أو netmap أو AF_XDP أو io_uring.

توجد تعليمات أكثر تفصيلًا خاصة بكل منصة في ملف `INSTALL`
المضمّن في حزمة الإصدار (نفس المحتوى الموجود في [`docs/INSTALL`](https://github.com/appneta/tcpreplay/blob/master/docs/INSTALL) هنا).

البناء من المصدر
=====================
يتطلب البناء من نسخة git وجود `python3` و`asciidoctor` (أيًا كان
نظام البناء) لتوليد محللات خيارات CLI وصفحات man من
ملفات `*_opts.def` — وقد حلّ هذا محل GNU AutoGen لهذا الغرض في 4.6
(AutoGen وصل إلى نهاية العمر؛ أما هذه فلم تصل). لا يزال AutoGen نفسه مطلوبًا فقط لترويسة
داخلية واحدة (`src/tcpedit/tcpedit_stub.h`) — راجع
[`scripts/autoopts/README.md`](https://github.com/appneta/tcpreplay/blob/master/scripts/autoopts/README.md). لا شيء من هذا
مطلوب عند بناء حزمة إصدار، إذ تأتي مع هذه العناصر مُولّدة مسبقًا.

Autotools
---------
```
./autogen.sh   # only needed once, from a git checkout
./configure
make
sudo make install
```

CMake (موصى به)
--------------------
اعتبارًا من الإصدار 4.6، يمكن أيضًا بناء المجموعة باستخدام [CMake](https://cmake.org)
(3.16+) — **الطريقة الموصى بها والأساسية لتجميع Tcpreplay**.
لا يزال Autotools متوفرًا ويُستخدم لإصدارات tarball، لكنه
سيُسحب تدريجيًا في النهاية، لذا يجب أن تستهدف النصوص البرمجية/الحزم الجديدة CMake.

```
cmake -B build
cmake --build build
sudo cmake --install build
```

كل علم من أعلام `./configure` له مقابل في CMake — انظر الجدول في أعلى [`CMakeLists.txt`](https://github.com/appneta/tcpreplay/blob/master/CMakeLists.txt). بعض الأمثلة:

```
# debug build with support for the -d option
cmake -B build -DENABLE_DEBUG=ON

# AddressSanitizer or ThreadSanitizer build
cmake -B build -DENABLE_ASAN=ON
cmake -B build -DENABLE_TSAN=ON

# custom libpcap install, static linking, custom tcpdump path
cmake -B build -DWITH_LIBPCAP=/usr/local/opt/libpcap \
               -DENABLE_STATIC_LINK=ON -DWITH_TCPDUMP=/usr/sbin/tcpdump

# force a specific packet injection method
cmake -B build -DFORCE_INJECT_PCAP_SENDPACKET=ON

# several configurations side by side
cmake -B build-debug -DENABLE_DEBUG=ON
cmake -B build-release
```

`cmake --build build --target manpages` يعيد إنشاء صفحات man
(python3 + asciidoctor)؛ بينما `cmake --build build` العادي لا يمسّها أبدًا.
يمكن لمستخدمي VS Code الذين لديهم إضافة CMake Tools فتح مجلد المستودع
ببساطة واختيار إعداد مسبق (configure preset) عند المطالبة.

الأداء: netmap وAF_XDP وio_uring
--------------------------------------
إذا لم يكن مسار المقبس الافتراضي سريعًا بما يكفي، فإن Tcpreplay يوفّر ثلاث
طرق أقل عبئًا لدفع الحزم مباشرة إلى بطاقة الشبكة (NIC). جرّبها تقريبًا بهذا
الترتيب — io_uring يحتاج أقل إعداد، وnetmap يحتاج أكثر:

<details>
<summary><b>io_uring</b> (Linux، يحتاج <code>liburing-dev</code> — لا يتطلب برنامج تشغيل مُرقّع)</summary>

يُكتشف على أنظمة Linux التي لديها `liburing-dev` مثبّتًا ونواة تدعم
[io_uring](https://man7.org/linux/man-pages/man7/io_uring.7.html).
لا تزال الحزم تُرسَل عبر مقبس PF_PACKET خام عادي، لكن عمليات الإرسال تُقدَّم
بشكل غير متزامن عبر قائمة انتظار io_uring، مما يقلّل من عبء استدعاء النظام
لكل حزمة.

```
sudo apt-get install liburing-dev
cmake -B build && cmake --build build && sudo cmake --install build
sudo tcpreplay -i eth0 --io-uring test.pcap
```
</details>

<details>
<summary><b>AF_XDP</b> (Linux، يتطلب <code>libxdp-dev</code>/<code>libbpf-dev</code> + برنامج تشغيل يدعم eBPF)</summary>

يُكتشف على أنظمة Linux التي لديها `libxdp-dev` و`libbpf-dev` مثبتين. عند
اختياره (`--xdp`)، يتم تجاوز حزمة شبكة النواة وتُرسل الحزم
مباشرة عبر برنامج تشغيل ممكّن لـ eBPF — معدل خط كامل على المحولات
التجارية، بما يعادل مولّدات حركة المرور التجارية، دون تعديل
برنامج التشغيل.

```
sudo apt-get install libxdp-dev libbpf-dev
cmake -B build && cmake --build build && sudo cmake --install build
sudo tcpreplay -i eth0 --xdp test.pcap
```
</details>

<details>
<summary><b>netmap</b> (Linux/BSD، يتطلب برامج تشغيل شبكة مُرقّعة بـ netmap — الأكثر تدخلاً، والأعلى سقفاً)</summary>

يتجاوز [netmap] برنامج تشغيل الشبكة طوال مدة إعادة التشغيل ويكتب
مباشرةً إلى مخازن TX المؤقتة لبطاقة الشبكة (NIC). هذا هو الخيار الأكثر تدخلاً من بين
الخيارات الثلاثة — إذ تنطفئ حزمة الشبكة على تلك الواجهة أثناء
تفعيله، لذا **لا تختبر على الواجهة التي اتصلت بها عبر SSH** — لكنه يمتلك
أعلى سقف إنتاجية على العتاد المدعوم.

نزّل netmap وثبّته من [صفحة المشروع][netmap]. إذا
استخرجته إلى `/usr/src` أو `/usr/local/src` فسيُلتقط
تلقائياً؛ وإلا فوجّه عملية البناء إليه:

```
cmake -B build -DWITH_NETMAP=/home/fklassen/git/netmap
cmake --build build
sudo cmake --install build
```
</details>

إعادة التشغيل على واجهات IP الخام (L3)
--------------------------------------
على Linux، يمكن لـ tcpreplay إعادة التشغيل مباشرةً على واجهات من الطبقة الثالثة فقط مثل
أجهزة WireGuard وtun — دون الحاجة إلى خيار بناء أو علامة سطر أوامر. أي
ترويسة من الطبقة الثانية في ملف الإدخال (Ethernet بما في ذلك وسوم VLAN، وLinux SLL،
وloopback، ...) تُزال تلقائيًا وتُرسل الحزم كـ
IPv4/IPv6 خام مع البروتوكول الصحيح، وهو ما تتطلبه برامج التشغيل مثل WireGuard:

```
sudo tcpreplay -i wg0 test.pcap
```

لاحظ أن الحزم غير المعتمدة على IP (مثل ARP) لا يمكن إرسالها على هذه الواجهات
ويُبلَّغ عنها كفاشلة، وأن `--io-uring` غير مدعوم عليها.

مكتبة libtcpreplay C
-----------------------
منذ الإصدار 4.6 تُثبّت الحزمة **libtcpreplay**، وهي مكتبة ثابتة تكشف
نفس محرك الإعادة الذي تستخدمه أداة `tcpreplay` عبر `tcpreplay_api.h`.
يمكن للتطبيقات إعادة تشغيل ملفات pcap وقراءة الإحصاءات الحية
برمجيًا، بدلًا من تشغيل الأداة كعملية فرعية واستخراج مخرجاتها:

```
cc myapp.c $(pkg-config --cflags --libs --static libtcpreplay) -o myapp
```

تُثبَّت ملفات الرأس (headers) تحت `include/tcpreplay/`؛ ويقوم كلا نظامي البناء بتثبيت المكتبة وملف `libtcpreplay.pc` الخاص بها. راجع [`examples/`](https://github.com/appneta/tcpreplay/blob/master/examples) للاطلاع على برنامج كامل.

تشغيل مجموعة الاختبارات
------------------------
```
cd test
sudo make test
```
يتطلب صلاحيات الجذر (raw sockets/حقن الحزم) ويرسل حركة مرور حية على بطاقات الاختبار المُهيأة — لا تشغّله على واجهة متصل عبرها. `make test` مخصص لـ autotools فقط؛ راجع [`docs/INSTALL`](https://github.com/appneta/tcpreplay/blob/master/docs/INSTALL) لتهيئة بطاقات الاختبار باستخدام `--with-testnic`/`--with-testnic2`.

الحصول على المساعدة
============
هل تعتقد أنك وجدت خطأً، أو لديك سؤال؟ ابحث أولاً في
[المشكلات الموجودة](https://github.com/appneta/tcpreplay/issues)، ثم
[افتح مشكلة جديدة](https://github.com/appneta/tcpreplay/issues/new) إن لم تكن
مغطاة بالفعل. يُرجى تضمين:

* إصدار Tcpreplay (`-V`/`--version`) والمنصة
* إذا كانت مشكلة بناء: مخرجات `configure`/`cmake` و`make`
* إذا كانت مشكلة وقت تشغيل: سطر الأوامر الدقيق، ووصف (أو
  ملف pcap مرفق) لما كنت تحاول فعله
* أي شيء آخر يبدو ذا صلة — كلما زادت التفاصيل، أسرعنا في المساعدة

هل وجدت ثغرة أمنية تحديداً؟ يُرجى اتباع
[`SECURITY.md`](https://github.com/appneta/tcpreplay/blob/master/SECURITY.md) بدلاً من تقديم مشكلة علنية.

نشجعك أيضاً على مراجعة
[موقع التوثيق](https://tcpreplay.appneta.com) أولاً — 
[الأدلة](https://tcpreplay.appneta.com/guides/)،
[الأسئلة الشائعة](https://tcpreplay.appneta.com/faq/) و
[صفحات man](https://tcpreplay.appneta.com/reference/man-pages/) — قبل النشر
على القائمة البريدية
[tcpreplay-users](https://lists.sourceforge.net/lists/listinfo/tcpreplay-users)،
ويُرجى عدم مراسلة المشرفين مباشرة، حتى يستفيد الآخرون من
سؤالك (ويساعدوا في الإجابة عليه) أيضاً.

المساهمة
============
1. قم بعمل [Fork] للمستودع و[إعداد git][git] إن لم تكن قد فعلت ذلك بالفعل
2. أنشئ فرعاً لميزتك أو إصلاح الخطأ
3. قم بإجراء تغييرك — راجع [`docs/HACKING`](https://github.com/appneta/tcpreplay/blob/master/docs/HACKING) لمعايير
   البرمجة وما يعنيه المساهمة بكودك من ناحية الترخيص
4. ادفع إلى نسختك المتفرعة و[أرسل طلب سحب][pr] مقابل `master`

سنراجعه ونناقشه معك على GitHub؛ وبمجرد قبوله، يُطبَّق
مباشرة على `master`. راجع أيضاً
[أدلة المطورين](https://tcpreplay.appneta.com/developers/) للمواد
على مستوى البنية — كتابة إضافة DLT، وتضمين
libtcpreplay/libtcpedit، وتصميم الإضافات.

الترخيص
=======
Tcpreplay مرخّص بموجب [GPLv3]، ويتضمن برمجيات طوّرتها
جامعة كاليفورنيا، بيركلي، ومختبر لورنس بيركلي والمساهمون فيه. راجع [`LICENSE`](https://github.com/appneta/tcpreplay/blob/master/LICENSE) للنص الكامل.

يغطي هذا الملفات المكتوبة للمشروع؛ بعض الملفات الموزعة مع
Tcpreplay Suite محمية بحقوق نشر لمؤلفين آخرين وتحمل ترخيصاً
مختلفاً، ويُشار إلى ذلك داخل الملف. يمكن توجيه الأسئلة حول الترخيص
الذي ينطبق على ملف أو وحدة معينة إلى
[القائمة البريدية tcpreplay-users](https://sourceforge.net/p/tcpreplay/mailman/tcpreplay-users/).

المؤلفون
=======
أنشأ Aaron Turner برنامج Tcpreplay. تولّى Fred Klassen ([AppNeta by Broadcom][AppNeta])
الصيانة في 2013، بدءاً من الإصدار 4.0، مضيفاً
ميزات الأداء واختبار التدفق الموصوفة أعلاه.

[GPLv3]:    http://www.gnu.org/licenses/gpl-3.0.html
[netmap]:   https://github.com/luigirizzo/netmap
[flow]:     https://en.wikipedia.org/wiki/Traffic_flow_(computer_networking)
[NetFlow]:  http://www.cisco.com/go/netflow
[Cygwin]:   http://www.cygwin.com/
[Wireshark]: https://www.wireshark.org
[tcpdump]:  http://www.tcpdump.org
[Cisco]:    http://www.cisco.com
[AppNeta]:  https://www.broadcom.com/products/software/network-management/appneta
[git]:      https://help.github.com/articles/set-up-git
[Fork]:     https://help.github.com/articles/fork-a-repo
[pr]:       https://help.github.com/articles/using-pull-requests
تنزيل الأداة