linux和windows中使用NFS挂载

NFS网络文件系统

    • linux中挂载
      • 常用命令
      • nfs参数说明
      • 挂载
      • 开启防火墙端口
    • windows中挂载

linux中挂载

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
yum -y install nfs-utils    //nfs客户端和服务端以及rpcbind自动安装
端口配置文件/etc/sysconfig/nfs

showmount  [参数]  IP
    -e   查看nfs提供共享的文件系统
    -a   查看nfs服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
    -d   显示nfs所有文件系统
exportfs  用于查看挂载信息
    -r   重新导出
    -u   取消导出
    -a   同-r或-u 同时使用,表示重新挂载所有文件系统或取消导出所有文件系统,/etc/exports中的内容
    -v   显示共享参数详细信息

nfs参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
权限参数说明
    all_squash:对任何连接服务端的用户,服务端都映射为匿名用户anonymous,适合公用目录
    no_all_squash:访客映射为服务器上相同的uid用户
    root_squash:访客以root用户访问NFS服务端,映射为nfsnobody用户
    no_root_squash:nfs客户端连接服务段使用root,对服务端目录也拥有root权限,开启此选项不安全
    其它选项
    ro:共享目录只读
    rw:共享目录可读可写
    secure:限制客户端只能从小于1024的tcp/ip端口连接服务器
    linsecure:允许客户端从大于1024的tcp/ip端口连接服务器
    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
    async:将数据先保存在内存缓冲区中,必要时才写入磁盘
    wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
    no_wdelay:若有写操作则立即执行,应与sync配合使用
    subtree_check:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
    no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
    anonuid=xxx:同步文件属性uid
    anongid=xxx:同步文件属性gid

挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
服务端开启共享
    mkdir  /document
    vim /etc/exports
    /document   192.168.11.0/24(rw,sync,no_subtree_check,secure,no_all_squash)  #共享目录,允许访问的客户端,访问权限
    exportfs -r      #重新加载exports配置
    systemctl restart rpcbind  nfs  nfs-server    #重新启动

客户端挂载
    mount -t nfs nfs.st.local:/document   /document      #直接挂载,临时重启后失效
   
    在fstab中添加开机自动挂载
    vim  /etc/fstab
        192.168.11.124:/document  /document  nfs defaults 0 0

开启防火墙端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    rpcinfo  -p 查看nfs的rpc相关端口
    默认nfs端口2049,portmapper端口是111,mountd端口20048
    status和nlockmgr是随机端口
    在设置了防火墙的环境中使用NFS,需要在防火墙上打开如下端口:
        1. portmapper    端口 111 udp/tcp
        2. nfs           端口 2049 udp/tcp
        3. mountd       端口 "xxx" udp/tcp
    系统 RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768—65535,更精确的范围是32770-32900)来进行通讯
    ss  -ln | grep 30001  查看端口占用情况
   
    NFS端口固定:
        vim /etc/sysconfig/nfs     #在最后添加选项,固定端口,确定指定端口没有被占用
            RQUOTAD_PORT=30001
            LOCKD_TCPPORT=30002
            LOCKD_UDPPORT=30002
            MOUNTD_PORT=30003
            STATD_PORT=30004
           
        vim  /etc/modprobe.d/lockd.conf     #添加参数
            options  lockd nlm_tcpport=30002
            options  lockd nlm_udpport=30002
           
    firewalld开启的情况下添加端口:
        firewall-cmd  --zone=public  --add-port=111/tcp  --permanent
        firewall-cmd  --zone=public  --add-port=111/udp  --permanent
        firewall-cmd  --zone=public  --add-port=2049/tcp  --permanent
        firewall-cmd  --zone=public  --add-port=2049/udp  --permanent
        firewall-cmd  --zone=public  --add-port=30001-30004/tcp  --permanent
        firewall-cmd  --zone=public  --add-port=30001-30004/udp  --permanent
        firewall-cmd  --reload   重新加载配置
       
        systemctl restart  nfs  nfs-config  nfs-idmap  nfs-lock  nfs-server    #重启nfs相关服务
        showmount  -e 192.168.112.120     #在客户端查看服务端共享区

windows中挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
win7(win10)中打开控制面板,找到程序,然后进入启用或关闭windows功能,找到NFS相关选项进行安装,开启NFS功能。家庭版不含此功能,需要升级为企业版

win+R进入cmd命令窗口:
    mount  192.168.20.21:/document  S:
    net use 192.168.112.110:/document  S:  /persistent:yes    #强制网络映射每次登陆有效
    net use S:  /delete   删除网络映射                          #挂载点只能是计算机中没有使用的盘符

开机自动挂载
    计算机→映射网络驱动器→输入网络共享文件路径
        选择一个驱动器(盘符,没有被使用的盘符),下面输入要挂载的文件路径,如:\\192.168.1.1\share
    添加权限,默认只有读权限
        win+R输入regedit,进入注册表,找到下面的路径:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
        点击新建QWORD(64位)值,添加两项AnonymousUid和AnonymousGid,默认数值数据为0,然后重启计算机

    卸载:net use S:  /delete