首页  /  世界杯中国对巴西  /  Linux 环境下 NFS 服务安装及配置使用(终极版)

Linux 环境下 NFS 服务安装及配置使用(终极版)

世界杯中国对巴西 7139

Linux 环境下 NFS 服务安装及配置使用

服务端(10.0.0.1)客户端(10.0.0.2)

1.NFS 服务安装

1.1确认服务端系统是否已安装nfs

rpm -qa nfs-utils rpcbind

1.2安装

1.2.1有线安装

#服务端

yum install -y nfs-utils rpcbind

#客户端

yum install -y nfs-utils

1.2.2离线安装

rpcbind:

libtirpc-0.2.4-0.15.el7.x86_64.rpm

rpcbind-0.2.0-47.el7.x86_64.rpm

nfs-utils:

nfs-utils-1.3.0-0.61.el7.x86_64

tcp_wrappers-7.6-77.el7.x86_64

...

#这个依赖有点多,需要的可以联系我,就不一一列出来了

链接:https://pan.baidu.com/s/19FcmCea73mgLoMwoIr_vBQ

提取码:ylk4

安装离线包:

#安装路径下的所有rpm包

rpm -Uvh *.rpm --nodeps --force

#安装特定的rpm包

rpm -hvi dejagnu-1.4.2-10.noarch.rpm

2.NFS 配置及使用

2.1我们在服务端创建一个共享目录/data/backup/db,或者直接使用想要共享的目录,作为客户端挂载的远端入口,然后设置权限。

mkdir -p /data/backup/db

chmod 666 /data/backup/db

2.2然后,修改 NFS 配置文件/etc/exports

vim /etc/exports

/data/backup/db 10.0.0.2(rw,sync,insecure,no_subtree_check,no_root_squash)

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将

/data/backup/db 文件目录设置为允许 IP 为 10.0.0.2的客户端挂载。

2.3先启动 RPC 服务。

service rpcbind start

# 或者使用如下命令亦可

/bin/systemctl start rpcbind.service

# 查看 NFS 服务项 rpc 服务器注册的端口列表

rpcinfo -p localhost

2.4再启动nfs服务

# 启动 NFS 服务

service nfs start

# 或者使用如下命令亦可

/bin/systemctl start nfs.service

# 启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表

rpcinfo -p localhost

2.5在服务端看下是否正确加载了设置的/etc/exports配置。

showmount -e localhost

2.6关闭服务端防火墙(不建议使用,替换方法详见2.7)

2.6.1查看环境服务器的防火墙

systemctl status firewalld

2.6.2关闭防火墙

systemctl stop firewalld

2.7在服务器端配置防火墙端口

2.7.1查看nfs服务使用的端口号

rpcinfo -p

由于nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad这5个服务,需要将这5个服务的端口加到iptables里面,而nfs 和 portmapper两个服务是固定端口的,nfs为2049,portmapper为111。

2.7.2 将这mountd,nlockmgr,rquotad3个服务的端口设置为固定端口

vim /etc/services

在文件的最后一行添加:

mountd 976/tcp

mountd 976/udp

rquotad 966/tcp

rquotad 966/udp

nlockmgr 33993/tcp

nlockmgr 33993/udp

2.7.3 重启下nfs服务

/bin/systemctl restart nfs.service

2.7.4 在防火墙中开放这5个端口

vim /etc/sysconfig/iptables

执行如下命令:

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

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p tcp --dport 976 -j ACCEPT

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

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p tcp --dport 966 -j ACCEPT

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p tcp --dport 33993 -j ACCEPT

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

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p udp --dport 976 -j ACCEPT

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

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p udp --dport 966 -j ACCEPT

iptables -A INPUT -s 10.0.0.1 -m state --state NEW -p udp --dport 33993-j ACCEPT

2.7.4 重启iptables

systemctl restart iptables.service

若报错以下代码,则linux服务器未安装iptables服务,解决办法详见2.8

Failed to restart iptables.service: Unit not found.

2.8离线安装iptables

2.8.1安装

有线yum安装

安装iptables

yum install iptables -y

service iptables start

安装iptables-services

yum install iptables-services

systemctl start iptables.service

离线安装

链接:https://pan.baidu.com/s/141CcyoHOBzh8PMAXiAZUcw

提取码:e7n4

#安装路径下的所有rpm包

rpm -Uvh *.rpm --nodeps --force

#安装特定的rpm包

rpm -hvi dejagnu-1.4.2-10.noarch.rpm

2.8.2 设置开机启动:

systemctl enable iptables.service

执行以下指令

systemctl stop iptables

systemctl start iptables

systemctl restart iptables

systemctl reload iptables

2.8.3 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

2.8.3.1关闭firewall

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl mask firewalld.service

2.8.3.2 启动设置防火墙

systemctl enable iptables

systemctl start iptables

2.8.3.3 查看防火墙状态

systemctl status iptables

2.8.3.4 编辑防火墙,增加端口

vi /etc/sysconfig/iptables

添加如下行

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

2.8.4 重启配置,重启系统

systemctl restart iptables.service

#重启防火墙使配置生效

systemctl enable iptables.service

#设置防火墙开机启动

3.NFS 测试

3.1最后,在另一台 Linux 虚拟机上测试一下,是否能够正确挂载吧。首先,我们可以在客户端查看下 NFS 服务端 (服务端 IP 为:10.0.0.1) 设置可共享的目录信息。

showmount -e 10.0.0.1

3.2然后,在客户端创建挂在目录/share

mkdir -p /share

3.3最后,挂载远端目录到本地/share目录。

mount 10.0.0.1:/data/share /share

df -h | grep 10.0.0.1

3.4在客户端测试是否能访问服务器端/data/backup/db目录下的文件

ll /share

3.5最后,如果客户端要卸载 NFS 挂载的话,使用如下命令即可。

umount /share