Skip to main content

A user-friendly Linux network emulator.

Project description

Netmango

A user-friendly Linux Network Emulator.


Why Netmango?

This started back when I was a fresh ICT master's student, helping out on a remote-controlled vehicle project. The robot talked to its operator over Wi-Fi, and on paper everything worked great. However, but the moment we drove it a little further away, or around an obstacle, the robot started behaving funny.

To make the control loop more robust, we needed a way to reproduce those messy links on demand. Although Linux has a netem for this, but it turns out very unfriendly to use: long commands, easy to mistype, and if you forget to undo your rule your Wi-Fi just stays broken.

So I built Netmango: a small, friendly Python app that lets you emulate and monitoring the messy real-world network conditions your device will actually face out in the wild 🥭. With it you can:

  • pick the interface you want to mess with,
  • add delay, jitter, packet loss, and corruption with a few clicks,
  • watch your link quality and throughput live while you test,
  • and just close the window when you're done — Netmango cleans up after itself, no leftover rules.

Say goodbye to wrestling with netem.


APP Screenshot

Netmango_app


Quick start

Option A — install from PyPI (recommended)

pip install netmango
sudo netmango        # tc/netem requires root

Option B — run from a clone

# Clone the repo
cd netmango
./start.sh

That's it. start.sh will:

  1. Create .venv/ if it doesn't exist.
  2. Install the project in editable mode on the first run.
  3. Launch the GUI (python -m netmango).

To stop, just click the ×. Netmango automatically removes any rule it applied.


Prerequisites

Netmango runs on Linux and relies on a few common system packages.

System packages

On Debian / Ubuntu:

sudo apt update
sudo apt install -y \
    python3 python3-venv python3-pip \
    iproute2 iputils-ping \
    libxcb-cursor0 libxcb-xinerama0

Sudo

Netmango uses tc, which is a Linux kernel feature and needs root, so it will prompt for your sudo password the first time you apply a rule.


Author

I'm Mengge Zhang, an ICT master's student at KU Leuven. Netmango is a personal project, fully open source. I like to use what I learned to solve realworld challenges. Happy shaping! 🥭

I'm currently looking for opportunities to pursue a PhD, so feel free to get in touch!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netmango-0.1.0.tar.gz (795.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netmango-0.1.0-py3-none-any.whl (795.6 kB view details)

Uploaded Python 3

File details

Details for the file netmango-0.1.0.tar.gz.

File metadata

  • Download URL: netmango-0.1.0.tar.gz
  • Upload date:
  • Size: 795.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for netmango-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ac0097c495f627d07792970c0df5a5894d3c71ca86af402727cab104554cd4ee
MD5 c6fd56a5965a4a46159a4c3b2a306fc3
BLAKE2b-256 660f7e126ec720c34c0707002dc9b2465a5cf2f8a6b96ad180dc2416d1b2a3d7

See more details on using hashes here.

File details

Details for the file netmango-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: netmango-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 795.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for netmango-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03b8da364e056b035b6fd2986d35ee345ec8a4d69bfd2a8efa13d1bbe76f6815
MD5 045b7772ede058d321b6e12c1262a6af
BLAKE2b-256 587655dcf7e50a0895daf4cac2d09549d41823a43fd8b3a047b5efb9c560f88c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page