I'm using Mac OS High Sierra 10.13, and I'm facing some issues sharing a folder through NFS.
The configuration:
Built-in firewall is disabled and there is no third party firewall installed.
I made sure the nfs service is enabled:
$ sudo nfsd enable
The nfsd service is already enabled.
I made sure the nfs service is running:
$ sudo nfsd start
The nfsd service is already running.
I checked with nmap to see ports being listened to:
$ nmap localhost
Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-17 21:53 CEST Nmap scan report for localhost (127.0.0.1) Host is up (0.00034s latency). Other addresses for localhost (not scanned): ::1 10.101.97.98 Not shown: 995 filtered ports PORT STATE SERVICE 80/tcp open http 111/tcp open rpcbind 1021/tcp open exp1 1023/tcp open netvenuechat 2049/tcp open nfs Nmap done: 1 IP address (1 host up) scanned in 4.34 seconds
rpcinfo
$ rpcinfo -p
program vers proto port 100000 2 udp 111 rpcbind 100000 3 udp 111 rpcbind 100000 4 udp 111 rpcbind 100000 2 tcp 111 rpcbind 100000 3 tcp 111 rpcbind 100000 4 tcp 111 rpcbind 100024 1 udp 612 status 100024 1 tcp 1021 status 100021 0 udp 843 nlockmgr 100021 1 udp 843 nlockmgr 100021 3 udp 843 nlockmgr 100021 4 udp 843 nlockmgr 100021 0 tcp 1017 nlockmgr 100021 1 tcp 1017 nlockmgr 100021 3 tcp 1017 nlockmgr 100021 4 tcp 1017 nlockmgr
Test connection to nfs
$ telnet localhost 2049
Trying ::1... Connected to localhost. Escape character is '^]'.
Create folder to be shared
$ mkdir -p ~/tmp/shared-test $ touch ~/tmp/shared-test/works.txt
Add it to /etc/exports
$ sudo echo "/Users/user/tmp/shared-test -mapall=-2:-2 -ro" >> /etc/exports $ sudo chmod 640 /etc/exports
Make sure /etc/exports is correct
$ sudo nfsd checkexports
The issue:
$ showmount -e
showmount: Cannot retrieve info from host: localhost: RPC failed:: RPC: Unable to send; errno = Bad file descriptor
$ syslog
Oct 17 21:56:28 Estebans-MacBook-Pro-2 rpc.lockd[215] : can't contact statd, 100024 RPC: Timed out --- last message repeated 2 times --- Oct 17 21:58:29 Estebans-MacBook-Pro-2 syslogd[43] : ASL Sender Statistics Oct 17 21:59:31 Estebans-MacBook-Pro-2 rpc.lockd[215] : can't contact statd, 100024 RPC: Timed out Oct 17 22:00:19 Estebans-MacBook-Pro-2 login[1328] : USER_PROCESS: 1328 ttys002 Oct 17 22:00:33 Estebans-MacBook-Pro-2 rpc.lockd[215] : can't contact statd, 100024 RPC: Timed out
I can see rpc.lockd[215] : can't contact statd, 100024 RPC: Timed out all over, as a recurrent log.
$ showmount 127.0.0.1
showmount: Cannot retrieve info from host: 127.0.0.1: RPC: Program not registered
launchctl
instead? In macOS Sierra (haven't installed High Sierra yet) I first created/etc/exports
with contents:/private/tmp -ro
, then I ran:sudo launchctl start com.apple.nfsd
and checked the RPC information withrpcinfo -p
until all daemons were up and running: rpcbind, status (which is in fact rpc.statd), nlockmgr, nfs, mountd and rquotad. It needed a couple of seconds. Then I could mount/private/tmp
with:sudo mount -t nfs localhost:/private/tmp /mnt/tmp/
without a problem.rpcinfo -p
I only get rpcbind, rpcbind, nlockmgr. I do not see nfs, neither mountd nor rquotad. What should be expected?rpcinfo
's output. You probably need to disable nfsd withsudo nfsd disable
(to prevent any conflicts withlaunchctl
) and restart your computer, then start nfsd withlaunchctl
. I'd recommend that you comment out any existing entries in/etc/exports
, add a simple export like/private/tmp -ro
for troubleshooting purposes and test connecting tolocalhost
.sudo nfsd disable
butrpcinfo -p
was showing the same until I restarted the computer. Once I restarted,rpcinfo -p
showsrpcinfo: can't contact portmapper: rpcinfo: RPC: Unable to send; errno = Broken pipe
. Although, after doingsudo launchctl start com.apple.nfsd
,rpcinfo -p
still showingrpcinfo: can't contact portmapper: rpcinfo: RPC: Unable to send; errno = Broken pipe
showmount -e 127.0.0.1
is because mountd is not launched. If I dosudo nfsd -P 1234 start
, that should launch mountd in port 1234, but I do not see it, neither inrpcinfo -p
nornmap localhost