To troubleshoot an NFS mounting problem (NOT in order!) :
I suggest running this on the server against the server, on the server against the client, on the client against the client, and on the client against the server - then compare the results. The runs against the client should be the same, and the runs against the server should be the same. If something is getting blocked over the network that isn't blocked via localhost, then you can be pretty assured that there's a firewall or something (network problem?) blocking some traffic.
You can expect the server to have greater RPC service requirements than the client. The client, if it is also an NFS server, may have the same RPC services registered, but usually NFS will actually use a proper subset of the RPC services on an NFS server (may even be a set of size 0 :).
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100021 1 udp 32775 nlockmgr
100021 3 udp 32775 nlockmgr
100021 4 udp 32775 nlockmgr
100021 1 tcp 32768 nlockmgr
100021 3 tcp 32768 nlockmgr
100021 4 tcp 32768 nlockmgr
100024 1 udp 32776 status
100024 1 tcp 32769 status
100011 1 udp 671 rquotad
100011 2 udp 671 rquotad
100011 1 tcp 690 rquotad
100011 2 tcp 690 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100005 1 udp 693 mountd
100005 1 tcp 708 mountd
100005 2 udp 693 mountd
100005 2 tcp 708 mountd
100005 3 udp 693 mountd
100005 3 tcp 708 mountd
(the numbers in the left column are more significant than the names in
the right column)
From there, you can get probably to the daemon names using netstat -ap and/or lsof.
Make sure that the actual daemon names sound NFS-related; sometimes a non-RPC program will steal a port that rpcbind/portmap thought it could allocate - but couldn't.
Alternatively, you can just run my rpc-health script - but note that it won't detect missing services, only services that are registered but not responding to a minimal test.
There are similar bitmasks for the RPC, NLM (i.e. lockd) and nfsd subsystems in include/linux/sunrpc/debug.h, include/linux/lockd/debug.h and include/linux/nfsd/debug.h. These bitmasks act on /proc/sys/sunrpc/rpc_debug, /proc/sys/sunrpc/nlm_debug and /proc/sys/sunrpc/nfsd_debug respectively.
Note as I said earlier, though, this is really designed for debugging purposes. There are no plans to convert it into an administrative tool.
You can e-mail the author with questions or comments: