Ubuntu で NFS サーバと NFS クライアントの設定
Ubuntu環境でNFSサーバーとクライアントを設定する手順。aptコマンドでのパッケージインストール、/etc/exportsファイルでの共有設定、systemdサービス管理、ufwファイアウォール設定、mountコマンドと/etc/fstabによるマウント方法。
前準備
Ubuntu のシステム更新
システムを最新の状態に保つことは、セキュリティの向上や安定性の確保のために重要である. Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# 変更をシステム全体に確実に反映させるために再起動
sudo shutdown -r now
サーバ側
- インストール
NFSサーバ機能を提供する
nfs-kernel-server
パッケージをインストールする.# パッケージリストの情報を更新 sudo apt update sudo apt -y install nfs-kernel-server
- 設定
共有するディレクトリとアクセス権限を設定する.設定は
/etc/exports
ファイルに記述する. 以下の例は、/home
ディレクトリをネットワークアドレスが「XXX.YYY.ZZZ.0」でサブネットマスクが「255.255.255.0」のネットワーク(CIDR表記では XXX.YYY.ZZZ.0/24)に対して共有する設定である.「XXX.YYY.ZZZ.0/24」の部分は,各自の環境に合わせて適切に設定する必要がある.echo "/home XXX.YYY.ZZZ.0/24(rw,sync,no_root_squash,no_subtree_check)" | sudo tee -a /etc/exports
上記の例で使用されている主なオプションは以下の通りである.セキュリティを考慮する場合、
root_squash
などの他のオプションも検討する必要がある.-
rw
: 読み書きを許可する. -
sync
: データ書き込み要求があった場合,すぐにディスクに書き込む.これによりデータの一貫性が保たれるが,パフォーマンスは若干低下する可能性がある. -
no_root_squash
: クライアント側の root ユーザーのアクセスをサーバ側の root ユーザーとして扱う.デフォルトのroot_squash
はクライアント側の root ユーザーをサーバ側の匿名ユーザー (通常 nobody) として扱う. -
no_subtree_check
: サブツリーチェックを行わない.サブディレクトリを共有する場合にパフォーマンスが向上する可能性があるが,共有ディレクトリがパーティションのルートでない場合はセキュリティ上の注意が必要となる.
設定変更後、NFSサービスに設定を反映させる.Ubuntu 24.04 LTS では systemd を使用しており、
systemctl
コマンドを使用するのが標準的である.sudo systemctl restart nfs-kernel-server.service
または、サービスを再起動せずに設定ファイルだけを再読み込みさせるには
exportfs -ra
コマンドを使用できる.sudo exportfs -ra
-
- ファイアウォールの設定
NFSサービスが外部からアクセスできるように、ファイアウォールで必要なポートを開放する.Ubuntuのデフォルトファイアウォールである ufw を使う場合、NFSサービス名で許可するのが最も簡単である.NFSv4はデフォルトでTCPの2049ポートを使用するが、古いバージョンなどでは rpcbind, mountd など複数のポートを使用する場合があるため、サービス名での許可が推奨される.
ufw コマンドを使って、NFSに必要なポートを、必要なIPアドレスに対してのみ開放する.
# すべてのインターフェースからNFSアクセスを許可する場合 sudo ufw allow nfs # 特定のIPアドレス (例: 192.168.1.100) からのみ許可する場合 # sudo ufw allow from 192.168.1.100 to any port nfs # 特定のネットワーク (例: 192.168.1.0/24) からのみ許可する場合 # sudo ufw allow from 192.168.1.0/24 to any port nfs
クライアント側
NFS共有をマウントするには、まず必要なツールを含む nfs-common
パッケージをインストールする必要がある.
sudo apt update
sudo apt install -y nfs-common
NFS共有をマウントするには mount
コマンドを使用する.「111.222.333.44」はNFSサーバーのIPアドレスまたはホスト名に、「:/home」はサーバー側で共有設定したパスに、「/home」はクライアント側のマウントポイントパスにそれぞれ置き換える必要がある.
sudo mount -t nfs 111.222.333.44:/home /home
この mount
コマンドによるマウントは一時的なものである.システム起動時に自動的にマウントするには、/etc/fstab
ファイルに適切な設定を記述する方法が一般的である./etc/fstab
に設定する際は、NFSサーバーが利用できない場合でもシステムの起動を妨げないように nofail
オプションを含めることが推奨される.また、より柔軟な自動マウント方法として autofs を利用することも可能である.