侧边栏壁纸
博主头像
往事随风博主等级

当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地!

  • 累计撰写 11 篇文章
  • 累计创建 6 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

centos安装配置nfs服务详细步骤

往事随风
2022-09-21 / 0 评论 / 0 点赞 / 70 阅读 / 1,368 字 / 正在检测是否收录...

服务端配置

nfs客户端和服务端都安装nfs-utils包,同时自动安装rpcbind。安装后会创建nfsnobody用户和组,uid和gid都是65534。

安装nfs-utils和rpcbind

yum install nfs-utils rpcbind

配置端口

nfs除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口,以下配置将定义这些端口,以便配置防火墙

代码如下:

# vim /etc/sysconfig/nfs
#追加端口配置
MOUNTD_PORT=4001  
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004

权限说明

1、普通用户

当设置all_squash时:访客时一律被映射为匿名用户(nfsnobody)

当设置no_all_squash时:访客被映射为服务器上相同uid的用户,因此在客户端应建立与服务端uid一致的用户,否则也映射为nfsnobody。root除外,因为root_suqash为默认选项,除非指定了no_root_squash

2、root用户

当设置root_squash时:访客以root用户访问NFS服务端时,被映射为nfsnobody用户

当设置no_root_squash时:访客以root用户访问NFS服务端时,被映射为root用户。以其他用户访问时同样映射为对应uid的用户,因为no_all_squash是默认选项

选项说明

访问权限选项

  • 设置输出目录只读:ro
  • 设置输出目录读写:rw

用户映射选项

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
  • no_all_squash:与all_squash取反(默认设置);
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
  • no_root_squash:与rootsquash取反;
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

  • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
  • secure:NFS通过1024以下的安全TCP/IP端口发送。
  • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
  • no_wdelay:若有写操作则立即执行,应与sync配合使用;
  • hide:在NFS共享目录中不共享其子目录。
  • no_hide:共享NFS目录的子目录。
  • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
  • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

以nfsuser(uid=1000)创建共享目录,参数默认rw

# 创建共享目录
mkdir /data
# 设置目录权限
chmod -R 755 /data
# 编辑配置文件
 vim /etc/exports  
/data [IP地址] (rw,sync,no_root_squash)

# exportfs -r  #重载exports配置
# exportfs -v  #查看共享参数
/data           192.168.152.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

exportfs参数说明

  • -a 全部挂载或卸载 /etc/exports中的内容
  • -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
  • -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
  • -v 输出详细的共享参数

防火墙配置

# iptables -I INPUT 5 -p tcp -m tcp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 4001:4004 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 4001:4004 -j ACCEPT
# iptables-save >/etc/sysconfig/iptables

服务启动及开机启动

# 启动服务
systemctl start nfs
systemctl start rpcbind
# 设置开机启动
systemctl enable nfs
systemctl enable rpcbind

查看挂载

#查看挂载
showmount -e localhost

客户端配置

安装nfs-utils和rpcbind

yum install nfs-utils rpcbind

服务启动及开机启动

# 启动服务
systemctl start rpcbind
# 设置开机启动
systemctl enable rpcbind

查看服务端的共享目录

showmount -e [ip地址]

挂载

#新建一个目录
mkdir /data

#挂载服务端的目录
mount -t nfs [ip地址]:/data /data

#开机自动挂载
cat /etc/fstab
[ip地址]:/data    /data                   nfs defaults 0 0

# 卸载挂载的目录
umount /data

故障解决

1、nfs只能挂载为nobody

同时修改服务端、客户端/etc/idmapd.conf中的Domain为一样的值,随后重启rpcidmapd服务,或重启所有服务

2、客户端无法卸载nfs目录

umount.nfs4: /var/nfs: device is busy

执行fuser -km /var/nfs/,然后再执行umount

参考

https://www.cnblogs.com/xhomex/p/15265036.html

0

评论区