因为smb有安全漏洞,所以使用nfs进行文件共享
本次安装分为服务端和客户端

服务端

首先需要安装两个包,通常情况下,这两个包是系统自带的,可以查一下看看有没有

rpm -aq | grep nfs
rpm -aq | grep rpcbind 

没有就装

yum install nfs-utils rpcbind

修改/etc/sysconfig/nfs将下面的内容加到最后面固定端口

RQUOTAD_PORT=1001
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892

打开指定的防火墙端口,不限制来源ip

firewall-cmd --zone=public --permanent \
--add-port=111/tcp --add-port=111/udp \
--add-port=2049/tcp --add-port=2049/udp \
--add-port=1001/tcp --add-port=1001/udp \
--add-port=892/tcp --add-port=892/udp \
--add-port=32803/tcp --add-port=32803/udp \
--add-port=32769/tcp --add-port=32769/udp

systemctl restart firewalld

但是,因为目前只需要被一个ip访问,所以限制一下来源ip,那就改成这样

firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="111" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="111" protocol="udp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="2049" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="2049" protocol="udp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="1001" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="1001" protocol="udp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="892" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="892" protocol="udp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="32803" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="32803" protocol="udp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="32769" protocol="tcp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.108.5.68/32" port port="32769" protocol="udp" accept'

systemctl restart firewalld

删除规则只需要将--add替换成--remove再执行一次就可以了

共享文件夹配置

编辑/etc/exports写入需要共享的文件夹,一行一个(没有这个文件就创建)

/home/Servers/attach/attach 10.108.5.68(rw,sync,no_root_squash)

第一个是共享文件夹的绝对路径
第二个是允许访问的ip,如果允许所有ip可以用*代替,括号里的是对应的权限参数
如果有多个ip需要配置,在最后用空格隔开写进去
其中参数有这些

多个参数用,分隔对应的含义
rw读写
ro只读
sync实时写入硬盘,效率低,实时性高
async先写入缓存,再写入硬盘,效率高,断电数据可能丢失
root_squash客户端root映射为服务器的匿名用户
no_root_squash客户端root映射为服务端root

配置好了,重启服务

exportfs -rv
service rpcbind restart
service nfs restart

查看目前的共享情况和rpc监听

showmount -e
rpcinfo -p localhost

客户端

首先跟服务端一样,需要安装两个包,通常情况下,这两个包是系统自带的,可以查一下看看有没有

rpm -aq | grep nfs
rpm -aq | grep rpcbind 

没有就装

yum install nfs-utils rpcbind

启动服务

service rpcbind start
service nfs start

显示服务端的共享信息,如果显示不出来那请检查防火墙

showmount -e 10.108.5.67

进行挂载

mount -t nfs -o nolock,nfsvers=3,vers=3 10.108.5.67:/home/Servers/attach/attach /home/Servers/attach/attach

编辑/etc/fstab加入这行以便开机自动挂载(nofail在失败时不影响开机,x-systemd.device-timeout=是自动挂载超时)

10.108.5.67:/home/Servers/attach/attach /home/Servers/attach/attach nfs defaults,nofail,x-systemd.device-timeout=1000ms 0 0