NFS (Network File System) は UNIX 系のシステムで使用されることが多い分散ファイルシステム (ファイルサーバー) です。個人的には Samba の方が扱いやすいように感じていますが、パフォーマンスは NFS の方が若干勝るユースケースが多いようです。
なお、Samba と比べると若干面倒ですが Windows から NFS サーバーにアクセスすることも可能です。ただし、スマホやタブレットからのアクセスはほぼできないと考えてください。そのようなユースケースでは Samba の使用を推奨します。Arch Linux で Samba サーバーを構築する を参照してください。
サーバー
インストール
nfs-utils パッケージをインストールします。
# pacman -Syu nfs-utils
NFS の設定
ディレクトリを公開するための設定を行います。ここでは 192.168.0.0/24 の任意のホストに対して data/share/public
を公開します。
/data/share 192.168.0.0/24(ro,sync,no_subtree_check,fsid=0)
/data/share/public 192.168.0.0/24(rw,sync,no_subtree_check,nohide)
ここではサーバーとクライアントの uid, gid が共通であることを前提にしています。共通にできない場合は all_squash オプションを追加すれば匿名ユーザとしてアクセスできます。
共有ディレクトリの作成
対象のディレクトリを作成し、設定を反映します。
# mkdir -p /data/share/public
# exportfs -arv
ファイアウォールの設定
TCP の 111,2049,20048 番ポートを開放してください。以下に iptables の設定例を示します。
-A INPUT -m state --state NEW -m tcp -p tcp --syn -m multiport --dports 111,2049,20048 -j ACCEPT
NFS サーバーの起動
NFS サーバーを起動します。
# systemctl start nfs-server
また、システムを再起動した後にも自動的に NFS が起動するように設定しておきます。
# systemctl enable nfs-server
クライアント
Mac
以下のうち、いずれか一方の方法を選択してください。
Shell
以下のようにして NFS サーバ上の共有ディレクトリをマウントできます。
# mkdir /Volumes/Share
# mount -t nfs -o nolockd,resvport,hard,bg,intr,rw,tcp,nfc 192.168.0.16:/data/share /Volumes/Share
ただし、これではシステムを再起動するとアンマウントされてしまいます。自動的にマウントされるようにするためには /etc/auto_master
の末尾に /- /etc/autofs_nfs
を追加し、以下の内容で /etc/autofs_nfs
を作成します。
+auto_master # Use directory service
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
/- /etc/autofs_nfs
/System/Volumes/Data/mnt/share -fstype=nfs,nolockd,resvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.0.16/data/share
すぐに反映させるには以下のコマンドを実行してください。
# automount -cv
Finder
「移動」「サーバへ接続 (Command + K) 」をクリックするとダイアログが表示されるので、nfs://192.168.0.16/data/share
のようなアドレスを入力してください。
ただし、これではシステムを再起動するとアンマウントされてしまいます。自動的にマウントされるようにするためには「システム環境設定」「ユーザとグループ」「ログイン項目」「+」から上記のマウントポイントを選択してください。