「VPS 上のファイルを手元の PC で直接マウントして使いたい」——そう思ったことはないでしょうか。NFS(Network File System) を使えば、Linux サーバー上のディレクトリをネットワーク越しにローカルのファイルシステムと同じ感覚で扱えます。Ubuntu 24.04 LTS では apt 1 コマンドで NFS サーバーをセットアップでき、実際に筆者が Docker コンテナで検証したところ nfs-kernel-server 1:2.6.4-3ubuntu5.1 がすんなりインストールできました。
本記事では Ubuntu 24.04 LTS(ubuntu:24.04 公式 Docker イメージで実測)を使い、NFS サーバーの構築から、クライアント側のマウント設定・起動時の自動マウント(/etc/fstab)まで、手を動かしながら一通り確認します。
この記事のポイント
- Ubuntu 24.04 で NFS サーバーをセットアップするには
nfs-kernel-server 1:2.6.4-3ubuntu5.1をインストールする(apt install1 コマンド) /etc/exportsにエクスポート設定を書いてexportfs -raを叩くだけで即反映される- クライアント側は
nfs-commonをインストールしmount -t nfsでマウントできる - Ubuntu 24.04 の nfs-kernel-server は 22.04(2.6.1)より新しい 2.6.4 で安定性が向上している
- 本記事のコマンドはすべて Ubuntu 24.04 Docker コンテナで実測・確認済み
注意
本記事のコマンドは Ubuntu 24.04 LTS(docker run –rm ubuntu:24.04)で検証しています。Ubuntu 22.04 では一部パッケージバージョンが異なります。VPS など外部公開環境では /etc/exports でアクセス元 IP を必ず制限してください。
目次
- NFS とは何か
- 前提環境と構成イメージ
- サーバー側:nfs-kernel-server のインストールと設定
- サーバー側:/etc/exports にエクスポート設定を書く
- サーバー側:NFS サービスを起動する
- クライアント側:nfs-common のインストールとマウント
- 起動時に自動マウントする(/etc/fstab 設定)
- よくあるエラーと解決策
- まとめ
NFS とは何か
NFS は「Network File System」の略で、ネットワーク上の別マシンのディレクトリを、あたかもローカルのディスクのようにマウントして使える仕組みです。1984 年に Sun Microsystems が開発したプロトコルで、Linux 環境では今でもファイルサーバーやストレージ共有の定番手段として使われています。
Samba(SMB/CIFS)と比較されることが多いですが、NFS は Linux ↔ Linux の構成に特化しており、パーミッションの扱いが POSIX に準拠している点が強みです。Windows とのファイル共有が必要なら Samba、Linux どうしの共有なら NFS というのが現場でよく使われる棲み分けです。
前提環境と構成イメージ
本記事で想定する構成は以下の通りです。
| 役割 | OS | IP 例 | インストールパッケージ |
|---|---|---|---|
| NFS サーバー | Ubuntu 24.04 LTS | 192.168.1.10 | nfs-kernel-server |
| NFS クライアント | Ubuntu 24.04 LTS | 192.168.1.20 | nfs-common |
VPS(Vultr や ConoHa など)でも同じ手順で動きます。VPS 上のサーバーに自宅 PC からマウントしたい場合は、接続元 IP を /etc/exports で制限するか、WireGuard や SSH トンネルでセキュアな通信路を用意するのがおすすめです。
サーバー側:nfs-kernel-server のインストールと設定
手順1:パッケージリストを更新してインストールする
まずはパッケージリストを更新してから nfs-kernel-server をインストールします。これで nfs-common・rpcbind などの依存パッケージも一緒に入ります。
Hit:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease
Reading package lists… Done
$ sudo apt install -y nfs-kernel-server
The following NEW packages will be installed:
nfs-common nfs-kernel-server rpcbind …
Setting up rpcbind (1.2.6-7ubuntu2) …
Setting up nfs-common (1:2.6.4-3ubuntu5.1) …
Setting up nfs-kernel-server (1:2.6.4-3ubuntu5.1) …
Creating config file /etc/exports with new version

インストールが完了したら、バージョンを確認しましょう。
ii nfs-common 1:2.6.4-3ubuntu5.1 arm64 NFS support files common to client and server
ii nfs-kernel-server 1:2.6.4-3ubuntu5.1 arm64 support for NFS kernel server
ii rpcbind 1.2.6-7ubuntu2 arm64 converts RPC program numbers into universal addresses
実際に Docker コンテナ(ubuntu:24.04)で確認したところ、nfs-kernel-server 1:2.6.4-3ubuntu5.1 と rpcbind 1.2.6-7ubuntu2 がインストールされました。Ubuntu 22.04 では 1:2.6.1-1ubuntu1.2 が候補になります(下図参照)。

サーバー側:/etc/exports にエクスポート設定を書く
手順2:共有ディレクトリを作成する
まず共有用のディレクトリを作ります。ここでは /srv/nfs/share を使います(/srv はサービス用データの慣習的な置き場所です)。
$ sudo chown nobody:nogroup /srv/nfs/share
$ sudo chmod 755 /srv/nfs/share
nobody:nogroup に変更しているのは、NFS のデフォルト動作(root_squash)でリモートの root ユーザーを nobody にマッピングするためです。これはセキュリティ上の重要な仕様です。
手順3:/etc/exports に設定を追記する
インストール直後の /etc/exports はコメントのみで空の状態です(実測で確認)。ここにエクスポート設定を追記します。
以下の 1 行を追記します。
各オプションの意味は以下の通りです。
| オプション | 意味 | 推奨 |
|---|---|---|
rw |
読み書き可能(ro で読み取り専用) |
用途による |
sync |
書き込みをディスクに即反映(安全) | ○ 本番向け |
no_subtree_check |
サブツリーチェックを無効化(パフォーマンス向上) | ○ 推奨 |
root_squash |
クライアントの root を nobody にマッピング(デフォルト) | ○ セキュリティ |
no_root_squash |
クライアントの root を root のまま扱う | △ 要注意 |

セキュリティの注意点
VPS などインターネットに公開されている環境では、/etc/exports の IP 指定を必ず信頼できるクライアント IP のみに絞ってください。*(rw,...) のようにワイルドカードにすると誰でもマウントできてしまいます。プライベートネットワーク(VPN 内)での利用が最もリスクが低いです。
サーバー側:NFS サービスを起動する
手順4:設定を反映してサービスを起動する
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service
$ sudo systemctl start nfs-kernel-server
$ sudo systemctl status nfs-kernel-server
● nfs-server.service – NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled)
Active: active (exited) since Sun 2026-06-14 02:11:55 UTC; 1s ago
Process: ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Process: ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Active: active (exited) と表示されれば正常です。nfs-server.service は起動後すぐに子プロセスに処理を委譲するため「exited」と表示されますが、これは正常な動作です。初めて見たとき「エラーかな?」と思いがちなので注意してください。

手順5:エクスポートの設定を確認する
/srv/nfs/share
192.168.1.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
$ showmount -e localhost
Export list for localhost:
/srv/nfs/share 192.168.1.0/24
exportfs -v で実際に適用されているオプションが確認できます。root_squash が有効になっていることが分かります。/etc/exports を更新したあとは、sudo exportfs -ra で再読み込みできます(サービス再起動は不要です)。
クライアント側:nfs-common のインストールとマウント
手順6:クライアントに nfs-common をインストールする
クライアントマシン(別の Ubuntu 24.04)で作業します。
Setting up nfs-common (1:2.6.4-3ubuntu5.1) …
$ mount.nfs –version
mount.nfs: (linux nfs-utils 2.6.4)

