When I completely migrated my primary workflow to Linux (Manjaro), I faced a huge daily annoyance: the absolute lack of a modern, working alternative to Windows' famous SelfishNet or NetCut to monitor and control my local network speed and cut off abusive devices.
Most Linux solutions were either unmaintained CLI scripts or outdated tools that required fighting with dependencies. So, I took it as a personal weekend challenge to build NetGuard from scratch—combining a clean Flutter Desktop UI with native low-level Linux networking power (iptables, arpspoof, tc) to regain full digital sovereignty over my own LAN.
NetGuard is a powerful, modern, and lightweight Linux application for monitoring and controlling local network traffic. Built with Flutter and native Linux tools, it provides real-time insights into network usage and gives you control over connected devices.
- 🔍 Device Discovery: Automatically scans and lists all devices connected to your LAN (IP, MAC Address, Vendor).
- 📊 Real-time Traffic Monitoring:
- View live Download and Upload speeds for every device.
- Monitor your own computer's traffic ("My PC") separately.
- 🚫 Access Control:
- Cut internet access for specific devices using ARP Spoofing and IPTables.
- Granular control over network flows.
- 🚀 Native Performance:
- Built with Flutter for a beautiful UI.
- Uses native C++ runner and Linux kernel tools (
iptables,tc,arpspoof) for high performance.
- 📦 Portable: Use the release version without installation.
NetGuard relies on standard Linux networking tools. Ensure your system has the following installed:
- OS: Linux (Maintained distributions like Ubuntu, Debian, Fedora, Arch).
- Permissions: Root privileges (
sudoorpkexec) are required for network monitoring and control. - Dependencies:
- Debian/Ubuntu:
sudo apt install iptables dsniff iproute2 net-tools
- Arch Linux:
sudo pacman -S iptables dsniff iproute2 net-tools
- Fedora:
(Note:
sudo dnf install iptables dsniff iproute net-tools
dsniffprovidesarpspoof,iproute2providesipandtc)
- Debian/Ubuntu:
- Download the NetGuard_Release folder.
- Run the setup script to install the desktop shortcut:
./NetGuard_Release/Setup_Shortcut.sh
- Launch NetGuard from your applications menu or desktop.
- Clone the repository:
git clone https://github.com/Ibrahem3/netguard.git cd netguard - Install Flutter Dependencies:
flutter pub get
- Build Release:
flutter build linux --release
- Run:
./run_with_root.sh
To run NetGuard without entering your password every time, the application can use a sudoers rule. The setup scripts included in the project can help configure this automatically by adding a rule to /etc/sudoers.d/.
NetGuard is for educational and network administration purposes only. Using network cutting features (ARP spoofing) on networks you do not own or have permission to manage is illegal and unethical. The developers assume no liability for misuse of this software.
Contributions are welcome! Please fork the repository and submit a Pull Request.
*Developed with ❤️ by Ibrahem Samir
