Toolman 100% local

Port 161 — SNMP

UDP well-known

What runs on port 161

Network device monitoring and management.

SNMP polls device statistics — interface counters, temperatures, uptime. Versions 1 and 2c authenticate with a community string sent in clear text, and "public" is still a common default, which means an exposed SNMP agent hands over a full inventory of the device to anyone who asks. Version 3 adds real authentication and encryption. Like DNS and NTP, SNMP is also an amplification vector because a small query can return a large table.

Security considerations

SNMP v1 and v2c authenticate with a community string sent in clear text, and "public" is still a common default. Use v3, or firewall it to the monitoring host.

Checking whether something is listening

# Linux / macOS — what is bound to the port
sudo lsof -i :161
sudo ss -lntp | grep :161

# Windows
netstat -ano | findstr :161
Get-NetTCPConnection -LocalPort 161

# is it reachable from outside?
nc -zv example.com 161
curl -v telnet://example.com:161

Freeing the port

# find the process, then stop it
sudo lsof -ti :161 | xargs kill        # Linux / macOS
netstat -ano | findstr :161            # note the PID, then:
taskkill /PID <pid> /F                    # Windows

Should this port be open to the internet?

Usually not. Expose it only if a specific external client needs it, and restrict by source address where you can.

Opening or blocking port 161

Finding the port is usually the first half of the job. Start narrow — the second rule is there for services that genuinely serve the public, and most do not:

# ufw — Debian, Ubuntu
sudo ufw allow from 10.0.0.0/8 to any port 161 proto udp
sudo ufw allow 161/udp                   # only if it genuinely serves the public

# firewalld — RHEL, Fedora, CentOS
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/8 port port=161 protocol=udp accept'
sudo firewall-cmd --reload

# iptables, if you are still there
sudo iptables -A INPUT -p udp --dport 161 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 161 -j DROP

# Windows
New-NetFirewallRule -DisplayName "SNMP 161" -Direction Inbound -Protocol UDP -LocalPort 161 -RemoteAddress 10.0.0.0/8 -Action Allow

10.0.0.0/8 stands in for a private range — substitute your own. Note that a firewall rule does not undo a service bound to 0.0.0.0; it only stops packets reaching it, and a misconfigured or disabled firewall then exposes it immediately.

Quick reference

Port161
ProtocolUDP
ServiceSNMP
RangeWell-known (0–1023) — binding requires root on Unix

Frequently asked questions

What is port 161 used for?

Network device monitoring and management.

Is it safe to open port 161?

SNMP v1 and v2c authenticate with a community string sent in clear text, and "public" is still a common default. Use v3, or firewall it to the monitoring host.

How do I check if port 161 is open?

Locally, sudo lsof -i :161 on macOS or Linux, or netstat -ano | findstr :161 on Windows. From outside, nc -zv host 161 tells you whether anything answers.

Why do I get "address already in use" on port 161?

Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :161 and stop it, or configure your application to use a different port.

Can I change the port this service uses?

Almost always yes, in the service's configuration. Moving off a default port reduces automated scan noise, but it is obfuscation rather than security — a real attacker scans all 65,535.

Other common ports

All port numbers