Overview • Features • Prerequisites • Installation & Build • How to Use • TODO • Contributing • License
NetWarden is an open-source network management tool that provides a range of features for monitoring and controlling devices on the same network, similar to tools like netcut. Its primary functionalities include displaying connected devices, cutting or restoring individual devices, background scanning for connected devices, and defending against ARP spoofing.
- Network Discovery: Show all connected devices on the same local network.
- Traffic Control: Cut or restore internet access for a specific device.
- Bulk Actions: Cut all or restore all devices on the network simultaneously.
- Continuous Monitoring: Background scanning for ongoing network monitoring.
- Real-Time Updates: Live device scanning ensuring your device list is always up to date.
- Device Nicknames: Ability to add a persistent nickname for each device to easily identify them.
- ARP Defender: Defend against ARP spoofing attacks (including those initiated by another NetWarden user).
Before running NetWarden, ensure you have the following dependencies installed on your system:
NetWarden relies on low-level packet capture capabilities. You must install the appropriate library for your Operating System:
- Windows: Npcap (The Free Edition is sufficient. Note: Ensure you run the interactive installer, as silent install is unsupported for the free version).
- Linux/macOS: libpcap (Usually available via your package manager, e.g.,
sudo apt install libpcap-dev).
You need the .NET 8.0 SDK to build and run the application.
- Windows: You can quickly install it via Winget:
winget install Microsoft.DotNet.SDK.8or download it from Microsoft's website. - Linux/macOS: Follow the official Microsoft installation guide.
Follow these step-by-step instructions to compile NetWarden from source:
-
Clone the repository:
git clone https://github.com/amdzy/NetWarden.git cd NetWarden -
Restore dependencies: Fetch all required NuGet packages for the project.
dotnet restore
-
Build the application: Compile the project into a release build.
dotnet publish -c Release
-
Locate the executable: Once successfully built, your executable will be located in the publish folder. For a Windows x64 machine, the path will look like this:
.\NetWarden.Tui\bin\Release\net8.0\win-x64\publish\NetWarden.Tui.exe
⚠️ CRITICAL PERMISSIONS NOTE: Because NetWarden intercepts and manipulates low-level network packets, you MUST run your terminal as an Administrator (Windows) or root (Linux/macOS) to avoid permission errors or application crashes.
To launch the visual interface, simply run the compiled executable from an elevated command prompt or terminal:
# On Windows (Inside an Administrator PowerShell window)
cd path\to\NetWarden
.\NetWarden.Tui\bin\Release\net8.0\win-x64\publish\NetWarden.Tui.exeWhen you launch the application, you'll be greeted by the Main Dashboard. From here you can:
- Scan: Let the app automatically discover devices on your subnet.
- Navigate: Use your arrow keys to select specific devices from the list.
- Cut/Restore: Follow the on-screen hotkeys to sever a specific device's connection to the router, or restore its access.
- Nickname: Assign friendly names to MAC addresses so you remember which device belongs to whom.
- Defend: Toggle the ARP defense mode to prevent others from cutting your connection.
If you prefer operating directly from the command line without the graphical TUI, NetWarden supports the following arguments:
list-devices: Print a list of all detected network interfaces/adapters on your host machine.set-device <device_name>: Explicitly set the specific network adapter to capture traffic on.-hor--help: Show the help menu with available commands.-vor--version: Display the current NetWarden version.
Example CLI Usage:
.\NetWarden.Tui.exe list-devices
.\NetWarden.Tui.exe set-device "Ethernet0"- Ability to defend against spoofing attacks.
- Limit download and upload speed for devices.
- Create a GUI for the application.
Contributions are welcome! If you have ideas, bug reports, or want to contribute code, just open an issue or send me a pull request.
This project is licensed under the MIT License.