NFSは、システム間でファイルとディレクトリを共有するためにSunMicrosystemsによって開発されました。 NFSを使用すると、ネットワーク上のシステムがTCP/IPネットワークを介してファイルを共有できます。これは、共有ディレクトリを持つシステムがサーバーと呼ばれ、共有ディレクトリにアクセスするシステムがクライアントと呼ばれるクライアントサーバー方式で動作します。クライアントは、NFSサーバーによって、ローカルディスクパーティションとして表示される独自のシステムに共有ディレクトリをマウントできます。クライアントは、NFSサーバーによって割り当てられたアクセス許可に基づいて、リモートNFSサーバー上のファイルの読み取り/書き込みを行うことができます。 NFSの機能の一部は次のとおりです。
- ユーザーはローカルでリモートファイルにアクセスできます
- 両方のマシンが同じオペレーティングシステムである必要はありません
- 一元化されたストレージソリューションを提供します
- ユーザーはデータを中央の場所に保存できるため、ローカルストレージスペースを節約できます。
この投稿では、NFSサーバーとクライアントをインストールし、共有をエクスポートし、クライアントでNFS共有をマウント/マウント解除する方法を紹介します。
注:
デモンストレーションでは、次の詳細を備えた2台のマシンを使用します。
NFSホスト(Debian 10)
- ホスト名:nfs
- IP:192.168.72.158
NFSクライアント(Debian 10)
- ホスト名:クライアント
- IP:192.168.72.159
注:ここに記載されている手順は、Debian 10(バスターシステム)でテストされています。
NFSサーバーのインストールと構成
次のセクションでは、最初にホストマシンにNFSサーバーをインストールします。次に、 / var / nfs-publicである2つの共有ディレクトリを設定します および/var / nfs-docs クライアントマシンと共有するため。始めましょう。
ステップ1:ホストマシンにNFSサーバーをインストールする
システムをNFSサーバーとしてセットアップするには、 nfs-kernel-serverをインストールする必要があります。 その上にパッケージ。 NFSホストマシンでは、まず、ターミナルで次のコマンドを使用してローカルリポジトリインデックスを更新します。
$ sudo apt update
次に、 nfs-kernel-serverをインストールします 以下のコマンドを使用します:
$ sudo apt install nfs-kernel-server
これで、 y / nが提供される場合があります インストールを続行するオプション。 yを押します 続行すると、システムは nfs-kernel-serverのインストールを開始します 。
かつてnfs-kernel-server がインストールされている場合は、ターミナルで次のコマンドを使用してインストールを確認できます。
$ dpkg -l | grep nfs-kernel-server
ステップ2:ホスト上に共有ディレクトリを作成する
次に、クライアントと共有するために設定するディレクトリをホスト上に作成します。 2つのディレクトリ/var / nfsを作成しました –ドキュメント および/var / nfs-public さまざまな構成設定で。
$ sudo mkdir -p /var/nfs-docs
$ sudo mkdir -p /var/nfs-public
/ var / nfs-publicの場合 ディレクトリの所有権をnobody:nogroupに変更します 以下のコマンドを使用します:
$ sudo chown nobody:nogroup /var/nfs-public
所有権が変更されたかどうかを確認するには、次のコマンドを使用します。
$ ls -la /var/nfs-public
/ var / nfs-docsの場合 、所有権は変更されません。
ステップ3:共有をエクスポートする
次に、リソースを共有するためにNFSサーバーのエクスポートファイルを構成します。 NFSエクスポートファイルは/etc / exports 次のように編集できます:
$ sudo nano /etc/exports
このファイルでは、共有するディレクトリとそれにアクセスできるクライアントを指定します。次の構文を使用して、NFSエクスポートファイルにエントリを追加できます。
directory host1(options) host2(options)...hostN(options)...
どこ
- ディレクトリ クライアントと共有するディレクトリです。
- ホスト 共有するクライアント/サブネットのIPアドレス/サブネットアドレスです。クライアントマシンのIPアドレスを見つけるには、IPアドレスを見つける方法に関するガイドにアクセスしてください。
- オプション リソースの共有方法を指定する構成オプションの一部です。
両方のディレクトリについて/var / nfs-docs および/var / nfs-public 、 / etc / exportsに次のエントリを追加しました ファイル:
/var/nfs-public 192.168.72.159(rw,sync,no_subtree_check) /var/nfs-docs 192.168.72.159(rw,sync, no_root_squash,no_subtree_check)
上記の構成ファイルでは、両方のエントリがNFSサーバーに / var / nfs-publicを共有するように指示しています。 および/var / nfs-docs NFSクライアントのあるディレクトリ192.168.72.159 rw (読み取りおよび書き込み)許可。 2番目のエントリでは、 no_root_squashを追加しました これにより、クライアントはNFSサーバーでもroot権限を持つことができます。エクスポートの構成が完了したら、 / etc / exportsを保存して閉じます。 ファイル。
ここで、共有をエクスポートするには、NFSサーバーを再起動する必要があります。これを行うためのコマンドは次のとおりです。
$ sudo systemctl restart nfs-kernel-server
/ etc / exportsに変更を加えるときはいつでも ファイルの場合は、必ずサービスを再起動して構成の変更を適用してください。
または、次のコマンドを使用して共有をエクスポートすることもできます:
$ sudo exportfs -a
NFSサーバーが問題なく実行されているかどうかを確認するには、ターミナルで次のコマンドを使用してそのステータスを確認します。
$ sudo systemctl status nfs-kernel-server
ステップ4:NFSサーバーにファイアウォールを設定する
NFSサーバーでファイアウォールが有効になっている場合は、クライアントがNFSポート 2049に接続できるようにファイアウォールを構成する必要があります。 。 NFSサーバーでファイアウォールが有効になっているかどうかを確認するには、ターミナルで次のコマンドを発行します。
$ sudo ufw status
次の出力では、アクティブを確認できます。 ファイアウォールが有効になっていることを示すステータス。
クライアントがNFSポートに接続できるようになりました2049 、ファイアウォールにルールを追加する必要があります。これを行うには、ターミナルで次のコマンドを発行します。
$ sudo ufw allow from client_ip/subnet_ID to any port nfs
たとえば、サブネット全体を許可するには 192.168.72.0/24 NFポートへのアクセス2049 、コマンドは次のようになります:
$ sudo ufw allow from 192.168.72.0/24 to any port nfs
次に、ルールが正常に追加されたかどうかを確認するには、ファイアウォールのステータスを確認します。
$ sudo ufw status
次の出力で強調表示されているエントリは、 192.168.72.0/24からの接続を示しています 許可 ポート2049 。
これで、NFSサーバーでの構成が完了しました。 NFSクライアントのインストールと構成に移りましょう。
NFSクライアントのインストールと構成
次のセクションでは、最初にクライアントマシンにNFSクライアントをインストールします。次に、 / media / publicの2つのマウントポイントを設定します および/media / docs リモートNFS共有をマウントするための/var / nfs-public および/var / nfs-docs 。始めましょう。
ステップ1:クライアントマシンにNFSクライアントパッケージをインストールする
システムをNFSクライアントとしてセットアップするには、 nfs-commonをインストールする必要があります。 その上にパッケージ。 NFSクライアントマシンでは、まず、ターミナルで次のコマンドを使用してローカルリポジトリインデックスを更新します。
$ sudo apt update
次に、 nfs-commonをインストールします 以下のコマンドを使用します:
$ sudo apt install nfs-common
これで、 y / nが提供される場合があります インストールを続行するオプション。 yを押します 続行すると、システムは nfs-commonのインストールを開始します パッケージ。
ステップ2:マウントポイントを作成する
クライアントシステムでは、NFSサーバーにある共有をマウントするためのマウントポイントを作成する必要があります。クライアントでは、 / mediaに2つのディレクトリを作成しました マウントポイントの場合:
$ sudo mkdir -p /media/docs $ sudo mkdir -p /media/public
ステップ3:クライアントにNFS共有を手動でマウントする
次に、前の手順で作成したマウントポイントにNFS共有をマウントします。そのための構文は次のとおりです。
$ sudo mount NFS_server_IP:NFS_share client_mountpoint
場所:
NFS_server_IP NFSサーバーのIPアドレスです
NFS_share NFSサーバー上にある共有です
client_mountpoint 共有をマウントするマウントポイントです。
NFSサーバーから、:/ var / nfs-docsである2つの共有ディレクトリをエクスポートしました。 および/var / nfs-public 。クライアントマシンに、1つの共有をマウントします / var / nfs-docs 1つのマウントポイントに/media / docs 他の共有は/var / nfs-public 2番目のマウントポイント/media / public 。
次のコマンドを使用して、NFS共有をNFSクライアントにマウントしました。
$ sudo mount 192.168.72.158:/var/nfs-docs /media/docs $ sudo mount 192.168.72.158:/var/nfs-public /media/public
次に、NFS共有ディレクトリが正常にマウントされたかどうかを確認するには、ターミナルで「df –h」コマンドを発行します。
$ df -h
これが「df-h」コマンドの出力で、下部に2つのNFS共有が表示されています。
/メディアに共有をマウントしたので ディレクトリの場合、ファイルマネージャからマウントされたディレクトリにアクセスすることもできます。
ステップ4:ブート時にクライアントにNFS共有を自動的にマウントする
クライアントシステムを再起動するたびに、mountコマンドを使用してNFS共有を手動でマウントする必要があります。これは、1回またはたまに使用しても問題ありません。ただし、NFS共有に常にアクセスする場合は、 / etc / fstabを使用してマウントを永続的にする必要があります。 ファイル。
/ etc / fstabを編集します ファイル:
$ sudo nano /etc/fstab
次に、自動的にマウントするNFS共有のエントリを追加します。
192.168.72.158:/var/nfs-docs /media/docs nfs rw,sync,hard,intr 0 0 192.168.72.158:/nfs-public /media/public nfs rw,sync,hard,intr 0 0
次に、 / etc / fstabを保存して閉じます ファイル。
次回、システムを再起動すると、クライアントは自動的にNFS共有をマウントします。
NFSアクセスのテスト
次に、各ディレクトリに新しいファイルを作成して、NFS共有ディレクトリへのアクセスをテストします。
クライアントマシンで、最初に test1を作成します ローカルマウントポイント/media / publicでsudoとしてファイル :
$ sudo touch /media/public/test1
次に、新しいファイルの所有権を確認します。
$ ls -l /media/public/test1
ファイルの所有権が誰もいないであることがわかります ユーザーとnogroup グループ。クライアントマシン上でsudoとしてファイルを作成しましたが、NFSサーバーはそれをホストの所有権に変換しました nobody:nogroup 。これは、クライアントのrootユーザーがサーバーの共有ディレクトリで管理タスクを実行できないことを意味します。
次に、 test1を作成します 2番目のローカルマウントポイント/media / docsにsudoとしてファイルします :
$ sudo touch /media/docs/test1
このファイルの所有権を確認すると、rootユーザーとrootグループが所有していることがわかります。これは、 no_root_squashを設定したためです。 クライアントマシンのrootユーザーがサーバーのディレクトリのrootとして機能し、管理タスクを実行できるようにするオプション。
次に、NFSサーバーマシンで、両方のファイルを表示できるかどうかを確認します。
クライアントマシンからのNFS共有のアンマウント
NFS共有が不要になった場合は、クライアントシステムからマウントを解除できます。 NFS共有をアンマウントするには、umountに続けて、NFS共有がマウントされているディレクトリの名前を入力します。
$ umount /media/docs $ umount /media/public
これは、Debian10システムでNFSサーバーとクライアントをセットアップする方法です。この記事では、NFSサーバーとクライアントのインストール、NFS共有ディレクトリの構成、およびクライアントシステムでのNFS共有のマウント/アンマウントの方法について説明しました。 LinuxMint20でNFSサーバーとクライアントを構成する方法に関する投稿をご覧ください。