単純なNFS共有をマウントしようとしていますが、「操作は許可されていません」というメッセージが表示され続けます。
NFS サーバーには、次の共有があります。
/mnt/share_dir 192.168.7.101(ro,fsid=0,all_squash,async,no_subtree_check) 192.168.7.11(ro,fsid=0,all_squash,async,no_subtree_check)
両方のクライアントに対して共有が有効になっているように見えます。
# exportfs -s
/mnt/share_dir 192.168.7.101(ro,async,wdelay,root_squash,all_squash,no_subtree_check,fsid=0,sec=sys,ro,secure,root_squash,all_squash)
/mnt/share_dir 192.168.7.11(ro,async,wdelay,root_squash,all_squash,no_subtree_check,fsid=0,sec=sys,ro,secure,root_squash,all_squash)
クライアント 192.168.7.101 が共有を表示できます。
$ sudo showmount -e 192.168.7.10
Export list for 192.168.7.10:
/mnt/share_dir 192.168.7.101
192.168.7.101のマウント対象:
# ls -lah /mnt/share_dir/
total 8.0K
drwxr-xr-x 2 me me 4.0K Aug 28 19:21 .
drwxr-xr-x 3 root root 4.0K Aug 28 19:21 ..
nfs
共有をマウントしようとすると、クライアントは「Operation not allowed」というメッセージを使用または入力しますnfs4
。
$ sudo mount -vvv -t nfs 192.168.7.10:/mnt/share_dir /mnt/share_dir
mount.nfs: timeout set for Sun Aug 28 21:56:03 2022
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.7.10,clientaddr=192.168.7.101'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=192.168.7.10'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.7.10 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.7.10 prog 100005 vers 3 prot UDP port 46169
mount.nfs: mount(2): Operation not permitted
mount.nfs: Operation not permitted
fsid=0
エクスポートオプションを設定しましたがinsecure
機能しません。
クライアントのRPC情報:
# rpcinfo -p 192.168.7.10
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 59675 mountd
100005 1 tcp 37269 mountd
100005 2 udp 41354 mountd
100005 2 tcp 38377 mountd
100005 3 udp 46169 mountd
100005 3 tcp 39211 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100003 3 udp 2049 nfs
100227 3 udp 2049
100021 1 udp 46745 nlockmgr
100021 3 udp 46745 nlockmgr
100021 4 udp 46745 nlockmgr
100021 1 tcp 42571 nlockmgr
100021 3 tcp 42571 nlockmgr
100021 4 tcp 42571 nlockmgr
別のクライアントを使用してください。192.168.7.11、何の問題もなく共有をマウントできました。
どんな問題や誤った設定も表示できず、どこにも修正が見つかりません。邪魔になるファイアウォールはなく、サーバーとクライアントの両方がDebian 11を使用しています。
何が起こったのか知っていますか?
答え1
この問題を発見しました。
デフォルトでは、ProxmoxでDebian権限のないコンテナを作成しました。これはNFSが利用できないことを意味します。これまで、Proxmox コンテナを使用する場合、これらの制限を認識できませんでした。
コンテナ内のNFS共有にアクセスできるように、次の提案に従いました。プロキシモクスフォーラム。
まず、ProxmoxホストにNFS共有をマウントしました(問題なし)。その後、ProxmoxでバインドマウントこのNFSパーティションを自分のコンテナにバインドします。
# pct set 903 -mp0 /mnt/host_dir,mp=/mnt/guest_dir
これが最善のアプローチであるかどうかはわかりませんが、コンテナ内のNFS共有にアクセスできるようになりました。
もう一つの可能性は、コンテナを再構築することです。特権NFSを有効にします。
答え2
私はRHEL 7.9を使用していますが、とにかく21世紀になってから22年になったNFSに失望しました...
私の経験では、を編集すると、通常、マウントする/etc/nfs.conf
と/etc/sysconfig/nfs
バージョン3が遅れます。私はRHEL 7.9で他のディストリビューションについて話すことはできませんが、NFS v4.1が機能するようにしたい場合は、両方のファイルのいずれかで何も変更できず、せいぜいv4.1しか機能できませんでした。 NFS v4.2が/etc/nfs.conf
。
/etc/nfs.conf
したがって、mountdおよびstatdポート番号など、nfsサーバーとクライアントの間のすべての詳細が一致していることを確認してください/etc/sysconfig/nfs
。デフォルトでは、NFS4の場合はポート2049ですべて発生する必要があります。 nfsサーバーとクライアントの間にポート番号の違いがある場合、マウントは発生しません。
ちなみに、最小要件は次のとおりです。
nfsサーバーで/etc/exports
認証した後/bkup *(rw,no_root_squash)
。exportfs -av
exportfs -s
nfsクライアントでは、単純なmount 192.168.1.1:/bkup /bkup
マウントは{nfsサーバーと一致するようにIPアドレスを変更し、それに応じてフォルダ名を変更}する必要があります。
返品aとaを実行してファイアウォールをオフにしservice firewalld stop
、setenforce 0
selinuxをオフにします。私はselinuxが通常nfsをブロックしているとは思わないが、マウントが動作するように一度に1ステップずつ...私がここで言及したのは、常に少なくともnfsが動作するようにすることです。お役に立てば幸いです。