Skip to content

Repository files navigation

NetControl Linux

NetControl Linux is a Linux desktop app for managing LAN devices on networks you own or are authorized to administer.

NetControl Linux demo UI

Demo UI rendered with sample devices and traffic values only. No real network data is shown.

It gives you:

  • NIC selection on startup
  • network discovery and live device updates
  • start/stop traffic control for redirect mode
  • per-device whitelist
  • per-device caps and block control
  • session-only focus mode for a selected device
  • custom device labels
  • saved local state for the current machine

What It Does

The app is designed for day-to-day control of a small LAN:

  • discover devices on the current subnet
  • inspect MAC, IP, vendor, and traffic counters
  • apply or clear per-device caps
  • block or unblock a device
  • whitelist a device so it is excluded from automatic control
  • keep one focus device protected for the current session
  • recover cleanly when the interface drops and comes back

Requirements

  • Linux
  • root privileges when running the app
  • a working Qt6 desktop session
  • iproute2
  • Python 3.12 or newer

Setup

cd netcontrol-linux
./bootstrap.sh

The bootstrap script creates the local virtual environment and installs the Python dependencies needed to run the app.

Run

cd netcontrol-linux
./run.sh

Optional minimized start:

./run.sh minimize

If tray integration is unstable in your desktop session:

./run.sh --no-tray

Usage Notes

  • Use this tool only on networks and devices you own or are explicitly authorized to manage.
  • Start traffic control only when you need it.
  • Whitelisted devices are excluded from automatic control.
  • Focus mode is session-only and clears when global redirect stops.
  • Local state is stored in netcontrol_state.json for the current machine.
  • See RESPONSIBLE_USE.md and SECURITY.md before publishing changes or reporting network-impacting bugs.

Development

Recommended checks before a pull request:

python3 -m compileall -q src tests
python3 -m unittest -q tests/test_whitelist_regressions.py

Regenerate the demo media:

PYTHONDONTWRITEBYTECODE=1 .venv/bin/python tools/generate_demo_media.py

Project Status

The implementation is kept intentionally direct so maintenance stays practical.

Roadmap

See ROADMAP.md for the next planned maintenance and packaging work.

About

Linux desktop app for managing LAN devices on networks you own or administer.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages