Net-SNMP (snmpget, snmpwalk)
If you've ever queried a device over SNMP from a terminal, you've almost certainly used Net-SNMP. It's the open-source suite that ships the commands everyone knows — snmpget, snmpwalk, snmpbulkwalk, snmptable, snmptranslate — and it's the reference implementation the rest of the ecosystem measures itself against. This page is about the toolkit itself: how to install it, how to fire your first snmpget snmpwalk query, the net-snmp commands worth memorizing, what it does well, what it doesn't, and how to poll the same values from outside your network so an alert still reaches you when a box falls over.
What is Net-SNMP (snmpget, snmpwalk)
Net-SNMP is a collection of applications for managing and monitoring devices through SNMP. Two of its command-line tools do most of the heavy lifting. snmpget fetches a single named value — one OID, one answer. snmpwalk starts at a point in the OID tree and walks downward, returning every object underneath it, one GETNEXT at a time, until the subtree runs out. Between them you can pull one precise reading or survey everything a device is willing to tell you.
The suite predates most commercial monitoring software and grew out of the earlier UCD-SNMP project at UC Davis — which is why the Net-SNMP agent's own metrics still live under the enterprise branch 1.3.6.1.4.1.2021, the UCD-SNMP-MIB. It speaks all three protocol versions: SNMPv1 (RFC 1157), SNMPv2c (RFC 3416), and SNMPv3 with its USM authentication and privacy (RFC 3411–3418). On the manager side it's just software you run; on the target side it also provides snmpd, the agent daemon that answers the queries. Most people meet it first as a client.

Install & basic use
Getting the client utilities onto a machine is a one-liner on most systems. Here's the path from nothing to your first successful query:
- Install the package. Debian or Ubuntu:
sudo apt install snmp. RHEL, CentOS, or Fedora:sudo dnf install net-snmp-utils. The agent daemon is a separate package (snmpd) if you also want to answer queries. - Pull in the standard MIBs so replies read as names, not numbers: on Debian,
sudo apt install snmp-mibs-downloaderand enable them by commenting out themibs :line in/etc/snmp/snmp.conf. - Verify offline with
snmptranslate, which resolves names to OIDs without sending a packet — a quick sanity check that the MIBs loaded. - Run a live query against a device that has an agent answering with an SNMPv2c read community.
That first snmpget snmpwalk pair looks like this:
# Fetch one value — host uptime
snmpget -v2c -c public 10.0.0.5 1.3.6.1.2.1.25.1.1.0
# Walk a whole subtree — the processor table
snmpwalk -v2c -c public 10.0.0.5 1.3.6.1.2.1.25.3.3.1.2
The walk returns one line per logical CPU, each an hrProcessorLoad value from the Host Resources MIB (RFC 2790). If nothing comes back, the device probably isn't publishing that OID — the OID allowlist guide shows how to expose it, and the snmpd.conf guide covers standing up the agent in the first place.
Key commands / features
The suite is more than two commands. This table covers the ones you'll actually type, with the job each one owns and a real example against the OIDs this site documents.
| Command | What it does | Example |
|---|---|---|
snmpget | Fetch one OID's value | snmpget -v2c -c public 10.0.0.5 1.3.6.1.2.1.25.1.1.0 |
snmpwalk | Walk a subtree via GETNEXT | snmpwalk -v2c -c public 10.0.0.5 1.3.6.1.2.1.2.2.1 |
snmpbulkwalk | Walk faster using GETBULK (v2c+) | snmpbulkwalk -v2c -c public 10.0.0.5 1.3.6.1.2.1.31.1.1.1 |
snmptable | Render a conceptual table as a grid | snmptable -v2c -c public 10.0.0.5 hrProcessorTable |
snmptranslate | Convert OID number ↔ MIB name, offline | snmptranslate 1.3.6.1.2.1.25.3.3.1.2 |
A few flags recur everywhere. -v2c picks the version; -c gives the community string; -On forces numeric output when MIBs aren't installed; -Os trims to the short object name. For encrypted polling, the SNMPv3 form is longer but worth it:
snmpget -v3 -l authPriv -u monitor -a SHA -A authpass -x AES -X privpass 10.0.0.5 1.3.6.1.2.1.25.1.1.0
snmpbulkwalk deserves a special mention. On any interface table — say ifTable at 1.3.6.1.2.1.2.2.1 or the 64-bit ifXTable at 1.3.6.1.2.1.31.1.1.1 from the IF-MIB (RFC 2863) — it collapses dozens of round trips into a handful, which matters over slow links or against chatty devices.
Pros & cons
Net-SNMP is the default for good reasons, but it's a toolkit, not a monitoring system. Knowing the edges saves frustration.
- Pro — everywhere. It's packaged for every Linux distro, the BSDs, and macOS, and it's the implementation most documentation assumes.
- Pro — scriptable. Plain text in, plain text out. It drops straight into shell scripts, cron jobs, and pipelines.
- Pro — complete. Get, walk, bulk, table, translate, and trap handling all in one consistent suite.
- Con — raw. There's no GUI, no autocomplete for OIDs, and error messages assume you already understand the protocol.
- Con — MIB setup is fiddly. Getting name resolution working trips up nearly everyone the first time.
- Con — it queries, it doesn't watch. There's no history, no dashboard, no alert. A
snmpwalktells you the value now; keeping an eye on it over time is a different tool's job.
Alternatives
When the bare command line feels too raw, a MIB browser gives you a clickable tree to explore what a device offers before you script anything. For testing scripts against predictable data without real hardware, snmpsim stands up a fake agent. The broader tools pillar maps the whole landscape, the tools comparison puts the options side by side, and the home page frames how SNMP monitoring fits together end to end.
The gap Net-SNMP can't close on its own is continuous, external alerting. A cron job running snmpget on the very server you're worried about goes silent exactly when the server does. That's the case for polling from off-box — the double durability idea of keeping an independent watcher outside the network. ostr.io Monitoring does precisely that with SNMPv2c: it polls your chosen OIDs from outside and fires real-time email and SMS alerts, zero setup on a dashboard you have to babysit.
