CentOS7安装配置NFS

1,153 阅读4分钟

环境

服务端 192.168.30.10

客户端 192.168.30.11

一、安装

yum -y install nfs-utils rpcbind

二、配置

编辑配置

编辑nfs的配置文件 vim /etc/exports,默认为空,地址与括号之间不能有空格。

/mnt/nfs_file 192.168.30.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

如果有多个共享目录配置,则使用多行,一行一个配置。

编译配置

exportfs -r

配置说明

/opt/file:为共享目录

192.168.30.0/24: 可以为一个网段,一个IP,也可以是域名,域名支持通配符 如: *.qq.com

rw:read-write,可读写;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,可以在此处自行设定。

anongid:匿名用户的GID值。

三、启动 nfs

顺序启动

systemctl start rpcbind

systemctl start nfs

开机自启

systemctl enable rpcbind 

systemctl enable nfs

校验配置

[root@localhost ~]# showmount -e localhost
Export list for localhost:
/mnt/nfs_file 192.168.30.0/24

四、设置防火墙

nfs 所需服务的端口

1. portmap  port  111   udp/tcp;
2. nfsd     port  2049  udp/tcp;
3. mountd   port "随机"  udp/tcp
4. rquotad  port "随机"  udp/tcp
5. nlockmgr port "随机"  udp/tcp

编辑文件vim /etc/sysconfig/nfs,在文末加入:

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
STATD_OUTGOING_PORT=30005

重启服务

systemctl restart rpcbind
systemctl restart nfs
systemctl restart nfslock

使用rpcinfo -p查看并验证

[root@localhost ~]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  30003  mountd
    100005    1   tcp  30003  mountd
    100005    2   udp  30003  mountd
    100005    2   tcp  30003  mountd
    100005    3   udp  30003  mountd
    100005    3   tcp  30003  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  30002  nlockmgr
    100021    3   udp  30002  nlockmgr
    100021    4   udp  30002  nlockmgr
    100021    1   tcp  30002  nlockmgr
    100021    3   tcp  30002  nlockmgr
    100021    4   tcp  30002  nlockmgr
    100024    1   udp  30004  status
    100024    1   tcp  30004  status

添加iptables规则

iptables -A INPUT -s 192.168.30.0/24 -p tcp –dport 111 -j ACCEPT
iptables -A INPUT -s 192.168.30.0/24 -p udp –dport 111 -j ACCEPT
iptables -A INPUT -s 192.168.30.0/24 -p tcp –dport 2049 -j ACCEPT
iptables -A INPUT -s 192.168.30.0/24 -p udp –dport 2049 -j ACCEPT
iptables -A INPUT -s 192.168.30.0/24 -p tcp –dport 30001:30005 -j ACCEPT
iptables -A INPUT -s 192.168.30.0/24 -p udp –dport 30001:30005 -j ACCEPT

五、客户端挂载

客户端也需要安装nfs但无需启动(yum -y install nfs-utils rpcbind)

[root@localhost ~]# showmount -e 192.168.30.10    #查看服务端挂载的目录

Export list for 192.168.30.10:
/mnt/nfs_file          192.168.30.0/24

挂载

无提示 既为成功

mount -t nfs 192.168.30.10:/mnt/nfs_file /mnt/nfc_file

卸载

umount /mnt/nfc_file

注意

客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认使用UDP协议,换成TCP协议即可:

mount -t nfs 192.168.30.10:/mnt/nfs_file /mnt/nfc_file -o proto=tcp -o nolock

开机自动挂载

echo "mount -t nfs 192.168.30.10:/mnt/nfs_file /mnt/nfc_file -o proto=tcp -o nolock" >> /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local

查看挂载盘

[root@localhost ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         7.8G     0  7.8G   0% /dev
tmpfs                            7.8G  1.4M  7.8G   1% /run
/dev/vda1                        197G   53G  134G  29% /
192.168.30.10:/mnt/nfs_file      197G   66G  122G  35% /mnt/nfc_file