SuseLinux10.3(chihaya) をサーバにして、 LAN内のSuseLinux10.2(mingosu) からディレクトリを NFS でマウントしてみた。
前提
chiyaha(サーバー)のIPアドレスは 192.168.1.10
で、 mingosu(クライアント) のIPアドレスは 192.168.1.20
とする。
今、 chihaya の /home/test/nfs_test
を mingosu の /home/test/nfs_test_mnt
にする。システム上でのユーザIDが同一でないとエラーになる ということだったのだけど、たまたま同じIDのユーザがいたので、そのユーザで作業を行う。
サーバ側の設定
nfs の設定
chihaya 側で、マウントされるディレクトリの設定を行う。
/etc/exports
に以下のように追加。
/home/test/nfs_test 192.168.1.20(rw,no_subtree_check)
これで、192.168.1.20 から /home/test/nfs_test
をマウントできるようになる。
アクセス元を制限する
しかし、これだけではセキュリティ的に良くないらしいので、 hosts ファイルでアクセス元を制限する。
/etc/hosts.deny
で、サービスに対して特定のホストからのアクセス以外を拒否したい。
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
これで全部ふさいで、次に /etc/hosts.allow
で許可する。
portmap:192.168.1.20
lockd:192.168.1.20
mountd:192.168.1.20
rquotad:192.168.1.20
statd:192.168.1.20
これで設定は完了。
起動
nfsserver
のサーバを立ち上げる。
# /etc/init.d/nfsserver start
Starting kernel based NFS server done
成功したらこんなメッセージになるはず。
エクスポートされている一覧
# showmount -e localhost
とすると、現在エクスポートされているものが見れる。
/home/test/nfs_test 192.168.1.20
クライアント側の設定
mingosu の設定は、まずマウントポイントの作成。
$ mkidr /home/test/nfs_test_mnt
$ mountpoint -d /home/test/nfs_test_mnt
これでマウントポイントが作られる。
あとは、普通にマウントするだけ。
# mount 192.168.1.10:/home/test/nfs_test /home/test/nfs_test_mng
これでマウントされたはず。以下のようにすれば確認できる。
$ mount
....略
192.168.1.10:/home/test/nfs_test on /hoome/test/nfs_test type nfs(rw,addr=192.168.1.10)
エラーが出た時
サーバ側でうまく設定出来ていない場合
mount: mount to NFS server '192.168.1.10' failed: RPC Error: Program not registered.
サーバがうまく動いてない時、このエラーが出ます。きちんと export 出来てるか、確認します。設定が反映されていないかもしれないので、以下のコマンドを実行してきちんと反映させます。
$ /usr/sbin/exportfs -a
$ /etc/init.d/nfsserver restart
portmapが動いていない場合
mount.nfs: Input/output error
クライアント側でportmapが動いていなかったらしく出ました。サーバ側も必要…なのかな?
$ /usr/sbin/portmap start
これで、完成です。
mingosu の /home/test/nfs_test_mnt
に chihayaの /home/test/nfs_test
がマウントされました👏🏻