Toolman 100% local

Port 2049 — NFS

TCP/UDP registered

What runs on port 2049

Network File System — Unix file sharing.

NFS, network file sharing on Unix. Traditional NFS trusts the client to report which user is making a request, so a machine you do not control that can reach this port can claim to be any user on the exported filesystem. Modern versions can use Kerberos, but the default in most deployments is still the trusting model, which is why NFS exports belong on a private network with explicit host restrictions.

Security considerations

Traditional NFS trusts client-supplied user IDs. Use NFSv4 with Kerberos, or keep it on a trusted network.

Checking whether something is listening

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

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

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

Freeing the port

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

Should this port be open to the internet?

No. Port 2049 should never be reachable from a public address. Bind it to localhost or a private network, and reach it through a VPN or bastion host if remote access is genuinely needed. Internet-wide scanners find newly exposed instances of this service within minutes.

Opening or blocking port 2049

There is no blanket-allow rule on this page, because there is no case for one. NFS on port 2049 should be reachable from named addresses or not at all, so what follows restricts rather than opens:

# ufw — Debian, Ubuntu
sudo ufw allow from 10.0.0.0/8 to any port 2049 proto tcp/udp
sudo ufw deny 2049/tcp/udp                    # everything else

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

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

# Windows
New-NetFirewallRule -DisplayName "NFS 2049" -Direction Inbound -Protocol TCP/UDP -LocalPort 2049 -RemoteAddress 10.0.0.0/8 -Action Allow

Change 10.0.0.0/8 to whatever your private range actually is. A firewall rule is the second line: the first is binding the service to a private interface, because a service that only listens on 127.0.0.1 cannot be reached however the firewall is configured.

Quick reference

Port2049
ProtocolTCP/UDP
ServiceNFS
RangeRegistered (1024–49151) — any user process may bind

Frequently asked questions

What is port 2049 used for?

Network File System — Unix file sharing.

Is it safe to open port 2049?

Traditional NFS trusts client-supplied user IDs. Use NFSv4 with Kerberos, or keep it on a trusted network.

How do I check if port 2049 is open?

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

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

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