Ubuntu18.04にNFSサーバーをインストールして構成する方法


NFS(Network File Share)は、ネットワーク内の他のLinuxクライアントとディレクトリおよびファイルを共有できるようにするプロトコルです。共有されるディレクトリは通常、NFSサーバー上に作成され、ファイルが追加されます。

クライアントシステムは、NFSサーバー上にあるディレクトリをマウントします。これにより、作成されたファイルへのアクセスが許可されます。 NFSは、クライアントシステム間で共通のデータを共有する必要がある場合、特にスペースが不足している場合に役立ちます。

このガイドは、UbuntuへのNFSサーバーのインストールと構成、およびクライアントLinuxシステムへのNFSクライアントのインストールという2つの主要なセクションで構成されます。

UbuntuへのNFSサーバーのインストールと構成

NFSサーバーをインストールして構成するには、以下に概説する手順に従います。

最初のステップは、サーバーにnfs-kernel-serverパッケージをインストールすることです。ただし、これを行う前に、まず次のaptコマンドを使用してシステムパッケージを更新しましょう。

$ sudo apt update

更新が完了したら、次に示すようにnfs-kernel-serverパッケージを続行してインストールします。これにより、ファイル共有のセットアップに等しく重要なnfs-commonやrpcbindなどの追加パッケージが保存されます。

$ sudo apt install nfs-kernel-server

ステップ2:NFSエクスポートディレクトリを作成する

2番目のステップは、クライアントシステム間で共有されるディレクトリを作成することです。これはエクスポートディレクトリとも呼ばれ、後でクライアントシステムからアクセスできるファイルを作成するためにこのディレクトリにあります。

NFSマウントディレクトリ名を指定して、以下のコマンドを実行します。

$ sudo mkdir -p /mnt/nfs_share

すべてのクライアントマシンが共有ディレクトリにアクセスできるようにするため、ディレクトリのアクセス許可の制限をすべて削除します。

$ sudo chown -R nobody:nogroup /mnt/nfs_share/

ファイルのアクセス許可を好みに合わせて微調整することもできます。これが、ディレクトリ内のすべてのコンテンツに対する読み取り、書き込み、および実行の特権を与えたものです。

$ sudo chmod 777 /mnt/nfs_share/

NFSサーバーにアクセスするためのアクセス許可は、/ etc/exportsファイルで定義されています。したがって、お気に入りのテキストエディタを使用してファイルを開きます。

$ sudo vim /etc/exports

単一のクライアント、複数のクライアントへのアクセスを提供することも、サブネット全体を指定することもできます。

このガイドでは、サブネット全体がNFS共有にアクセスできるようにしました。

/mnt/nfs_share  192.168.43.0/24(rw,sync,no_subtree_check)

上記のコマンドで使用されるオプションについての説明。

  • rw: Stands for Read/Write.
  • sync: Requires changes to be written to the disk before they are applied.
  • No_subtree_check: Eliminates subtree checking.

単一のクライアントへのアクセスを許可するには、次の構文を使用します。

/mnt/nfs_share  client_IP_1 (re,sync,no_subtree_check)

複数のクライアントの場合、各クライアントを個別のファイルで指定します。

/mnt/nfs_share  client_IP_1 (re,sync,no_subtree_check)
/mnt/nfs_share  client_IP_2 (re,sync,no_subtree_check)

優先クライアントシステムへのアクセスを許可した後、NFS共有ディレクトリをエクスポートし、NFSカーネルサーバーを再起動して変更を有効にします。

$ sudo exportfs -a
$ sudo systemctl restart nfs-kernel-server

クライアントがNFS共有にアクセスするには、ファイアウォールを介したアクセスを許可する必要があります。そうしないと、共有ディレクトリにアクセスしてマウントできなくなります。これを実現するには、次のコマンドを実行します。

$ sudo ufw allow from 192.168.43.0/24 to any port nfs

ファイアウォールをリロードまたは有効にし(オフになっている場合)、ファイアウォールのステータスを確認します。デフォルトのファイル共有であるポート2049を開く必要があります。

$ sudo ufw enable
$ sudo ufw status

クライアントシステムにNFSクライアントをインストールする

サーバーへのNFSサービスのインストールと構成が完了しました。次に、クライアントシステムにNFSをインストールしましょう。

通常のように、何よりもまずシステムパッケージとリポジトリを更新することから始めます。

$ sudo apt update

次に、図のようにnfs-commonパッケージをインストールします。

$ sudo apt install nfs-common

次に、NFSサーバーからnfs共有をマウントするマウントポイントを作成する必要があります。これを行うには、次のコマンドを実行します。

$ sudo mkdir -p /mnt/nfs_clientshare

残りの最後のステップは、NFSサーバーによって共有されるNFS共有をマウントすることです。これにより、クライアントシステムが共有ディレクトリにアクセスできるようになります。

ifconfigコマンドを使用してNFSサーバーのIPアドレスを確認しましょう。

$ ifconfig

これを実現するには、次のコマンドを実行します。

$ sudo mount 192.168.43.234:/mnt/nfs_share  /mnt/nfs_clientshare

NFSセットアップが機能していることを確認するために、サーバーにあるNFS共有ディレクトリにいくつかのファイルを作成します。

$ cd /mnt/nfs_share/
$ touch file1.txt file2.txt file3.txt

次に、NFSクライアントシステムに戻り、ファイルが存在するかどうかを確認します。

$ ls -l /mnt/nfs_clientshare/

すごい!出力は、NFSサーバーで作成したファイルにアクセスできることを確認します。

そしてそれについて。このガイドでは、Ubuntu18.04でのNFSサーバーのインストールと構成について説明しました。 NFSは最近ほとんど使用されておらず、より堅牢で安全なSamba共有プロトコルに追いやられています。