LinuxでNFSサーバーを構築する方法|exports設定・showmount・マウント手順と実践例

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > LinuxでNFSサーバーを構築する方法|exports設定・showmount・マウント手順と実践例
「ファイルサーバーをLinuxで立てたいが、NFSの設定ファイルをどう書けばいいか分からない」
「showmountで確認しようとしたらエラーが返ってくる」

Linux環境のファイル共有手段として、NFSは今もサーバー間でよく使われるプロトコルです。SambaほどWindowsとの相互運用性はありませんが、Linux同士であれば設定がシンプルで、性能面でも扱いやすいのが特徴です。

この記事では、RHEL 9 / Rocky Linux 9 / AlmaLinux 9 を対象に、NFSサーバーの構築・設定から、クライアント側のマウント手順、よくあるトラブルの対処まで、一通りの流れを解説します。

この記事のポイント

・NFSサーバーは nfs-utils インストール後、/etc/exports を書いて nfs-server を起動する
・/etc/exports の書式は「ディレクトリ クライアント(オプション)」の形式が基本
・firewalld でポートを開放し、exportfs -r でエクスポートを反映する
・クライアント側は mount -t nfs または /etc/fstab で永続マウントが可能


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

NFSとは何か|Linux間ファイル共有の定番プロトコル

NFS(Network File System)は、ネットワーク越しにファイルシステムをマウントするプロトコルです。Sunが1984年に開発し、Linux/Unix環境では事実上の標準として長年使われています。

現在の主流はNFS v4(NFSv4)で、KerberosによるRPCセキュリティ、ACL、デリゲーション機能などが追加されています。RHEL 9ではデフォルトでNFSv4が使われます。

NFSとSambaの使い分け:
NFS:Linux同士のファイル共有。Samba より設定がシンプルで、パフォーマンスも良い傾向がある
Samba(CIFS):WindowsクライアントとLinuxサーバーを繋ぐ場合はこちらが向いている

動作確認環境:Rocky Linux 9.4 / AlmaLinux 9.4 / RHEL 9.4(カーネル 5.14.0)

NFSサーバーのセットアップ手順

1. nfs-utils をインストールする

まず nfs-utils パッケージをインストールします。RHEL 9 系では標準リポジトリに含まれているので、dnf 1行で完了します。

# パッケージをインストール dnf install -y nfs-utils # バージョン確認 rpm -q nfs-utils # nfs-utils-2.5.4-26.el9.x86_64

2. nfs-server サービスを起動・自動起動設定する

# サービス起動 systemctl start nfs-server # 自動起動設定 systemctl enable nfs-server # 状態確認 systemctl status nfs-server

起動後、次のように表示されれば正常です。

* nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; preset: disabled) Active: active (running) since Fri 2026-05-29 10:12:07 JST; 3min ago

3. 共有ディレクトリを作成する

共有するディレクトリを作成します。所有者・パーミッションは用途に合わせて設定してください。

# 共有用ディレクトリを作成 mkdir -p /nfs/shared # パーミッションを設定(クライアントから書き込むなら 777 または適切なグループ設定) chmod 755 /nfs/shared # 所有者を確認 ls -la /nfs/

/etc/exports の書き方

NFSサーバーの公開設定は /etc/exports に記述します。1行が1つのエクスポートエントリになります。

4. /etc/exports の基本書式

# 書式 # ディレクトリ クライアント(オプション) クライアント(オプション) ... # 例1: 192.168.10.0/24 サブネットに読み書き許可 /nfs/shared 192.168.10.0/24(rw,sync,no_subtree_check) # 例2: 特定ホスト1台に読み取り専用 /nfs/data 192.168.10.50(ro,sync,no_subtree_check) # 例3: すべてのホストに読み取り専用(テスト用途のみ推奨) /nfs/pub *(ro,sync,no_subtree_check)

主要なオプション:
rw:読み書き許可(read-write)
ro:読み取り専用(read-only)
sync:書き込みを即座にディスクに反映(データ損失リスクを減らす)。本番は sync 推奨
async:バッファリングして書き込み。高速だがクラッシュ時データが失われる可能性あり
no_subtree_check:サブツリーチェックを無効化。パフォーマンス向上、かつ一般的に安全
no_root_squash:クライアントの root をサーバー側 root として扱う。通常は使わない
root_squash:クライアントの root を nobody にマップ(デフォルト)
all_squash:すべてのユーザーを nobody にマップ

