CentOS 7.x安装部署NFS文件共享服务器

2021-12-23 16:37:18 浏览数 (1)

一、防火墙配置

CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

代码语言:javascript复制
systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl mask firewalld

systemctl stop firewalld

yum remove firewalld

2、安装iptables防火墙

代码语言:javascript复制
yum install iptables-services #安装
代码语言:javascript复制
vi /etc/sysconfig/iptables #编辑防火墙配置文件

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1001:2001 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 1001:2001 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出
代码语言:javascript复制
systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

/usr/libexec/iptables/iptables.init restart #重启防火墙

防火墙端口说明

rpcbind使用:tcp/udp 111

nfs使用:tcp/udp 2049

mountd使用: TCP/UDP 892

status使用: TCP/UDP 1001-2001

nlockmgr使用:TCP/32803端口 UDP/32769端口

二、关闭SELINUX

代码语言:javascript复制
vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

三、安装NFS服务器

#如果是debian/ubuntu系统,使用命令安装

代码语言:javascript复制
apt-get install nfs-common nfs-kernel-server

rpcbind默认已安装

代码语言:javascript复制
yum -y install nfs-utils rpcbind #安装

vi /etc/sysconfig/nfs #编辑修改配置文件

LOCKD_TCPPORT=32803 #取消前面的注释

LOCKD_UDPPORT=32769 #取消前面的注释

MOUNTD_PORT=892 #取消前面的注释

STATD_PORT=1001 #取消前面的注释,端口修改为1001

STATD_OUTGOING_PORT=2001 #取消前面的注释,端口修改为2001

:wq! #保存退出

创建共享目录,在服务器上创建共享目录,并设置权限。

代码语言:javascript复制
mkdir -p /nfs

chmod 755 -R /nfs

vi /etc/exports #编辑共享目录,添加以下内容

/nfs 192.168.21.0/24(insecure,rw,sync,no_subtree_check,no_root_squash)

:wq! #保存退出

使配置生效

代码语言:javascript复制
exportfs -rv

如果有多个网段或主机用空格分开

  • rw 表示设置目录可读写
  • sync 表示数据会同步写入到内存和硬盘中,相反rsync表示数据会先暂存于内存中,而非直接写入到硬盘中
  • no_subtree_check 不检查目录权限,提高数据读取效率
  • no_root_squash 登入NFS主机使用分享目录的使用者
  • insecure 表示客户端请求源端口可以大于1024

启动服务(注意顺序不能错)

代码语言:javascript复制
systemctl start rpcbind

systemctl start nfs

#设置开机启动

代码语言:javascript复制
systemctl enable rpcbind

systemctl enable nfs

#关闭

代码语言:javascript复制
systemctl stop nfs

systemctl stop rpcbind

#查看nfs信息

代码语言:javascript复制
rpcinfo -p 192.168.21.8
代码语言:javascript复制
[root@master01 ~]# rpcinfo -p 192.168.21.8

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

100024 1 udp 1001 status

100024 1 tcp 1001 status

100005 1 udp 892 mountd

100005 1 tcp 892 mountd

100005 2 udp 892 mountd

100005 2 tcp 892 mountd

100005 3 udp 892 mountd

100005 3 tcp 892 mountd

100003 3 tcp 2049 nfs

100003 4 tcp 2049 nfs

100227 3 tcp 2049 nfs_acl

100003 3 udp 2049 nfs

100227 3 udp 2049 nfs_acl

100021 1 udp 32769 nlockmgr

100021 3 udp 32769 nlockmgr

100021 4 udp 32769 nlockmgr

100021 1 tcp 32803 nlockmgr

100021 3 tcp 32803 nlockmgr

100021 4 tcp 32803 nlockmgr

显示共享目录

代码语言:javascript复制
showmount -e 192.168.21.8

[root@master01 ~]# showmount -e 192.168.21.8

Export list for 192.168.21.8:

/nfs 192.168.21.0/24

cat /var/lib/nfs/etab

四、客户端配置

客户端挂载目录不需要开放nfs服务器上的端口

1.安装nfs

客户端只需要安装即可,无需启动

代码语言:javascript复制
yum -y install nfs-utils rpcbind #安装

显示共享目录

代码语言:javascript复制
showmount -e 192.168.21.8

#创建挂载目录

代码语言:javascript复制
mkdir -p /nfs

#执行挂载命令

代码语言:javascript复制
mount -t nfs -o nolock,nfsvers=3,vers=3,soft,intr,bg,rw,rsize=32768,wsize=32768 192.168.21.8:/nfs /nfs

#客户端挂载NFS服务器共享目录,第一个目录是nfs服务器共享目录,第二个目录是客户端本地目录

如果要卸载目录,执行下面命令

代码语言:javascript复制
umount /data/nfs #卸载目录

2、设置开机自动挂载目录

说明:

请勿将挂载目录写到/etc/fstab文件中,因为开机时先挂载本机磁盘再启动网络,而NFS是需要网络启动后才能挂载的

把挂载命令写入到/etc/rc.d/rc.local文件中即可。

代码语言:javascript复制
vi /etc/rc.d/rc.local #添加

mount -t nfs -o nolock,nfsvers=3,vers=3,soft,intr,bg,rw,rsize=32768,wsize=32768 192.168.21.8:/nfs /nfs

:wq! #保存退出

0 人点赞