Ubuntu 11.10を実行しています-他の多くのサーバー間でディレクトリを共有するようにNFSを設定しています。ファイアウォールでどのポートを開く必要がありますか?
$ rpcinfo -p | grep nfs
NFSサーバーのポート111(TCPおよびUDP)および2049(TCPおよびUDP)。
クラスタとクライアントのステータス用のポート(ポート1110 TCP、後者の場合は1110 UDP))とNFSロックマネージャのポート(ポート4045 TCPおよびUDP)。ゲートウェイ間で必要なサービスに応じて、許可する必要があるポートを決定できるのはあなただけです。
Portmapperの111とnfsの2049に加えて、mountdポートと、場合によってはrquotad、lockd、およびstatdを許可する必要があります。これらはすべて動的にすることができます。 この優れたNFSセキュリティガイド 起動スクリプトとカーネルモジュールの構成を変更して、静的ポートを使用するように強制することをお勧めします。
上記のガイドには ファイアウォールのセクション が含まれていますが、NFSの強化に関する別の質問については my answer を参照してください。
このページで自分の問題に役立つ説明を見つけましたが、レシピに従うのが簡単ではありませんでした。これが私のレシピです。
TL; DR-修正後、nfsポート(111、2049)とmountdポートの両方を許可する必要があります。
手順:
gksudo gedit /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
または、その他のポート番号。
ここで、次を使用してnfsをリセットしてみてください:
Sudo service nfs-kernel-server restart
そして、それが使用に役立つかどうかをテストします:
rpcinfo -p | grep "tcp.*mountd"
私にとっては十分ではありませんでしたが、完全に再起動することで問題は解決しました。
( クレジット )
(1)古いルールを削除します。これを手動で行うか、これがファイアウォールの唯一の用途である場合はリセットします。
Sudo ufw reset
Sudo ufw enable
(2)nfsとmountdポートを追加する
Sudo ufw allow in from 10.0.0.1/20 to any port 111
Sudo ufw allow in from 10.0.0.1/20 to any port 2049
Sudo ufw allow in from 10.0.0.1/20 to any port 33333
(ローカルIPまたは10.0.0.1/20
ではなく "any
"に変更してください)
これですべてです。
これにより、NFS関連のすべてのプログラムで使用されるすべてのポートのリストが表示されます。
rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq
FERMを使用すると、 Backticks を使用してrpcinfoからポートを取得できます。次に例を示します。
サーバ:
proto tcp {saddr ($CLIENT) {
dport (`rpcinfo -p | Perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
dport (`rpcinfo -p | Perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
クライアント:
proto udp {saddr ($SERVER) {ACCEPT;}} # NFS
(TCPのみを使用する場合は、proto tcp
部分)。
記録のために、私はポート111、2049[〜#〜]および[〜#〜]1048にNFSを使用する構成のアクセス許可を追加する必要がありました共有はWindows 2008 R2サーバーによってエクスポートされ、クライアントはUbuntu 12.04.4です。
これが誰かのお役に立てば幸いです。
SynologyをUbuntu 18.04システムにマウントするには、ポート111、892、2049を有効にする必要がありました
マウントすると、次のようになります(SynologyではNFS 4が有効になっていません):
root@ub18ovh# mount -a -vv
mount.nfs: trying text-based options 'vers=4.2,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.1,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.0,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=5.6.7.8'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 5.6.7.8 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 5.6.7.8 prog 100005 vers 3 prot UDP port 892
successfully mounted