环境
服务端 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