Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
tcconfig — Un wrapper pour la commande tc. Facilite la mise en place du contrôle de trafic (bande passante, latence, perte de paquets, corruption de paquets, etc.) sur une interface réseau / un conteneur Docker (veth). | Kitploit
Outils/GitHubGitHub/thombashi/tcconfig
Utilitaires GénérauxSécurité RéseauIngénierie du Chaos
GitHubthombashi/tcconfig

tcconfig

Un wrapper pour la commande tc. Facilite la mise en place du contrôle de trafic (bande passante, latence, perte de paquets, corruption de paquets, etc.) sur une interface réseau / un conteneur Docker (veth).

Voir le dépôtSite web
85390il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

.. contents:: tcconfig :backlinks: top :depth: 2

Résumé

tcconfig <https://github.com/thombashi/tcconfig>__ est un wrapper de la commande tc. Il facilite la mise en place du contrôle de trafic (bande passante, latence, perte de paquets, corruption de paquets, etc.) sur une interface réseau ou un conteneur Docker (veth).

|PyPI pkg ver| |Supported Python ver| |CI status| |CodeQL|

.. |PyPI pkg ver| image:: https://badge.fury.io/py/tcconfig.svg :target: https://badge.fury.io/py/tcconfig :alt: PyPI package version

.. |Supported Python ver| image:: https://img.shields.io/pypi/pyversions/tcconfig.svg :target: https://pypi.org/project/tcconfig :alt: Supported Python versions

.. |CI status| image:: https://github.com/thombashi/tcconfig/actions/workflows/ci.yml/badge.svg :target: https://github.com/thombashi/tcconfig/actions/workflows/ci.yml :alt: Test CI status

.. |CodeQL| image:: https://github.com/thombashi/tcconfig/actions/workflows/build_and_release.yml/badge.svg :target: https://github.com/thombashi/tcconfig/actions/workflows/build_and_release.yml :alt: Build CI status

Contrôle de trafic

Configuration des règles de mise en forme du trafic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Application facile des règles de mise en forme du trafic à des réseaux spécifiques :

  • Paquets sortants/entrants
  • Adresse IP/réseau source/destination (IPv4/IPv6)
  • Ports source/destination

Paramètres disponibles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les paramètres suivants peuvent être définis sur les interfaces réseau :

  • Débit de bande passante réseau [G/M/K bps]
  • Latence réseau [microsecondes/millisecondes/secondes/minutes]
  • Taux de perte de paquets [%]
  • Taux de corruption de paquets [%]
  • Taux de duplication de paquets [%]
  • Taux de réordonnancement de paquets [%]
  • Nombre limite de paquets [COUNT]

Cibles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Interfaces réseau : par ex. eth0
  • Conteneur Docker (veth correspondant à un conteneur)

.. image:: docs/gif/tcset_example.gif

Utilisation

Définir le contrôle de trafic (commande tcset)

tcset est une commande pour ajouter une règle de contrôle de trafic à une interface réseau (périphérique).

Ex. : Limiter la bande passante à 100Kbps ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

root@kitploit:~
# tcset eth0 --rate 100Kbps

Ex. : Définir la latence réseau ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Vous pouvez utiliser des unités de temps (telles que us/sec/min/etc.) pour désigner le temps de latence.

Définir une latence réseau de 100 millisecondes ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

root@kitploit:~
# tcset eth0 --delay 100ms

Définir une latence réseau de 10 secondes ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

root@kitploit:~
# tcset eth0 --delay 10sec

Définir une latence réseau de 0,5 minute (30 secondes) ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

root@kitploit:~
# tcset eth0 --delay 0.5min

Vous pouvez également utiliser les unités de temps suivantes :

.. table::

root@kitploit:~
+------------+----------------------------------------------------------+
|    Unité   |                Indicateurs disponibles (chaîne)            |
+============+==========================================================+
|heures      |``h``/``hour``/``hours``                                  |
+------------+----------------------------------------------------------+
|minutes     |``m``/``min``/``mins``/``minute``/``minutes``             |
+------------+----------------------------------------------------------+
|secondes    |``s``/``sec``/``secs``/``second``/``seconds``             |
+------------+----------------------------------------------------------+
|millisecondes|``ms``/``msec``/``msecs``/``millisecond``/``milliseconds``|
+------------+----------------------------------------------------------+
|microsecondes|``us``/``usec``/``usecs``/``microsecond``/``microseconds``|
+------------+----------------------------------------------------------+

Ex. : Définir une perte de paquets de 0,1 % ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

root@kitploit:~
# tcset eth0 --loss 0.1%

Ex. : Tous les réglages ci-dessus en une seule fois ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

root@kitploit:~
# tcset eth0 --rate 100Kbps --delay 100ms --loss 0.1%

Ex. : Spécifier l'adresse IP du contrôle de trafic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

root@kitploit:~
# tcset eth0 --delay 100ms --network 192.168.0.10

Ex. : Spécifier le réseau IP et le port du contrôle de trafic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

