跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 NFS 与 SMB:双 VM 文件服务实测

    NFS 与 SMB 都能做文件共享,但 RHEL 上的配置入口、协议版本、权限语义不同。本页用两台 RHEL 10.2 VM:390 服务端,393 客户端,各做一遍。

    角色主机服务
    NFS server390 192.168.2.232nfs-server,导出 /srv/nfs/share
    SMB server390smb/nmb,Samba 4.23.5
    客户端393 192.168.2.235nfs-utils、cifs-utils

    E3 记录:plans/content-expansion/evidence/rhel/rhel-nfs-smb/run.json(5 步,含 export/mount/nfsstat/smbclient/cifs)。

    Terminal window
    sudo dnf -y install nfs-utils
    sudo mkdir -p /srv/nfs/share
    echo 'export test' | sudo tee /srv/nfs/share/hello.txt
    echo '/srv/nfs/share 192.168.2.0/24(rw,sync,no_root_squash)' | sudo tee /etc/exports
    sudo exportfs -rav
    sudo systemctl enable --now nfs-server
    sudo firewall-cmd --add-service=nfs --add-service=mountd --add-service=rpc-bind --permanent
    sudo firewall-cmd --reload
    $ sudo exportfs -v
    /srv/nfs/share 192.168.2.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

    no_root_squash 让客户端 root 保持 root(实验方便,生产慎用)。

    Terminal window
    sudo dnf -y install nfs-utils
    showmount -e 192.168.2.232
    sudo mkdir -p /mnt/nfs
    sudo mount -t nfs 192.168.2.232:/srv/nfs/share /mnt/nfs
    $ cat /mnt/nfs/hello.txt
    export test
    $ ls -l /mnt/nfs
    -rw-r--r--. 1 root root 12 ... client.txt
    $ sudo nfsstat -m
    /mnt/nfs from 192.168.2.232:/srv/nfs/share
    Flags: rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,
    hard,fatal_neterrors=none,proto=tcp,timeo=600,retrans=2,
    sec=sys,clientaddr=192.168.2.235

    NFSv4.2、1MB rsize/wsize、TCP、hard mount;客户端写的 client.txt 属主 root,是 no_root_squash 的直接结果。

    Terminal window
    sudo dnf -y install samba samba-client cifs-utils
    sudo mkdir -p /srv/smb/share && sudo chmod 777 /srv/smb/share
    sudo tee -a /etc/samba/smb.conf <<'EOF'
    [share]
    path = /srv/smb/share
    browseable = yes
    writable = yes
    guest ok = no
    valid users = cloud-user
    EOF
    sudo smbpasswd -a cloud-user
    sudo systemctl enable --now smb nmb
    sudo firewall-cmd --add-service=samba --permanent && sudo firewall-cmd --reload

    smbpasswd 设置的是 Samba 独立密码,不是系统密码。

    Terminal window
    sudo dnf -y install cifs-utils samba-client
    smbclient -L //192.168.2.232 -U cloud-user
    sudo mkdir -p /mnt/smb
    sudo mount -t cifs //192.168.2.232/share /mnt/smb \
    -o username=cloud-user,password='***',vers=3.1.1
    $ smbclient -L //192.168.2.232 -U cloud-user
    share Disk
    IPC$ IPC IPC Service (Samba 4.23.5)
    cloud-user Disk Home Directories
    SMB1 disabled -- no workgroup available
    $ df -h /mnt/smb
    //192.168.2.232/share 30G 19G 11G 64% /mnt/smb
    $ mount | grep cifs
    ...vers=3.1.1,...rsize=4194304,wsize=4194304...
    项目NFSSMB
    协议版本4.23.1.1
    默认 rsize/wsize1MB4MB
    认证sec=sys(UID/GID)Samba 用户/密码
    防火墙nfs/mountd/rpc-bindsamba
    典型用途Linux 间共享跨平台/Windows
    • NFS 导出网段最小化;
    • firewalld 放行对应服务;
    • 客户端 nfsstat -m 确认版本/rsize;
    • SMB 用 smbpasswd 独立密码;
    • CIFS 用 credentials 文件而非明文;
    • 生产禁用 no_root_squash。
    • 未测试 NFSv4.1/pNFS;
    • 未测试 Kerberos(sec=krb5);
    • 未测试 SMB 多用户/ACL;
    • 未测试性能与并发。