This guide explains how to set up an NFS server and an NFS client on CentOS 6.3. NFS stands for Network File System; through NFS, a client can access (read, write) a remote share on an NFS server as if it was on the local hard disk.
I do not issue any guarantee that this will work for you!
1 Preliminary Note
I'm using two CentOS systems here:
- NFS Server: server.example.com, IP address: 192.168.0.100
- NFS Client: client.example.com, IP address: 192.168.0.101
2 Installing NFS
On the NFS server we run:
Then we create the system startup links for the NFS server and start it:
On the client we can install NFS as follows (this is actually the same as on the server):
3 Exporting Directories On The Server
I'd like to make the directories /home and /var/nfs accessible to the client; therefore we must "export" them on the server.
When a client accesses an NFS share, this normally happens as the user nobody. Usually the /home directory isn't owned by nobody (and I don't recommend to change its ownership to nobody!), and because we want to read and write on /home, we tell NFS that accesses should be made as root (if our /home share was read-only, this wouldn't be necessary). The /var/nfs directory doesn't exist, so we can create it and change its ownership; in my tests the user and groupnobody both had the ID 99 on both my CentOS test systems (server and client); when I tried to write to /var/nfs from the NFS client, I got a Permission deniederror, so I did a chmod 777 /var/nfs so that everyone could write to that directory; writing to /var/nfs from the client worked then, and on the client the files written to /var/nfs appeared to be owned by the user and group nobody, but on the server they were owned by the (nonexistant) user and group with the ID65534; so I changed ownership of /var/nfs to the user/group 65534 on the server and changed permissions of /var/nfs back to 755, and voilà, the client was allowed to write to /var/nfs:
Now we must modify /etc/exports where we "export" our NFS shares. We specify /home and /var/nfs as NFS shares and tell NFS to make accesses to /home as root (to learn more about /etc/exports, its format and available options, take a look at
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check)
(The no_root_squash option makes that /home will be accessed as root.)
Whenever we modify /etc/exports, we must run
afterwards to make the changes effective.
4 Mounting The NFS Shares On The Client
First we create the directories where we want to mount the NFS shares, e.g.:
Afterwards, we can mount them as follows: