NFS(Network File System)は、ユーザーがリモートシステム上のファイルやフォルダーをローカルに保存されているかのように表示およびアクセスできるようにするファイルシステムプロトコルです。これは、ストレージを共有するシステムをサーバーと呼び、サーバーに格納されているストレージにアクセスするシステムをクライアントと呼ぶクライアントサーバーセットアップです。 NFSを使用すると、ユーザーまたはシステム管理者は、サーバーのファイルシステムのすべてまたは一部をクライアントのシステムにマウントできます。クライアントは、それらのファイルに割り当てられた特定のアクセス許可(読み取り、書き込み)に基づいて、マウントされたファイルにアクセスできます。
NFSクライアント/サーバーセットアップの作成は、インストール、エクスポート、マウント、およびアクセスといういくつかのステップで実行できる単純なタスクです。この記事では、リモートシステム間でファイルを共有できるようにDebianシステムにNFSサーバーとクライアントをセットアップするプロセスについて説明します。
この記事に記載されているコマンドと手順をDebian10システムで実行しました。
NFSサーバー
ディレクトリを共有するためのホストシステムをセットアップするには、NFSカーネルサーバーをインストールする必要があります。これを行うには、以下の手順に従います。
ステップ1:NFSカーネルサーバーをインストールする
NFSサーバーのインストールに進む前に、ターミナルで次のコマンドを実行して、システムリポジトリインデックスを更新します。
$ sudo apt-get update
更新したら、ターミナルで次のコマンドを実行して、NFSカーネルサーバーをインストールします。
$ sudo apt install nfs-kernel-system
システムがY/ nを提供する場合があります インストールを確認するオプション。 yを押します 確認すると、システムへのインストールが開始されます。
ステップ2:エクスポートディレクトリを作成する
次に、クライアントのシステムと共有するために使用されるエクスポートディレクトリを作成する必要があります。好みに応じてラベルを付けることができます。ここでは、/mntディレクトリに「sharedfolder」という名前のエクスポートディレクトリを作成しています。
次のようにエクスポートディレクトリパスを指定して、次のコマンドを実行します。
$ sudo mkdir –p /mnt/sharedfolder
すべてのクライアントにエクスポートディレクトリへのアクセス許可を許可するには、制限付きの許可を削除する必要があります。これを行うには、次のコマンドを実行します。
$ sudo chown nobody:nogroup /mnt/sharedfolder
次に、すべてのユーザーがアクセスを読み取り、書き込み、実行できるようにする新しい権限を適用します。
$ sudo chmod 755 /mnt/sharedfolder
すべてのクライアントが共有フォルダにアクセスできるようになります。
ステップ3:エクスポートディレクトリを構成する
NFSサーバーの構成ファイルは、/etc/ディレクトリーにあります。ここでは、クライアントのホスト名とともに、クライアントと共有するディレクトリを指定できます。 nanoエディターを使用して/etc/ exportsファイルを編集するには、ターミナルでsudoとして次のコマンドを実行します。
$ sudo nano /etc/exports
次の形式を使用して、クライアントにアクセスを割り当てます。
directory hostname(options)
単一のクライアントへのアクセスを許可するには、その中に次の行を追加します。
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
複数のクライアントへのアクセスを許可するには、次の行を追加します。
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check) /mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
サブネット全体を指定して複数のクライアントにアクセスできるようにするには、サブネットに次の行を追加します。
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
ここでは、クライアントが共有ディレクトリにアクセスできるように、クライアントのサブネット全体を指定しています。
/ etc / exportsファイルの編集が完了したら、ctrl + Oを押して保存し、ctrl+Xを押してファイルを終了します。
上記のファイルのパラメータ(rw、sync、no_subtree_check)は、クライアントが次の権限を持っていることを意味します。
- r w :読み取りおよび書き込み操作
- 同期 :ディスクを適用する前に、ディスクに変更を書き込んでください
- no_subtree_check :サブツリーチェックなし
ステップ4:共有ディレクトリをエクスポートする
次のこのステップでは、/ etc/exportsにリストされている共有ディレクトリをエクスポートする必要があります。これを行うには、ターミナルで次のコマンドを実行します。
$ sudo exportfs –a
次に、構成の変更を適用するために、NFSカーネルサーバーを再起動します。
ステップ5:ファイアウォールを構成する
ここで、クライアントが共有コンテンツにアクセスできるようにサーバーが開いていることを確認することが重要です。指定したクライアントからNFSポートへのトラフィックを許可するルールを追加する必要があります。これを行うには、次の構文を使用します。
$ sudo ufw allow from [client-IP or client-Subnet] to any port nfs
この例では、192.168.72.0サブネット全体をNFポートに許可します。
$ sudo ufw allow from 192.168.72.0/24 to any port nfs
ルールが正常に追加されたかどうかを確認するには、ターミナルで次のコマンドを実行します。
$ sudo ufw status
これで、ホストNFSサーバーが構成され、指定したクライアントからアクセスできるようになりました。
クライアントマシンの構成
次に、サーバーのエクスポートディレクトリにアクセスできるようにクライアントマシンを構成します。これを行うには、以下の手順に従います。
ステップ1:NFSクライアントをインストールする
まず、ターミナルで次のコマンドを実行して、クライアントマシンのリポジトリインデックスを更新します。
$ sudo apt-get update
次に、ターミナルで次のコマンドを実行して、NFScommonと呼ばれるNFSクライアントアプリケーションをインストールします。
$ sudo apt-get install nfs-common
システムがY/ nを提供する場合があります インストールを確認するオプション。 yを押します 確認すると、システムへのインストールが開始されます。
ステップ2:NFSサーバーの共有フォルダーのマウントポイントを作成する
次に、サーバーの共有コンテンツにアクセスするために使用されるマウントポイントを作成します。ここでは、/mntディレクトリに「sharedfolder_clientr」という名前のマウントポイントを作成しています。そのために次のコマンドを使用しました:
$ sudo mkdir -p /mnt/sharedfolder_client
ステップ3:サーバーの共有ディレクトリをクライアントにマウントする
前のステップで、マウントポイントを作成しました。次に、NFSサーバーの共有ディレクトリを上記で作成したマウントポイントにマウントします。この目的には、次の構文を使用できます。
$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
たとえば、この例では、共有ディレクトリ「/ mnt/sharedfolder」をNFSサーバーからクライアントマシンのマウントポイント「/mnt/mountfolder_client」にマウントします。
$ sudo mount 192.168.72.164:/mnt/sharedfolder /mnt/sharedfolder_client
ここで、192.168.72.164はNFSサーバーのIPです。
これで、共有NFSディレクトリがクライアントのマシンにマウントされました。
ステップ4:接続をテストする
次に、NFSクライアントサーバーセットアップをテストします。これを行うには、NFSサーバーの共有ディレクトリにテストファイルまたはフォルダを作成します。次の例のように、NFSサーバーの共有ディレクトリに「documents」と「music」という名前の2つのフォルダが作成されていることがわかります。
次に、クライアントマシンでマウントポイントを開きます。ここには、サーバーの共有ディレクトリに作成されたものと同じファイルとフォルダが表示されます。
これですべてです。 Debian10システムにNFSサーバーとクライアントをインストールしてセットアップする方法を学んだことを願っています。この記事では、共有情報にアクセスするためにNFSホストにアクセスする方法についても説明します。