サーバーファイアウォールを無効にすると、エクスポートしたディレクトリがNFSクライアントに表示されます。そうでなければそうではありません。
有線インターフェイスファイアウォールの「パブリック」および「内部」領域(「ssh」が明示的に許可され、脆弱性を通過する)で「nfs」サービスを許可しようとしましたが、役に立ちませんでした。アイデアが足りません。
編集:サーバーファイアウォールを停止してエクスポートしたディレクトリをマウントすると、サーバーに次の出力が表示されます。
$ ss -o state established '( dport = :nfs or sport = :nfs )'
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp 0 0 192.168.1.66:nfs 192.168.1.68:vacdsm-app
編集:状況を複雑にするために、クライアントがサーバーからエクスポートしたディレクトリのリストをリッスンするために必要なポートは、そのディレクトリの内容を実際に表示するのに必要なポートとは異なります。そのため、ファイアウォールをオフにしてエクスポートディレクトリのリストを使用してクライアントを設定し、ファイアウォールを再びオンにしてクライアントで利用できるかどうかを確認できます。本当に台無しです。
答え1
リストされた結果は、ss
ネットワーク上でNFSを操作するために必要な手がかりを提供します。ローカルサービスはとしてマークされますが、nfs
ピアのサービスはですvacdsm-app
。サーバーのサービスのリストを見るvacdsm
。ファイアウォールの許可されたサービスのリストにそれを追加すると、エクスポートしたディレクトリをクライアントコンピュータにインストールできます。
エクスポートディレクトリを一覧表示するクライアントにはまだ問題があるようです。それで、他のポートも開かなければならず、サービスも許可しなければならないと思います。
編集:クライアントにエクスポートリストを表示するには、以下を使用しているポートを探す必要がありますmountd
。
$ rpcinfo -p | grep mountd
100005 1 udp 48008 mountd
100005 1 tcp 48008 mountd
mountd
それから。したがって、設定する必要はありません。MOUNTD_PORT
/etc/sysconfig/nfs
次に、パブリックインターフェイスで許可されているポートのリストにポート番号自体を追加しました。
$ sudo firewall-cmd --zone=public --add-port=48008/udp --permanent
$ sudo firewall-cmd --zone=public --add-port=48008/tcp --permanent
最後に、111を明示的に指定する必要があることがわかったので、上記のコマンドを繰り返しました。
$ sudo firewall-cmd --zone=public --add-port=111/udp --permanent
$ sudo firewall-cmd --zone=public --add-port=111/tcp --permanent
111は標準NFSポートですが、なぜ指定するのかわかりません。サーバーとクライアントが異なるバージョンのOpenSUSEを使用しているため、何かが欠落している可能性があると思います。
答え2
Macで接続しようとすると、ポート20048(該当するポート)も開く必要があることがわかりましたmountd
。
MacはNFSv4をサポートしておらず、NFSv3がmountd
機能するためには「セカンダリサービス」である必要があります。