NFS設定 · 4 min read · Dec 08, 2025

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

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

1 予備ノート

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

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

このチュートリアルでは、設定ファイルを編集するためにnanoエディタを使用します。Nanoは次のようにインストールできます。

yum -y install nano

2 ファイアウォールの設定

ファイアウォールをインストールすることをお勧めします。まだfirewalldがインストールされていない場合は、次のコマンドでインストールしてください:

yum -y install firewalld

ファイアウォールを起動し、ブート時に自動的に起動するように設定します。

systemctl start firewalld.service  
systemctl enable firewalld.service

次に、SSHとNFSポートを開いて、管理目的でSSHを介してサーバーに接続できるようにし、NFSクライアントからNFSに接続できるようにします。

firewall-cmd --permanent --zone=public --add-service=ssh  
firewall-cmd --permanent --zone=public --add-service=nfs  
firewall-cmd --reload

3 NFSのインストール

サーバー:

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

yum -y install nfs-utils

次に、nfsサーバーサービスを有効にして起動します。

systemctl enable nfs-server.service  
systemctl start nfs-server.service

クライアント:

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

yum install nfs-utils

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

サーバー:

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

クライアントがNFS共有にアクセスするとき、通常はユーザーnfsnobodyとして行われます。通常、/homeディレクトリはnfsnobodyが所有していないため(その所有権をnfsnobodyに変更することはお勧めしません!)、/homeで読み取りおよび書き込みを行いたいため、NFSに対してアクセスをrootとして行うように指示します(/home共有が読み取り専用の場合、これは必要ありません)。/var/nfsディレクトリは存在しないため、作成してその所有権をユーザーおよびグループnfsnobodyに変更できます。

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

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

man 5 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.101(rw,sync,no_subtree_check)

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

/etc/exportsを修正するたびに、次を実行する必要があります:

exportfs -a

その後、変更を有効にします。

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

クライアント:

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

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

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

mount 192.168.1.100:/home /mnt/nfs/home  
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

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

df -h
[root@client ~]# df -h  
Filesystem Size Used Avail Use% Mounted on  
/dev/mapper/centos-root 28G 1.7G 26G 7% /  
devtmpfs 909M 0 909M 0% /dev  
tmpfs 919M 0 919M 0% /dev/shm  
tmpfs 919M 8.6M 910M 1% /run  
tmpfs 919M 0 919M 0% /sys/fs/cgroup  
/dev/sda1 497M 208M 290M 42% /boot  
tmpfs 184M 0 184M 0% /run/user/0  
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home  
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

mount
[root@client ~]# mount  
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)  
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)  
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)  
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)  
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)  
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)  
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)  
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)  
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)  
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)  
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
configfs on /sys/kernel/config type configfs (rw,relatime)  
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)  
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)  
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)  
debugfs on /sys/kernel/debug type debugfs (rw,relatime)  
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)  
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)  
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)  
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 テスト

クライアントで、NFS共有にテストファイルを作成してみてください:

クライアント:

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

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

サーバー:

ls -l /home/
[root@server1 ~]# ls -l /home/  
total 0  
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator  
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[root@server1 ~]# ls -l /var/nfs  
total 0  
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

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

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

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

クライアント:

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

nano /etc/fstab
[...]  
192.168.1.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0  
192.168.1.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/centos-root 28G 1.7G 26G 7% /  
devtmpfs 909M 0 909M 0% /dev  
tmpfs 919M 0 919M 0% /dev/shm  
tmpfs 919M 8.6M 910M 1% /run  
tmpfs 919M 0 919M 0% /sys/fs/cgroup  
/dev/sda1 497M 208M 290M 42% /boot  
tmpfs 184M 0 184M 0% /run/user/0  
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home  
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

mount
[root@client ~]# mount  
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)  
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)  
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)  
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)  
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)  
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)  
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)  
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)  
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)  
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)  
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
configfs on /sys/kernel/config type configfs (rw,relatime)  
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)  
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)  
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)  
debugfs on /sys/kernel/debug type debugfs (rw,relatime)  
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)  
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)  
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)  
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8 リンク

Share: X/Twitter LinkedIn

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

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