Toolman 100% local

Port 67 — DHCP server

UDP well-known

What runs on port 67

Hands out IP addresses to clients on a local network.

The server half of DHCP. A client with no address broadcasts to 67, and the server answers to 68. Because it is broadcast-based, two DHCP servers on one segment will both answer and clients get whichever reply arrives first — the classic cause of intermittent, unexplainable network failures in small offices, usually created by someone plugging a home router into a corporate switch.

Security considerations

Two DHCP servers on one network cause address conflicts — a classic cause of "the internet is down" in small offices.

Checking whether something is listening

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

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

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

Freeing the port

# find the process, then stop it
sudo lsof -ti :67 | xargs kill        # Linux / macOS
netstat -ano | findstr :67            # 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 67

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 67 proto udp
sudo ufw allow 67/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=67 protocol=udp accept'
sudo firewall-cmd --reload

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

# Windows
New-NetFirewallRule -DisplayName "DHCP server 67" -Direction Inbound -Protocol UDP -LocalPort 67 -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

Port67
ProtocolUDP
ServiceDHCP server
RangeWell-known (0–1023) — binding requires root on Unix

Frequently asked questions

What is port 67 used for?

Hands out IP addresses to clients on a local network.

Is it safe to open port 67?

Two DHCP servers on one network cause address conflicts — a classic cause of "the internet is down" in small offices.

How do I check if port 67 is open?

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

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

Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :67 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