即使端口已打开,nfs 仍被 ufw 阻止

JaR*_*JaR 16 nfs 11.04 ufw

我已经设置了一个 nfsv4 服务器并且它工作正常,但是即使端口 2049 和 111 打开,防火墙也会阻止 nfs。

我知道 nfs 使用一些在每次启动时都会改变的随机端口,但是我怎样才能使它们成为静态的,这样我就可以在不再次禁用防火墙的情况下使用 nfs?

JaR*_*JaR 37

我对此进行了更多研究。Ubuntu 正在使用 UFW,它非常易于配置,但非常有效,至少对于 soho 需求而言。因此,默认情况下rpc.mountd侦听多个端口,因此您必须将rpc.mountd绑定到一个端口,然后您可以添加额外的 UFW 规则来接受该特定端口上的传入连接。

为此,请打开/etc/default/nfs-kernel-server并注释掉该行

RPCMOUNTDOPTS=--manage-gids
Run Code Online (Sandbox Code Playgroud)

并添加以下行

RPCMOUNTDOPTS="-p 13025"
Run Code Online (Sandbox Code Playgroud)

13025 只是一个随机选择的端口,它是可用的并且尚未在/etc/services 中定义。

重新启动 NFSd sudo /etc/init.d/nfs-kernel-server restart

现在配置UFW接受端口传入的连接130252049和端口111

ufw allow from 192.168.1.0/24 to any port 111
ufw allow from 192.168.1.0/24 to any port 2049
ufw allow from 192.168.1.0/24 to any port 13025
Run Code Online (Sandbox Code Playgroud)

就是这样。您现在应该能够从另一台机器安装您的导出。:-)

  • 在 16.04+ 中重启 NFS 执行:`sudo systemctl restart nfs-kernel-server` (2认同)

小智 5

您不必使用新版本的 Ubuntu 进行复杂的操作。Ubuntu 18.04 ufw 和 nfs-kernel-server。

只需使用此命令即可在您的主机上允许 nfs

sudo ufw allow from your_client_ip to any port nfs
Run Code Online (Sandbox Code Playgroud)

或者

sudo ufw allow from your_client_ip_block/24 to any port nfs
Run Code Online (Sandbox Code Playgroud)