OpenWrt 搭建NFS服务器共享文件使用教程

NFS 全称 Network File System(网络文件系统),是由 SUN 公司研制的 UNIX 系统下的网络文件系统,允许多个用户之间共享文件,并成为分布式文件系统的基础,此协议从 1984 年问世,是一款老牌经典网络文件共享协议。

详细说明见维基百科:https://en.wikipedia.org/wiki/Network_File_System

下面介绍在 OpenWrt 下安装并搭建 NFS 文件服务器。

准备工作

  1. 安装 NFS 服务器界面:luci-i18n-nfs-zh-cn
  2. 已连接可用的存储设备EXT4格式。(路由器格式化硬盘教程

配置共享目录

打开 “NAS”-“NFS服务器”界面,参照示例添加即可,也可直接修改配置文件 /etc/exports

注意:NFS 协议不是“网络共享”,需要专门支持 NFS 协议的客户端才能访问。

常用共享示例

#只读共享 /mnt/sda 目录,允许任何主机访问。
/mnt/sda *(ro,all_squash,insecure,sync,no_subtree_check)

#可写共享  /mnt/sdb/tmp 目录,只允许指定 IP 地址访问。
/mnt/sdb/tmp 192.168.9.100(rw,all_squash,insecure,sync,no_subtree_check)

#只读共享 /mnt/sda 目录,只允许指定的局域网段访问。
/mnt/sda 192.168.9.0/24(ro,all_squash,insecure,sync,no_subtree_check)
#也可写为
/mnt/sda 192.168.9.0/255.255.255.0(ro,all_squash,insecure,sync,no_subtree_check)

#可写共享 /mnt/sdb/ftp 目录,只允许指定的域名地址访问,且将远程访问权限映射为本地 FTP 用户权限。
/mnt/sdb/tmp *.iyzm.net(rw,all_squash,insecure,sync,no_subtree_check,anonuid=55,anongid=55)

#可写共享 /mnt/sdb/test 目录,允许 root 用户权限访问。
/mnt/sdb/test *(rw,no_root_squash,insecure,sync,no_subtree_check)

NFS 配置选项说明

选项用途
ro只读访问。
rw允许读写。
sync同步写入,内存数据实时写入磁盘。
async异步写入,内存数据延时写入磁盘。
wdelay延迟写操作,合并写入操作。(默认启用)
no_wdelay若有写操作则立即执行。
subtree_check若目录是一个子目录,则检查其父目录的权限。(默认启用)
no_subtree_check即使目录是一个子目录,也不检查其父目录的权限。
all_squash将所有访问用户都映射为匿名用户。
no_all_squash将访问用户先与本机用户匹配,匹配失败后再映射为匿名用户。(默认启用)
root_squash将 root 用户映射为匿名用户。(默认启用)
no_root_squash允许 root 用户权限。
anonuid指定匿名用户所使用的本地 UID,(默认 65534)
anongid指定匿名用户所使用的本地 GID,(默认 65534)
secure限制客户端只能从小于 1024 的 TCP 端口连接服务器。(默认启用)
insecure允许客户端从大于 1024 的 TCP 端口连接服务器。

NFS 服务器外网访问

如需对公网提供 NFS 文件服务,需要打开这些防火墙端口 TCP与UDP :111,2049,32777,32778,32779,32780