[Bug 212608] nfsd(8) listens on UDP port 2049, but it is reported incorrectly in sockstat(1) and lsof(8)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Sep 12 14:33:33 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212608

            Bug ID: 212608
           Summary: nfsd(8) listens on UDP port 2049, but it is reported
                    incorrectly in sockstat(1) and lsof(8)
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: woodsb02 at freebsd.org

When the NFS server is running, nfsd listens on TCP and UDP port 2049, but this
is incorrectly reported in both sockstat(1) and lsof(8).

$ pgrep -lf nfs
888 nfsd: server
886 nfsd: master

sockstat -l4p 2049
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     nfsd       886   5  tcp4   *:2049                *:*
?        ?          ?     ?  udp4   *:2049                *:*

$ netstat -4na
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 *.2049                 *.*                    LISTEN
udp4       0      0 *.2049                 *.*                    

$ lsof -i TCP:2049 -i UDP:2049
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nfsd    886 root    5u  IPv4 0xfffff8010cdaf830      0t0  TCP *:nfsd (LISTEN)
nfsd    886 root    6u  IPv6 0xfffff8010cdaf418      0t0  TCP *:nfsd (LISTEN)

Perceived problems with the above output:
1. sockstat output does not show user, command, PID, FD details for udp4:2049
2. lsof does not identify anything listening on UDP port 2049

It is quite disconcerting to see output from sockstat(1) that shows an unknown
process is listening on a port.

Note: netstat does not show state for UDP ports, so a missing "LISTEN" is not
perceived as a bug.


Steps to repeat:

NFS shares enabled in /etc/rc.conf, and /etc/exports or with ZFS exports as per
the handbook:
https://www.freebsd.org/doc/handbook/network-nfs.html

# service nfsd start
# service mountd reload
$ sockstat -l4p 2049
$ netstat -4na
# pkg install sysutils/lsof
$ lsof -i TCP:2049
$ lsof -i UDP:2049


Potentially relevant notes from manpage:
     -a      Specifies that nfsd should bind to the wildcard IP address.  This
             is the default if no -h options are given.  It may also be
             specified in addition to any -h options given.  Note that NFS/UDP
             does not operate properly when bound to the wildcard IP address
             whether you use -a or do not use -h.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list