我已经设置了一个 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接受端口传入的连接13025,2049和端口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)
就是这样。您现在应该能够从另一台机器安装您的导出。:-)
小智 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)