NFS設定 · 2 min read · Dec 06, 2025

CentOS 6.3でのNFSサーバーとクライアントの設定

このガイドでは、CentOS 6.3でNFSサーバーとNFSクライアントを設定する方法を説明します。NFSはNetwork File Systemの略で、NFSを通じてクライアントはNFSサーバー上のリモート共有にアクセス(読み取り、書き込み)でき、まるでローカルハードディスク上にあるかのように扱えます。

1 予備ノート

ここでは2つのCentOSシステムを使用しています:

  • NFSサーバー: server.example.com, IPアドレス: 192.168.0.100
  • NFSクライアント: client.example.com, IPアドレス: 192.168.0.101

2 NFSのインストール

サーバー:

NFSサーバーで次のコマンドを実行します:

yum install nfs-utils nfs-utils-lib

次に、NFSサーバーのシステム起動リンクを作成し、起動します:

chkconfig --levels 235 nfs on   
/etc/init.d/nfs start

クライアント:

クライアントでは、次のようにNFSをインストールできます(これは実際にはサーバーと同じです):

yum install nfs-utils nfs-utils-lib

3 サーバー上のディレクトリのエクスポート

サーバー:

クライアントに/homeおよび/var/nfsディレクトリをアクセス可能にしたいので、これらをサーバーで「エクスポート」する必要があります。

クライアントがNFS共有にアクセスするとき、通常はユーザーnobodyとして行われます。通常、/homeディレクトリはnobodyによって所有されていません(その所有権をnobodyに変更することはお勧めしません!)、そして私たちは/homeで読み取りと書き込みを行いたいので、NFSにアクセスをrootとして行うように指示します(もし私たちの/home共有が読み取り専用であれば、これは必要ありません)。/var/nfsディレクトリは存在しないので、作成してその所有権を変更できます。私のテストでは、ユーザーとグループnobodyは両方とも私のCentOSテストシステム(サーバーとクライアント)でID 99を持っていました。NFSクライアントから/var/nfsに書き込もうとしたとき、Permission deniedエラーが発生したので、chmod 777 /var/nfsを実行して誰でもそのディレクトリに書き込めるようにしました。その後、クライアントから/var/nfsに書き込むことができ、クライアントで/var/nfsに書き込まれたファイルはユーザーとグループnobodyによって所有されているように見えましたが、サーバーでは(存在しない)ユーザーとグループID 65534によって所有されていました。そこで、サーバー上の/var/nfsの所有権をユーザー/グループ65534に変更し、/var/nfsのパーミッションを755に戻しました。これで、クライアントは/var/nfsに書き込むことができるようになりました:

mkdir /var/nfs  
chown 65534:65534 /var/nfs  
chmod 755 /var/nfs

次に、/etc/exportsを修正する必要があります。ここでNFS共有を「エクスポート」します。/homeと/var/nfsをNFS共有として指定し、NFSに/homeへのアクセスをrootとして行うように指示します(/etc/exportsの詳細、フォーマット、利用可能なオプションについては、次を参照してください):

man 5 exports
vi /etc/exports

| /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |

(no_root_squashオプションにより、/homeはrootとしてアクセスされます。)

/etc/exportsを変更するたびに、次を実行して変更を有効にする必要があります:

exportfs -a

4 クライアントでのNFS共有のマウント

クライアント:

まず、NFS共有をマウントしたいディレクトリを作成します。例:

mkdir -p /mnt/nfs/home  
mkdir -p /mnt/nfs/var/nfs

その後、次のようにマウントできます:

mount 192.168.0.100:/home /mnt/nfs/home  
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

次のコマンドの出力で、2つのNFS共有が表示されるはずです:

df -h
[root@client ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg_server2-LogVol00  
                      9.7G  1.7G  7.5G  18% /  
tmpfs                 499M     0  499M   0% /dev/shm  
/dev/sda1            504M   39M  440M   9% /boot  
192.168.0.100:/home   9.7G  1.7G  7.5G  19% /mnt/nfs/home  
192.168.0.100:/var/nfs  
                      9.7G  1.7G  7.5G  19% /mnt/nfs/var/nfs  
[root@client ~]#

mount
[root@client ~]# mount  
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
tmpfs on /dev/shm type tmpfs (rw)  
/dev/sda1 on /boot type ext4 (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

5 テスト

クライアントでは、NFS共有にテストファイルを作成してみることができます:

クライアント:

touch /mnt/nfs/home/test.txt  
touch /mnt/nfs/var/nfs/test.txt

次に、サーバーに移動して、両方のテストファイルが見えるか確認します:

サーバー:

ls -l /home/
[root@server ~]# ls -l /home/  
total 0  
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt  
[root@server ~]#
ls -l /var/nfs
[root@server ~]# ls -l /var/nfs  
total 0  
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt  
[root@server ~]#

(テストファイルの所有権が異なることに注意してください:/home NFS共有はrootとしてアクセスされるため、/home/test.txtはrootによって所有されています。/var/nfs共有はnobody/65534としてアクセスされるため、/var/nfs/test.txtは65534によって所有されています。)

6 ブート時のNFS共有のマウント

クライアントでNFS共有を手動でマウントする代わりに、/etc/fstabを修正して、クライアントがブートするときにNFS共有が自動的にマウントされるようにすることができます。

クライアント:

/etc/fstabを開き、次の行を追加します:

vi /etc/fstab

| [...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |

rw,sync,hard,intrの代わりに、異なるマウントオプションを使用できます。利用可能なオプションについては、次を参照してください:

man nfs

修正した/etc/fstabが機能するかテストするには、クライアントを再起動します:

reboot

再起動後、次のコマンドの出力で2つのNFS共有が表示されるはずです:

df -h
[root@client ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg_server2-LogVol00  
                      9.7G  1.7G  7.5G  18% /  
tmpfs                 499M     0  499M   0% /dev/shm  
/dev/sda1            504M   39M  440M   9% /boot  
192.168.0.100:/home   9.7G  1.7G  7.5G  19% /mnt/nfs/home  
192.168.0.100:/var/nfs  
                      9.7G  1.7G  7.5G  19% /mnt/nfs/var/nfs  
[root@client ~]#

mount
[root@client ~]# mount  
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
tmpfs on /dev/shm type tmpfs (rw)  
/dev/sda1 on /boot type ext4 (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

7 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。