本番環境では rw,sync,no_subtree_check が標準的な組み合わせです。

5. exportfs コマンドでエクスポートを反映する

/etc/exports を編集した後は、exportfs コマンドで反映します。nfs-server を再起動する必要はありません。

# /etc/exports を再読み込みして反映 exportfs -r # 現在のエクスポート一覧を表示 exportfs -v

exportfs -v の出力例:

/nfs/shared 192.168.10.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

`wdelay`(書き込み遅延最適化)、`hide`(サブマウント非公開)などが自動付与されているのが分かります。

firewalld でポートを開放する

6. NFS に必要なサービスを開放する

firewalld が有効な環境では、NFS・mountd・rpc-bind の3サービスを許可する必要があります。

# NFS関連サービスを許可 firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=rpc-bind # 設定を反映 firewall-cmd --reload # 確認 firewall-cmd --list-services # cockpit dhcpv6-client mountd nfs rpc-bind ssh

NFSv4のみ使うなら nfs だけで足りますが、NFSv3 互換が必要な場合は mountd と rpc-bind も必須です。

NFSクライアントからマウントする方法

7. クライアント側に nfs-utils をインストールする

クライアント側にも nfs-utils が必要です。

# クライアント側でインストール dnf install -y nfs-utils

8. showmount でサーバーの公開一覧を確認する

マウントする前に、サーバー側が何を公開しているか showmount で確認できます。

# NFSサーバー(192.168.10.10)の公開一覧を表示 showmount -e 192.168.10.10

出力例:

Export list for 192.168.10.10: /nfs/shared 192.168.10.0/24

ここに表示されない場合は、サーバー側の firewalld 設定やエクスポート設定を見直してください。

9. mount コマンドで一時マウントする

# マウントポイントを作成 mkdir -p /mnt/nfsshared # NFSマウント(NFSv4を明示する場合) mount -t nfs -o vers=4 192.168.10.10:/nfs/shared /mnt/nfsshared # マウント確認 df -h /mnt/nfsshared # Filesystem Size Used Avail Use% Mounted on # 192.168.10.10:/nfs/shared 50G 2.3G 48G 5% /mnt/nfsshared

10. /etc/fstab に書いて起動時に自動マウントする

恒久的に使うなら /etc/fstab に登録します。

# /etc/fstab に追記(末尾に1行) # 書式:デバイス マウントポイント ファイルシステム オプション dump pass 192.168.10.10:/nfs/shared /mnt/nfsshared nfs defaults,vers=4,_netdev 0 0

_netdev は「ネットワーク起動後にマウントする」という意味のオプションです。NFSなど、ネットワーク依存のマウントには必ず付けてください。付け忘れると、ネットワーク未起動の状態でマウントを試みてブート時にハングすることがあります。

設定後にテストする場合は:

# fstab から読み込んでマウント mount -a # マウント確認 mount | grep nfsshared

NFSv4 のユーザーIDマッピング(idmapd)

NFSv4では、UID/GIDの代わりにユーザー名(user@domain形式)でファイル所有者を識別します。この変換を行うのが nfs-idmapd サービスです。

サーバー・クライアント双方で /etc/idmapd.conf のドメイン名を一致させないと、ファイル所有者が nobody と表示されてしまいます。

# サーバー・クライアント両側で /etc/idmapd.conf を確認 cat /etc/idmapd.conf | grep Domain # Domain = localdomain # 変更する場合(サーバー・クライアント両側で同じ値にする) # vi /etc/idmapd.conf # [General] # Domain = example.local # サービスを再起動して反映 systemctl restart nfs-idmapd

トラブルシュート|よくあるエラーと対処法

「showmount: clnt_create: RPC: Port mapper failure - Unable to receive」

クライアントからサーバーの rpcbind(ポートマッパー)に到達できていません。

確認ポイント:
サーバー側:systemctl status rpcbind で起動しているか確認。停止していれば systemctl start rpcbind
サーバー側 firewalld:firewall-cmd --list-services で rpc-bind が含まれているか確認
ネットワーク疎通:クライアントから ping 192.168.10.10 でサーバーに到達できるか確認

「mount.nfs: access denied by server while mounting」

/etc/exports でクライアントIPが許可されていません。

# サーバー側で現在のエクスポート設定を確認 exportfs -v # /etc/exports の設定がクライアントIPを含んでいるか確認 cat /etc/exports # 変更後は必ず exportfs -r で反映 exportfs -r

「mount.nfs: No route to host」

ネットワーク経路またはファイアウォールの問題です。

ping でL3疎通を確認
nc -zv 192.168.10.10 2049 でNFSポート(2049/tcp)の到達性を確認(参考記事: Linux ポート確認の全コマンド
・サーバー側の firewalld に nfs サービスが追加されているか確認

ファイル所有者が nobody になる

NFSv4のidmapd設定が不一致です。サーバー・クライアント双方の /etc/idmapd.conf の Domain 行が同じ値になっているか確認して、systemctl restart nfs-idmapd を両側で実行してください。

再起動後にマウントされない(ハング)

/etc/fstab_netdev オプションが付いていない可能性が高いです。NFSエントリのオプション欄を確認し、_netdev を追加してください。

NFSサーバー運用の実務Tips

エクスポート設定を確認するワンライナー

# 現在のエクスポート情報を詳細表示 exportfs -v # 特定のディレクトリのみ確認 exportfs -v | grep /nfs/shared

NFSの接続状況を確認する

# 現在接続しているNFSクライアントを表示(NFSv4はstatd不要のため一覧はnfsstat等で確認) nfsstat -s # NFSサーバーの統計を確認 nfsstat -c

パーミッション設計の注意点

NFS越しのファイルはUID/GIDで権限が判定されます。サーバーとクライアントで同じUID/GIDのユーザーが存在しないと、権限エラーが起きます。

複数台のサーバーで一貫したUID/GIDを維持するには、LDAP(OpenLDAP/SSSD)や FreeIPA を使ってユーザー管理を一元化するのが実務的な解決策です。

また、ファイルのパーミッション設定については mount コマンドの使い方 も合わせて参照してください。

本記事のまとめ

やりたいこと コマンド・設定
nfs-utils をインストール dnf install -y nfs-utils
NFSサーバーを起動・自動起動設定 systemctl enable --now nfs-server
エクスポート設定を反映 exportfs -r
エクスポート一覧を表示 exportfs -v
firewalldにNFSを許可 firewall-cmd --permanent --add-service=nfs && firewall-cmd --reload
サーバーの公開一覧を確認 showmount -e サーバーIP
NFSマウント(一時) mount -t nfs -o vers=4 サーバーIP:/パス /マウントポイント
NFSマウント(永続・fstab) サーバーIP:/パス /マウントポイント nfs defaults,vers=4,_netdev 0 0
UID/GIDドメイン設定確認 /etc/idmapd.conf の Domain 行
NFSは設定ファイルの書き方さえ覚えてしまえば、Linux間のファイル共有として非常に扱いやすいプロトコルです。本記事で紹介した /etc/exports の基本構文と、exportfs -r による反映、showmount -e による確認の3ステップを押さえておけば、現場でも問題なく運用できるはずです。

NFSの応用として、システム管理全般の知識を深めたい方は「mount コマンドの使い方」や「Linux ポート確認の全コマンド」もぜひ参照してください。

Linuxのファイルサーバー・ストレージ管理をさらに体系的に学ぶには、弊社が提供しているLinuxサーバー構築セミナーも参考にしてみてください。現役エンジニアが実機を使ってハンズオンで教える形式なので、コマンドだけでなく「なぜそう設定するのか」という背景まで短期間で身につけられます。

NFSの設定を覚えたら、次はサーバー構築の基礎を体系的に固めませんか?

NFSをはじめとするLinuxのサーバー設定は、手順を知っているだけでは不十分です。なぜそう設定するのかという背景まで理解してこそ、現場で応用が利く力がつきます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。