Ubuntu 部署 NFS 文件共享

Server

  1. 安装 NFS 服务端:

    sudo apt install nfs-kernel-server
    
  2. 创建共享目录:

    sudo mkdir -p /srv/nfs4/data1 /srv/nfs4/data2
    sudo chown -R nobody:nogroup /srv/nfs4
    
  3. 编辑导出配置:

    sudoedit /etc/exports
    
    # 根导出目录,允许所有主机访问
    /srv/nfs4        *(rw,sync,no_subtree_check,all_squash,fsid=0)
    
    # 只允许指定子网访问
    /srv/nfs4/data1  192.168.1.0/24(rw,sync,no_subtree_check,all_squash)
    
    # 只允许指定主机访问
    /srv/nfs4/data2  192.168.1.100(rw,sync,no_subtree_check,all_squash)
    
    • rw:允许客户端对导出目录进行读写操作。
    • sync:所有写操作将在响应客户端请求之前同步到磁盘上。这可以提高数据的安全性,但可能会降低性能。
    • no_subtree_check:禁用子树检查。NFS 服务器不会检查请求的文件是否在导出的目录树中,这可以提高性能。
    • fsid:指定文件系统 ID。对于 NFSv4,根导出目录需要指定 fsid=0
    • root_squash:将客户端 root 用户映射为匿名用户(通常是 nobody
    • all_squash:将所有客户端用户映射为匿名用户
    • anonuid:指定匿名用户的用户 ID。
    • anongid:指定匿名用户的组 ID。
  4. 启动 NFS Server:

    sudo systemctl start nfs-kernel-server
    sudo systemctl enable nfs-kernel-server
    
  5. 刷新导出的文件系统列表:

    sudo exportfs -a
    
  6. 防火墙放行 NFS 服务端口 TCP 2049。

    sudo ufw allow nfs
    

Client

  1. 安装 NFS 客户端:

    sudo apt install nfs-common
    
  2. 创建挂载目录:

    sudo mkdir -p /mnt/nfs4/data1 /mnt/nfs4/data2
    
  3. 挂载 NFS 目录:

    sudo mount -t nfs4 192.168.1.2:/ /mnt/nfs4
    sudo mount -t nfs4 192.168.1.2:/data1 /mnt/nfs4/data1
    sudo mount -t nfs4 192.168.1.2:/data2 /mnt/nfs4/data2
    

    如果客户端操作系统为 macOS,则需使用 -o resvport,nolocks 选项。

    macOS 也可以直接打开 NFS 链接:

    open -a Finder nfs://192.168.1.2/
    
  4. 检查挂载情况:

    df -hT -x tmpfs
    
  5. 持久挂载(可选):

    sudoedit /etc/fstab
    
    192.168.1.2:/ /mnt/nfs4        nfs  defaults  0  0
    192.168.1.2:/ /mnt/nfs4/data1  nfs  defaults  0  0
    192.168.1.2:/ /mnt/nfs4/data2  nfs  defaults  0  0
    

参考:How To Set Up an NFS Mount on Ubuntu 22.04 | DigitalOcean

posted @ 2025-04-10 20:02  Undefined443  阅读(125)  评论(0)    收藏  举报