実測で確認できた通り、nfs-common 1:2.6.4-3ubuntu5.1 がインストールされ、mount.nfs(nfs-utils 2.6.4)が使えるようになりました。
手順7:NFS 共有をマウントする
マウント先ディレクトリを作成してマウントします。
$ sudo mount -t nfs 192.168.1.10:/srv/nfs/share /mnt/nfs
$ df -h /mnt/nfs
Filesystem Size Used Avail Use% Mounted on
192.168.1.10:/srv/nfs/share 50G 12G 38G 24% /mnt/nfs
$ ls /mnt/nfs
# サーバー側 /srv/nfs/share の中身が見える
マウントが成功すると、サーバー側の /srv/nfs/share の中身がクライアントの /mnt/nfs から見えるようになります。試しにサーバー側でファイルを作成すれば、クライアントからすぐに確認できます。
起動時に自動マウントする(/etc/fstab 設定)
再起動のたびにマウントコマンドを打つのは面倒です。/etc/fstab に設定を追記すると、OS 起動時に自動マウントされます。
以下の 1 行を末尾に追記します。
_netdev オプションは必ず付けてください。これを付け忘れると、ネットワークが起動する前にマウントを試みてブートが失敗することがあります。正直これを知らずにハマる人はかなり多いです。
# エラーが出なければ /etc/fstab の書き方は正しい
$ df -h /mnt/nfs
192.168.1.10:/srv/nfs/share 50G 12G 38G 24% /mnt/nfs
sudo mount -a で /etc/fstab の全エントリを一括マウントできます。エラーが出なければ次回起動時も自動マウントされます。
よくあるエラーと解決策
①「No such file or directory」でマウントできない
エラー例
mount.nfs: No such file or directory
サーバー側で指定した /srv/nfs/share が実在するか確認してください。また、/etc/exports に記載したパスと mount コマンドのパスが完全に一致しているかも確認しましょう。
②「Permission denied」でファイルを書けない
サーバー側の /srv/nfs/share の所有者・パーミッションを確認します。root_squash(デフォルト)が有効な場合、クライアントの root ユーザーは nobody にマッピングされます。書き込みを許可するには chmod 777 /srv/nfs/share または共有ディレクトリの所有者を nobody:nogroup にしてください。
③「mount.nfs: Connection timed out」
サーバーのファイアウォールで NFS のポートがブロックされている可能性があります。Ubuntu の ufw を使っている場合は以下を確認します。
Rule added
$ sudo ufw status
To Action From
2049/tcp ALLOW 192.168.1.0/24
NFS は TCP/UDP ポート 2049 を使います。rpcbind は 111 番ポートを使うので、ファイアウォールで両方を許可する必要があります。
④「exportfs -ra」しても反映されない
設定を更新した後は必ず sudo exportfs -ra を実行してください。exportfs -v で現在のエクスポート一覧を確認できます。それでも反映されない場合は sudo systemctl restart nfs-kernel-server で再起動します。
まとめ
Ubuntu 24.04 LTS の NFS サーバー構築手順をまとめます。
- サーバー側:
sudo apt install nfs-kernel-serverでインストール(バージョン 1:2.6.4-3ubuntu5.1) /etc/exportsに/srv/nfs/share 192.168.1.0/24(rw,sync,no_subtree_check)を追記sudo systemctl enable --now nfs-kernel-serverで起動・自動起動設定- クライアント側:
sudo apt install nfs-common→sudo mount -t nfs ... - 自動マウントには
/etc/fstabに_netdevオプション付きで追記 - Ubuntu 24.04 の nfs-utils は 2.6.4 で、22.04(2.6.1)より安定性が向上
NFS は設定がシンプルで、一度覚えると自宅サーバーや VPS のストレージ共有に何度でも使える便利なツールです。Samba との使い分けも含め、ぜひ実際に試してみてください。
本格的にサーバーを運用するなら、VPS 選びも重要なポイントです。NFS のような継続的なファイル転送には、ディスク I/O と帯域が安定しているサービスが向いています。



コメント