Port 111 · RPCbind / portmapper

All network ports
Network services · Well-known111/tcp/udp

Port / TCP/UDP

111RPCbind / portmapper

RPCbind tells clients which dynamic port an ONC RPC service is on, and is a fixture on NFS and other Unix service hosts.

If it is internet-facing: Finding 111 open to the internet is a finding in its own right — it warrants an explanation, not just a rule.

Exposure

Trusted network only

Transport

Cleartext

Risk if public

High

Exposure verdict

ReachTrusted network only

Port 111 belongs on a trusted internal network. If a perimeter scan finds it answering, treat that as a firewall defect rather than a configuration preference.

TransportCleartext

Traffic crosses the network readable and modifiable. Anything sensitive on this port needs a tunnel, a VPN, or a different protocol.

RangeWell-known (0–1023)

Assigned by IANA through a review process. On Unix systems a process needs root or the CAP_NET_BIND_SERVICE capability to bind here, which is why containers so often remap these to a higher port.

FamilyNetwork services

Grouped with the other network services ports so a rule written for one can be checked against its neighbours.

What actually goes wrong

2 notes
  • It publishes a directory of every RPC service on the host, which is reconnaissance handed over on request.
  • Exposed portmappers have been used as UDP amplification reflectors.

Recommended firewall rule

Allow only from 10.0.0.0/8, drop the rest

Swap in the CIDR your administrators or application tier actually come from — the point is that the default answer is no.

ufw

sudo ufw allow from 10.0.0.0/8 to any port 111 proto tcp
sudo ufw allow from 10.0.0.0/8 to any port 111 proto udp

iptables

sudo iptables -A INPUT -p tcp -s 10.0.0.0/8 --dport 111 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 111 -j DROP
sudo iptables -A INPUT -p udp -s 10.0.0.0/8 --dport 111 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 111 -j DROP

If you do need it open to everyone

sudo ufw allow 111/tcp
sudo ufw allow 111/udp

Write down why. An unexplained allow rule outlives the person who added it, and the next reviewer has no way to tell a deliberate exception from an accident.

Check what is really there

Listening locally

sudo ss -tulpn 'sport = :111'

The bind address is the answer that matters: 127.0.0.1 is local-only, 0.0.0.0 and :: mean every interface.

Listening (macOS)

sudo lsof -nP -iTCP:111 -sTCP:LISTEN

macOS ships lsof rather than ss; this names the owning process and user.

From outside

nmap -sSUV -Pn -p 111 <host>

A version probe confirms whether RPCbind / portmapper is actually what answers, rather than trusting the number. Only scan hosts you are authorised to test.

Reachability

nc -vz <host> 111

The quick yes/no when you only need to know whether a path exists through the firewall.

Nearby and related ports

8
ProtocolTCP/UDP
Rangewell-known
Transportcleartext
Exposureprivate