nfs_server
NFS 服务端配置
补充说明
nfs_server 即 Network File System 服务端,允许 Linux 系统将本地目录通过网络共享给其他客户端,客户端通过 mount -t nfs 挂载后如同访问本地目录。NFS 适用于 Linux 之间的文件共享,性能优于 SMB/CIFS。
安装
安装 NFS 服务端
# Debian / Ubuntu
sudo apt-get update && sudo apt-get install nfs-kernel-server
# RHEL / CentOS / Rocky / AlmaLinux
sudo yum install nfs-utils
# Fedora
sudo dnf install nfs-utils
# openSUSE
sudo zypper install nfs-kernel-server
# Arch Linux
sudo pacman -S nfs-utils
启动并设置自启动
sudo systemctl enable nfs-server # 设置开机自启
sudo systemctl start nfs-server # 启动服务
sudo systemctl status nfs-server # 查看服务状态
Debian/Ubuntu 上服务名可能为
nfs-kernel-server,可用sudo systemctl start nfs-kernel-server。
配置共享目录
1. 创建共享目录:
sudo mkdir -pm 755 /mnt/nfs_share
2. 编辑 exports 配置文件:
sudo tee /etc/exports <<'EOF'
/mnt/nfs_share *(rw,fsid=0,no_subtree_check,no_root_squash,insecure,sync)
EOF
共享规则格式:
<共享目录> <允许客户端>(<选项>)
| 客户端写法 | 说明 |
|---|---|
* |
所有主机 |
192.168.1.0/24 |
指定网段 |
192.168.1.100 |
指定 IP |
*.example.com |
指定域名 |
3. 重新加载 exports 配置:
sudo exportfs -a
exportfs -a导出所有共享目录;exportfs -r重新读取 exports 文件并更新;exportfs -ra清理后重建导出表。
选项说明
| 选项 | 说明 |
|---|---|
rw |
读写权限(ro 为只读) |
sync |
同步写入,数据稳定但速度慢 |
async |
异步写入,速度更快但可能丢数据 |
no_subtree_check |
禁用子树检查,提高稳定性 |
no_root_squash |
客户端 root 保持 root 权限 |
root_squash |
客户端 root 映射为匿名用户(默认) |
insecure |
允许客户端使用非保留端口连接 |
fsid=0 |
设置文件系统 ID,根目录需用 fsid=0 |
查看共享与 IP
sudo showmount -e localhost
hostname -I | awk '{print $1}'
防火墙配置
# firewalld(RHEL/CentOS/Fedora)
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload
# ufw(Debian/Ubuntu)
sudo ufw allow nfs
NFS 依赖
rpcbind(端口 111)和nfs服务(端口 2049),以及mountd、rquotad等动态端口。使用--add-service=nfs会自动放行相关端口。如果使用 iptables 单独管理,需要放行:
111/tcp 111/udp— rpcbind2049/tcp 2049/udp— nfsd4000-4003/tcp— mountd(需在/etc/nfs.conf中固定端口)