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: