この記事の位置づけ
Ubuntu 22.04 で NFS サーバーを構築する記事です。NFSv4 を前提に、共有ディレクトリ、exports、サービス反映、クライアントから見える状態までを確認します。
NFS サーバーの位置づけ
NFS は Linux / UNIX 系の環境でよく使われるネットワークファイル共有です。Samba が Windows 互換のファイル共有を意識するのに対し、NFS は Linux サーバー同士の共有や、検証環境、仮想化基盤の補助ストレージなどで扱いやすい仕組みです。
この記事では NFS サーバー側を扱います。クライアント側の mount や fstab は別記事に分け、サーバーが何をどの範囲へ公開するのかに集中します。
インストールする
NFS サーバーに必要な nfs-kernel-server をインストールします。
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt -y install nfs-kernel-server共有ディレクトリを作成する
共有するディレクトリを作成します。ここでは例として /srv/nfs/share を使います。実際の運用では、データ配置、バックアップ、権限設計に合わせてパスを決めます。
sudo mkdir -p /srv/nfs/share
sudo chown nobody:nogroup /srv/nfs/share
sudo chmod 0775 /srv/nfs/share/etc/exports を設定する
NFS で公開するディレクトリと、許可するクライアントネットワークを /etc/exports に記述します。以下は 192.0.2.0/24 向けの例です。自分の管理ネットワークに置き換えてください。
sudo tee /etc/exports <<'EOF'
/srv/nfs/share 192.0.2.0/24(rw,sync,no_subtree_check)
EOFrw は読み書き許可、sync は同期書き込み、no_subtree_check はサブディレクトリ単位の検査を無効化する指定です。NFS はネットワーク越しにファイルシステムを見せるため、公開範囲を広くしすぎないことが重要です。
設定を反映する
exports を反映し、NFS サーバーを有効化します。反映後は公開状態を確認します。
sudo exportfs -rav
sudo systemctl enable --now nfs-server
sudo systemctl status nfs-server --no-pager
sudo exportfs -v到達性を確認する
NFS サーバー側で待ち受け状態を確認します。ファイアウォールを使っている場合は、クライアントから NFS に到達できるように許可します。
sudo ss -lntup | grep -E ':(111|2049)'
showmount -e 127.0.0.1設計上の注意
- NFS の公開先は管理ネットワークや特定クライアントに限定する。
- ユーザー ID / グループ ID の対応関係を意識する。
- 重要データを置く場合はバックアップと権限設計を別途考える。
- 起動時の依存関係はクライアント側の fstab / systemd mount と合わせて確認する。
NFS サーバーで注意すること
NFS は簡単に共有ディレクトリを公開できますが、認証や暗号化を NFS 単体に期待しすぎない方が安全です。公開先ネットワーク、export オプション、UID / GID の一致、root squash の扱いを明確にします。
複数サーバーで使う共有ストレージとして扱う場合は、バックアップ、排他制御、障害時の再マウントも含めて設計します。
次に読む記事
参考書籍
ストーリーで覚える Linux CLI 入門
Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。


