Centos7配置NFS服务
因为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
如果咩咩的文章对你有帮助,您可以 请我喝牛奶