NFS 服务端安装配置

NFS 服务端安装配置

配置步骤

准备工作

需要准备两台虚拟机
服务器端 192.168.6.128 客户端 192.168.6.127

两台机器都需要安装 NFS 工具

[root@dl-001 ~]# yum install -y nfs-utils rpcbind

服务器端

修改配置文件,默认该文件为空,现在编辑它

[root@dl-001 ~]# vim /etc/exports
/home/nfstestdir 192.168.6.127/24(rw,sync,all_squash,anonuid=1000,anongid=1000)    //此ip为要共享机器的IP

查看监听的端口

[root@dl-001 ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2563/rpcbind        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1478/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2285/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1982/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      2563/rpcbind        
tcp6       0      0 :::22                   :::*                    LISTEN      1478/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2285/master

说明:在这里可以看到服务器端监听的端口是 rpcbind 而客户端监听的端口是 systemd(centos 7 的特性)。


启动 NFS 端口,并查看

[root@dl-001 ~]# systemctl start nfs
[root@dl-001 ~]# ps aux|grep nfs
root      2754  0.0  0.0      0     0 ?        S<   23:14   0:00 [nfsd4_callbacks]
root      2760  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2761  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2762  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2763  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2764  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2765  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2766  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2767  0.0  0.0      0     0 ?        S    23:14   0:00 [nfsd]
root      2771  0.0  0.0 112680   976 pts/0    R+   23:14   0:00 grep --color=auto nfs

[root@dl-001 ~]# ps aux|grep rpc
rpc       2563  0.0  0.1  64964  1300 ?        Ss   22:41   0:00 /sbin/rpcbind -w
root      2728  0.0  0.0      0     0 ?        S<   23:14   0:00 [rpciod]
root      2733  0.0  0.0  42564   948 ?        Ss   23:14   0:00 /usr/sbin/rpc.mountd
root      2744  0.0  0.0  43824   544 ?        Ss   23:14   0:00 /usr/sbin/rpc.idmapd
root      2773  0.0  0.0 112680   976 pts/0    R+   23:15   0:00 grep --color=auto rpc

添加 NFS 至开机启动

[root@dl-001 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

客户端

检查客户端是否有权限访问服务端文件

[root@dl-001 ~]# showmount -e 192.168.8.130clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)	//报错

解决办法:
1,查看服务器端口是否开启
2,关闭服务端和客户端的 firewalld 和 SELinux 防火墙

[root@dl-001 ~]# systemctl stop firewalld
[root@dl-001 ~]# getenforce
Permissive
[root@dl-001 ~]# setenforce 0

[root@dl-001 ~]# showmount -e 192.168.6.128		
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)	//报错

解决办法
重启 NFS 服务;


[root@dl-001 ~]# showmount -e 192.168.6.128
Export list for 192.168.6.128:
/home/nfstestdir 192.168.6.127/24

挂载

[root@dl-001 ~]# mount -t nfs 192.168.6.128:/home/nfstestdir /mnt/
[root@dl-001 ~]# df -h
文件系统                        容量  已用  可用 已用% 挂载点
/dev/mapper/cl-root              18G  4.2G   14G   24% /
devtmpfs                        482M     0  482M    0% /dev
tmpfs                           493M     0  493M    0% /dev/shm
tmpfs                           493M  6.8M  486M    2% /run
tmpfs                           493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                       197M  117M   81M   60% /boot
tmpfs                            99M     0   99M    0% /run/user/0
192.168.6.128:/home/nfstestdir   18G  4.6G   14G   26% /mnt

测试

[root@dl-001 ~]# cd /mnt/
[root@dl-001 mnt]# ls
[root@dl-001 mnt]# touch dl.111
[root@dl-001 mnt]# ls -l
总用量 0
-rw-r--r--. 1 user1 user1 0 1月   3 00:16 dl.111

在服务器端查看

[root@dl-001 init.d]# ls -l /home/nfstestdir/
总用量 0
-rw-r--r--. 1 user1 user1 0 1月   3 00:16 dl.111
//测试成功

NFS 配置选项

[root@dl-001 ~]# vim /etc/exports
/home/nfstestdir 192.168.6.127/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
  • rw 读写
  • ro 只读
  • sync 同步模式,内存数据实时写入磁盘
  • async 非同步模式
  • no_root_squash 客户端挂载 NFS 共享目录后,root 用户不受约束,权限很大
  • root_squash 与上面选项相对,客户端上的 root 用户收到约束,被限定成某个普通用户
  • all_squash 客户端上所有用户在使用 NFS 共享目录时都被限定为一个普通用户
  • anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的 uid 和 gid