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

Debian WheezyでのNFSサーバーとクライアントの設定

このガイドでは、Debian WheezyでNFSサーバーとNFSクライアントを設定する方法を説明します。NFSはNetwork File Systemの略で、NFSを通じてクライアントはNFSサーバー上のリモート共有にアクセス(読み取り、書き込み)でき、まるでローカルハードディスク上にあるかのように扱えます。このチュートリアルでは、ユーザーnobody/nogroupとしてファイルを保存し、ファイルシステムの権限を保持しないクライアントディレクトリのエクスポートと、ホスティングサーバーの設定に必要なファイルの権限と所有権を保持する/var/wwwディレクトリのエクスポートの2つの異なるNFSエクスポートを示します。

1 前提条件

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

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

2 NFSのインストール

サーバー:

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

apt-get install nfs-kernel-server nfs-common

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

クライアント:

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

apt-get install nfs-common

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

サーバー:

クライアントに/home/client1および/var/wwwディレクトリをアクセス可能にしたいと思います。/home/client1ディレクトリは標準モードで共有されているため、このディレクトリに書き込まれたすべてのファイルはユーザーnobodyおよびグループnogroupとして保存されます。/var/wwwディレクトリにはno_root_squashオプションを使用して、nfsサーバーにファイルの権限と所有権を保持するよう指示します。これは、ISPConfig 3で管理されているWebサーバーの/var/wwwディレクトリをエクスポートしたい場合に必要です。

まず、/home/client1ディレクトリを作成します。

mkdir /home/client1  
chown nobody:nogroup /home/client1  
chmod 755 /home/client1

/var/wwwディレクトリは、サーバー上に存在する可能性が高いです。存在しない場合は、作成します:

mkdir /var/www  
chown root:root /var/www  
chmod 755 /var/www

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

man 5 exports
vi /etc/exports
/home/client1           192.168.0.101(rw,sync,no_subtree_check)
/var/www        192.168.0.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

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

/etc/exportsの変更を適用するために、カーネルnfsサーバーを再起動します。

/etc/init.d/nfs-kernel-server restart

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

クライアント:

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

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

もし/var/wwwディレクトリがすでにサーバー上に存在する場合は、apacheを停止し、ディレクトリの名前を変更し、新しい空のディレクトリをマウントポイントとして作成します。

/etc/init.d/apache2 stop  
mv /var/www /var/www_bak  
mkdir -p /var/www

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

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

これで、次のコマンドの出力に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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                      9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

5 テスト

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

クライアント:

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

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

サーバー:

ls -l /home/client1/
[root@server ~]# ls -l /home/client1  
total 0  
-rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt  
[root@server ~]#
ls -l /var/nfs
[root@server ~]# ls -l /var/www  
total 0  
-rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt  
[root@server ~]#

(テストファイルの所有権が異なることに注意してください:/home/client1 NFS共有はnobody/nogroupとしてアクセスされ、nobody/nogroupが所有しています;/var/www共有はrootとしてアクセスされるため、/var/www/test.txtはユーザーおよびグループrootが所有しています。)

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

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

クライアント:

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

vi /etc/fstab
[...]  
192.168.0.100:/home/client1  /mnt/nfs/home/client1   nfs      rw,sync,hard,intr  0     0  
192.168.0.100:/var/www  /var/www   nfs      rw,sync,hard,intr  0     0

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

man nfs

修正した/etc/fstabが機能するかテストするために、共有をアンマウントし、mount -aを実行します:

umount /mnt/nfs/home/client1  
umount /var/www  
mount -a

これで、次のコマンドの出力に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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                      9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

7 クレジット

このチュートリアルは、Falko TimmeのCentos NFSサーバーチュートリアルに基づいています。

8 リンク

Share: X/Twitter LinkedIn

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

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