A user-friendly Linux network emulator.
Project description
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
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:
- Create
.venv/if it doesn't exist. - Install the project in editable mode on the first run.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac0097c495f627d07792970c0df5a5894d3c71ca86af402727cab104554cd4ee
|
|
| MD5 |
c6fd56a5965a4a46159a4c3b2a306fc3
|
|
| BLAKE2b-256 |
660f7e126ec720c34c0707002dc9b2465a5cf2f8a6b96ad180dc2416d1b2a3d7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03b8da364e056b035b6fd2986d35ee345ec8a4d69bfd2a8efa13d1bbe76f6815
|
|
| MD5 |
045b7772ede058d321b6e12c1262a6af
|
|
| BLAKE2b-256 |
587655dcf7e50a0895daf4cac2d09549d41823a43fd8b3a047b5efb9c560f88c
|