root@kitploit:~
# tcset eth0 --delay 100ms --network 192.168.0.0/24 --port 80

Définir le contrôle de trafic pour un conteneur Docker ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Exécutez tcconfig avec l'option --docker sur un hôte Docker :

.. code-block:: console

root@kitploit:~
# tcset <container name or ID> --docker ...

Vous pouvez utiliser les options --src-container/--dst-container pour spécifier le conteneur source/destination.

Définir le contrôle de trafic à l'intérieur d'un conteneur Docker ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Vous devez exécuter un conteneur avec l'option --cap-add NET_ADMIN si vous souhaitez définir une règle tc à l'intérieur d'un conteneur :

.. code-block:: console

root@kitploit:~
docker run -d --cap-add NET_ADMIN -t <docker image>

Une image de conteneur intégrant tcconfig est disponible sur https://hub.docker.com/r/thombashi/tcconfig/

Supprimer le contrôle de trafic (commande tcdel)

tcdel est une commande pour supprimer les règles de mise en forme du trafic d'une interface réseau (périphérique).

Ex. : Supprimer le contrôle de trafic de eth0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Vous pouvez supprimer toutes les règles de mise en forme pour eth0 avec l'option -a/--all :

.. code-block:: console

root@kitploit:~
# tcdel eth0 --all

Afficher les configurations de contrôle de trafic (commande tcshow)

tcshow est une commande pour afficher les paramètres actuels de contrôle de trafic pour une ou plusieurs interfaces réseau.

Exemple ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: console

root@kitploit:~
# tcset eth0 --delay 10ms --delay-distro 2  --loss 0.01% --rate 0.25Mbps --network 192.168.0.10 --port 8080
# tcset eth0 --delay 1ms --loss 0.02% --rate 500Kbps --direction incoming
# tcshow eth0
{
    "eth0": {
        "outgoing": {
            "dst-network=192.168.0.10/32, dst-port=8080, protocol=ip": {
                "filter_id": "800::800",
                "delay": "10.0ms",
                "delay-distro": "2.0ms",
                "loss": "0.01%",
                "rate": "250Kbps"
            }
        },
        "incoming": {
            "protocol=ip": {
                "filter_id": "800::800",
                "delay": "1.0ms",
                "loss": "0.02%",
                "rate": "500Kbps"
            }
        }
    }
}

Pour plus d'informations

Plus d'exemples sont disponibles sur https://tcconfig.rtfd.io/en/latest/pages/usage/index.html

Installation

Installation : pip

tcconfig peut être installé depuis PyPI <https://pypi.python.org/pypi>__ via la commande pip <https://pip.pypa.io/en/stable/installing/>__ (gestionnaire de paquets Python).

.. code:: console

root@kitploit:~
sudo pip install tcconfig

Installation : dpkg (Debian/Ubuntu)

.. code:: console

root@kitploit:~
curl -sSL https://raw.githubusercontent.com/thombashi/tcconfig/master/scripts/installer.sh | sudo bash

Dépendances

  • Python 3.9+
  • Dépendances des paquets Python (installées automatiquement) <https://github.com/thombashi/tcconfig/network/dependencies>__

Paquets Linux

  • obligatoire : requis pour la commande tc :
    • Ubuntu/Debian : iproute2
    • Fedora/RHEL : iproute-tc
  • optionnel : requis lorsque vous utilisez l'option --iptables :
    • iptables

Module noyau Linux

  • sch_netem

Paquets Python optionnels

  • Pygments <http://pygments.org/>__

Documentation

https://tcconfig.rtfd.io/

Dépannage

https://tcconfig.rtfd.io/en/latest/pages/troubleshooting.html

Image Docker

https://hub.docker.com/r/thombashi/tcconfig/

Sponsors

|chasbecker| |shiguredo| |b4tman| |Arturi0| |github|

.. |chasbecker| image:: https://avatars.githubusercontent.com/u/44389260?s=48&u=6da7176e51ae2654bcfd22564772ef8a3bb22318&v=4 :target: https://github.com/chasbecker :alt: ex-sponsor: Charles Becker (chasbecker) .. |shiguredo| image:: https://avatars.githubusercontent.com/u/2549434?s=48&v=4 :target: https://github.com/shiguredo :alt: ex-sponsor: 時雨堂 (shiguredo) .. |b4tman| image:: https://avatars.githubusercontent.com/u/3658062?s=48&v=4 :target: https://github.com/b4tman :alt: onetime: Dmitry Belyaev (b4tman) .. |Arturi0| image:: https://avatars.githubusercontent.com/u/46711571?s=48&u=57687c0e02d5d6e8eeaf9177f7b7af4c9f275eb5&v=4 :target: https://github.com/Arturi0 :alt: onetime: Arturi0 .. |github| image:: https://avatars.githubusercontent.com/u/9919?s=48&v=4 :target: https://github.com/github :alt: onetime: GitHub (github)

Devenez sponsor <https://github.com/sponsors/thombashi>__

Télécharger l’outil