Software
NetMon
Check your download: file names and SHA-256 checksums published 23/09/2026
Compare the checksum of the file you downloaded with the one listed here. If they differ, the file is not the one published on this page - delete it and download it again.
- NetMon-1.0.15-Setup.exe
8eeec8708adcaba598029d837718528d24b7cc5de87a86150eb651e30af60a0b - NetMon-1.0.15-linux-x64.tar.gz
49054037e9a1f9baf97ff1f11b0acc521d00aa2283a84f3b8a8fa9e6030c6852 - NetMon-1.0.15-linux-arm64.tar.gz
83745d6753ebf69ab31c20d70b80086980d46e51bebc72a55551064af2a70510 - NetMon-1.0.15-macos-arm64.tar.gz
e5647d1640a38a736ffa4957ae7d97079c39d2ff5f4e1d1c02662583143895f5 - NetMon-1.0.15-macos-x64.tar.gz
ae4a296a9f09133cc9482e098da1a1e37fcc999d4c7e3ddba41bc395c96ac367
Windows (PowerShell): Get-FileHash <file>
Linux: sha256sum <file>
macOS: shasum -a 256 <file>
How to install and use it
Windows 10, 11 or Server
- Run
NetMon-1.0.15-Setup.exeand accept the defaults. It installs NetMon as a Windows service, opens its port in Windows Firewall and starts it. - On the server, open https://localhost:8443 - from another machine, https://<server name>:8443.
- The browser warns that the connection is not private. That is expected: NetMon issued its own certificate on first start. Choose Advanced, then Continue.
- Finish the setup wizard: confirm you are authorised to monitor the equipment, create your administrator account, set the site name and time zone, then add devices or let NetMon scan an address range for them.
Linux (x64 or ARM64)
- In a terminal, unpack the file for your machine (
uname -mprints x86_64 or aarch64) and install it as a service. Put your own network after --from: it is the only range allowed to reach the dashboard.tar -xzf NetMon-1.0.15-linux-x64.tar.gz cd NetMon-1.0.15-linux-x64 chmod +x NetMon.Web *.sh sudo ./firewall-rules.sh --from 192.168.1.0/24 sudo ./install-service.sh --grant-capture - On ARM64, use NetMon-1.0.15-linux-arm64 in the first two lines. Nothing else has to be installed: the runtime is inside.
- Open https://<server>:8443 in a browser. It warns that the connection is not private; that is expected: NetMon issued its own certificate on first start. Choose Advanced, then Continue.
- Finish the setup wizard: confirm you are authorised to monitor the equipment, create your administrator account, set the site name and time zone, then add devices or let NetMon scan an address range for them.
macOS (Apple silicon or Intel)
- In Terminal, unpack the file for your Mac and install it as a service. Put your own network after --from.
tar -xzf NetMon-1.0.15-macos-arm64.tar.gz cd NetMon-1.0.15-macos-arm64 chmod +x NetMon.Web *.sh sudo xattr -dr com.apple.quarantine . sudo ./firewall-rules.sh --from 192.168.1.0/24 sudo ./install-service.sh --grant-capture - On an Intel Mac, use NetMon-1.0.15-macos-x64 in the first two lines.
- Open https://<this Mac>:8443 in a browser. It warns that the connection is not private; that is expected: NetMon issued its own certificate on first start. Choose Advanced, then Continue.
- Finish the setup wizard: confirm you are authorised to monitor the equipment, create your administrator account, set the site name and time zone, then add devices or let NetMon scan an address range for them.
A question about installing or using it? Ask in the comments below, or through the contact page.
Mixed estates contain devices that expose nothing but a ping, and most monitoring either cannot see them or reports the state now and nothing about last week, so an intermittent fault gets argued about rather than diagnosed.
A monitoring application for Windows, Linux and macOS that treats reachability as first class, keeps per-device history locally with charts and export, separates networks into their own instances, and hands over to packet capture when counters stop being enough.
The whole estate is visible, including the equipment that used to be invisible, and an intermittent fault becomes a chart that can be exported and sent instead of a disagreement.
A mixed estate: a few devices fully instrumented, most of them answering SNMP and little else, and a stubborn remainder — power units, cameras, sensors, appliances somebody installed years ago — that answer a ping and nothing more. What a network team actually needs to know is whether all of it is up, how each part of it has behaved over the past week, and what changed shortly before the complaint arrived.
Why I built it
Because a diagnosis needed an instrument that did not exist. I was trying to establish whether a link had been flapping overnight or whether a handful of devices had been unreachable for a few minutes at a time all week, and the tools to hand either could not see those devices at all or could tell me the state now and nothing about the state yesterday.
Commercial monitoring platforms are either too large for a single network team or too shallow to be useful once you need per-device detail. They are not badly built; they answer a different question — an estate-wide, reportable, management-facing question — and the question in front of me was a diagnostic one about specific devices on a specific afternoon. Vendor tools stop exactly where your problem starts, and that is the point at which I write the missing piece rather than work around it. NetMon is a monitoring application because a fault needed measuring, not because I wanted to write a monitoring application.
The problem
Devices that expose nothing get quietly left out of the inventory, and they are disproportionately the ones that fail without telling anybody. An estate where part of the equipment is invisible is not being monitored; it is being sampled, and the gaps are exactly where the surprises live.
The second gap is history. Most tools will tell you the state now, which is the one thing a user has usually already told you. A fault that comes and goes leaves no trace, so an intermittent problem gets argued about rather than diagnosed, and the argument tends to be settled by whoever is most senior rather than whoever is right. The third is separation: a management network, a client estate and a bench sharing one view is how you end up reading the wrong graph confidently. All of that costs the same three things — outages found by users, intermittent faults that stay open for weeks, and a monitoring scope decided by per-device licensing rather than by engineering.
What I did
- Reachability first, and ping-only devices treated as first-class. Continuous reachability and latency monitoring across the estate, including the devices that expose nothing else, because an inventory that only contains the cooperative equipment is the wrong inventory.
- Per-device history and charting, with export. The deliverable is often evidence handed to a vendor, a change board or a client, so the history has to leave the tool in a form somebody else will accept.
- Multiple monitoring instances. Separate networks stay separate, deliberately, rather than being merged into one pane that flatters the dashboard and misleads the engineer.
- Local storage, no cloud dependency, no per-device licensing. A tool that needs a working network to report on that network is the wrong shape, and what gets monitored should be an engineering decision rather than a budget one.
- A packet-capture hook for the moment counters stop being enough. Reachability data answers whether; it does not answer why. Rather than pretend otherwise, the tool hands over to capture at that boundary.
- Honest about what it can and cannot see. A device that only answers a ping is presented as exactly that, because a monitoring tool that overstates its coverage is worse than one with gaps you know about.
The result
The state of an estate at a glance, and the detail behind it without opening four other tools. The equipment that used to be invisible now appears alongside everything else, an intermittent fault becomes a chart instead of a disagreement, and the awkward question — was it doing this last week as well — has an answer that can be exported and sent.
It is also quick to deploy and cheap to abandon: no server component, no cloud account, nothing that has to be justified before a device can be watched. And it is evidence of how I prefer to work. The code exists only because a diagnosis needed an instrument; if a product had answered the question, I would have bought it and got on with the fault.
Requirements
Windows, with an installer that sets NetMon up as a service. Linux on x64 and ARM64, and macOS on Apple silicon and Intel, from the archives above, each with a script that does the same. The .NET runtime travels inside every download, so nothing else has to be installed first. NetMon keeps its data in a local database file — no external database, no cloud account — and is used from a web browser.