Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tcconfig — Обёртка для команды tc. Упрощает настройку управления трафиком (пропускная способность сети, задержка, потеря пакетов, искажение пакетов и т.д.) для сетевого интерфейса / Docker-контейнера (veth). | Kitploit
Инструменты/GitHubGitHub/thombashi/tcconfig
Утилиты общего назначенияСетевая безопасностьИнженерия Хаоса
GitHubthombashi/tcconfig

tcconfig

Обёртка для команды tc. Упрощает настройку управления трафиком (пропускная способность сети, задержка, потеря пакетов, искажение пакетов и т.д.) для сетевого интерфейса / Docker-контейнера (veth).

РепозиторийСайт
85390104 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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

Сводка

tcconfig <https://github.com/thombashi/tcconfig>__ — это обёртка для команды tc. Упрощает настройку контроля трафика пропускной способности сети/задержки/потери пакетов/повреждения пакетов и т.д. для сетевого интерфейса или 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

Контроль трафика

Настройка правил формирования трафика ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Легко применять правила формирования трафика к конкретным сетям:

  • Исходящие/входящие пакеты
  • IP-адрес/сеть источника/назначения (IPv4/IPv6)
  • Порты источника/назначения

Доступные параметры ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для сетевых интерфейсов можно задать следующие параметры:

  • Пропускная способность сети [G/M/K бит/с]
  • Задержка сети [микросекунды/миллисекунды/секунды/минуты]
  • Процент потери пакетов [%]
  • Процент повреждения пакетов [%]
  • Процент дублирования пакетов [%]
  • Процент переупорядочивания пакетов [%]
  • Лимит количества пакетов [ЧИСЛО]

Цели ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Сетевые интерфейсы: например eth0
  • Docker-контейнер (veth, соответствующий контейнеру)

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

Использование

Установка контроля трафика (команда tcset)

tcset — это команда для добавления правила контроля трафика к сетевому интерфейсу (устройству).

Пример: ограничение пропускной способности до 100 Кбит/с ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

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

Пример: установка задержки сети ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Вы можете использовать единицы времени (например, us/sec/min и т.д.) для указания времени задержки.

Установка задержки сети 100 миллисекунд ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

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

Установка задержки сети 10 секунд ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

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

Установка задержки сети 0,5 минуты (30 секунд) ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console

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

Вы также можете использовать следующие единицы времени:

.. table::

root@kitploit:~
+------------+----------------------------------------------------------+
|   Единица  |            Допустимые спецификаторы (строка)            |
+============+==========================================================+
|часы        |``h``/``hour``/``hours``                                  |
+------------+----------------------------------------------------------+
|минуты      |``m``/``min``/``mins``/``minute``/``minutes``             |
+------------+----------------------------------------------------------+
|секунды     |``s``/``sec``/``secs``/``second``/``seconds``             |
+------------+----------------------------------------------------------+
|миллисекунды|``ms``/``msec``/``msecs``/``millisecond``/``milliseconds``|
+------------+----------------------------------------------------------+
|микросекунды|``us``/``usec``/``usecs``/``microsecond``/``microseconds``|
+------------+----------------------------------------------------------+

Пример: 0,1% потери пакетов ^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

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

Пример: все вышеперечисленные настройки сразу ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

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

Пример: указание IP-адреса для контроля трафика ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

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

Пример: указание IP-сети и порта для контроля трафика ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console

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

Установка контроля трафика для Docker-контейнера ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Выполните tcconfig с опцией --docker на Docker-хосте:

.. code-block:: console

root@kitploit:~
# tcset <имя или ID контейнера> --docker ...

Вы можете использовать опции --src-container/--dst-container для указания контейнера-источника/назначения.

Установка контроля трафика внутри Docker-контейнера ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Вам нужно запустить контейнер с опцией --cap-add NET_ADMIN, если вы хотите установить правило tc внутри контейнера:

.. code-block:: console

root@kitploit:~
docker run -d --cap-add NET_ADMIN -t <docker-образ>

Образ контейнера со встроенным tcconfig доступен на https://hub.docker.com/r/thombashi/tcconfig/

Удаление контроля трафика (команда tcdel)

tcdel — это команда для удаления правил формирования трафика с сетевого интерфейса (устройства).

Пример: удаление контроля трафика для eth0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Вы можете удалить все правила формирования для eth0 с помощью опции -a/--all:

.. code-block:: console

root@kitploit:~
# tcdel eth0 --all

Отображение конфигураций контроля трафика (команда tcshow)

tcshow — это команда для отображения текущих настроек контроля трафика для сетевого интерфейса (интерфейсов).

Пример ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. 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"
            }
        }
    }
}

Дополнительная информация

Больше примеров доступно на https://tcconfig.rtfd.io/en/latest/pages/usage/index.html

Установка

Установка: pip

tcconfig можно установить из PyPI <https://pypi.python.org/pypi>__ с помощью команды pip <https://pip.pypa.io/en/stable/installing/>__ (менеджер пакетов Python).

.. code:: console

root@kitploit:~
sudo pip install tcconfig

Установка: dpkg (Debian/Ubuntu)

.. code:: console

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

Зависимости

  • Python 3.9+
  • Зависимости пакетов Python (устанавливаются автоматически) <https://github.com/thombashi/tcconfig/network/dependencies>__

Пакеты Linux

  • Обязательные: требуются для команды tc:
    • Ubuntu/Debian: iproute2
    • Fedora/RHEL: iproute-tc
  • Необязательные: требуются при использовании опции --iptables:
    • iptables

Модуль ядра Linux

  • sch_netem

Необязательные пакеты Python

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

Документация

https://tcconfig.rtfd.io/

Устранение неполадок

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

Docker-образ

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

Спонсоры

|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)

Стать спонсором <https://github.com/sponsors/thombashi>__

Скачать инструмент