[root@localhost file]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
服务端:10.198.1.165
客户端:10.198.1.166
配置前先统一uid和gid,参考2022年4月11日补充
[root@localhost file]# rpm -qa|grep nfs
nfs-utils-1.3.0-0.61.el7.x86_64
libnfsidmap-0.25-19.el7.x86_64
[root@localhost file]#
没有的话需要进行安装
yum install nfs-utils
yum install libnfsidmap
日志
设置共享目录,并赋予读写权限
mkdir /home/file
chmod -R 777 /home/file
[root@localhost init.d]# vi /etc/exports
/home/file 10.198.1.166(rw,insecure)
/home/file是服务器端要共享出来的目录,
10.198.1.166是客户端的ip,
rw代表客户端可以对共享目录进行读写操作,
insecure 一个安全选项, 如果nfs服务端口号小于1024则可以不添加这个选项, 否则不添加的话, 是无法访问的.其他主机访问的话就会被拒绝.
附:
2021年1月11日补充问题
客户端挂载报错
[root@localhost nrms]# mount 10.198.1.165:/home/file /home/file
mount.nfs: access denied by server while mounting 10.198.40.165:/home/file
后来配置文件改为如下重启可以了
/home/file *(rw,insecure)
[root@localhost file]# service nfs restart
systemctl start nfs
启动NFS服务。
需要开放端口或停闭防火墙,二取其一
方案一:停闭防火墙
systemctl stop firewalld
适用个人环境或要求不高环境
方案二:开放端口
在设置了防火墙的环境中使用NFS,需要在防火墙上打开如下端口:
[root@localhost init.d]# rpcinfo -p localhost
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
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 46315 nlockmgr
100021 3 udp 46315 nlockmgr
100021 4 udp 46315 nlockmgr
100021 1 tcp 37699 nlockmgr
100021 3 tcp 37699 nlockmgr
100021 4 tcp 37699 nlockmgr
100024 1 udp 38048 status
100024 1 tcp 37274 status
100005 1 udp 20048 mountd
100005 2 udp 20048 mountd
100005 3 udp 20048 mountd
[root@localhost init.d]#
根据防火墙和安全策略不同用不同命令开通相应端口
iptables
/sbin/iptables -I INPUT -p tcp --dport 111 -j ACCEPT
/sbin/iptables -I INPUT -p udp --dport 111 -j ACCEPT
firewall
firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
在客户端创建一个目录用来挂载共享目录,设置挂载目录,并赋予读写权限
mkdir /home/file
chmod -R 777 /home/file
[root@localhost file]# showmount -e 10.198.1.165
Export list for 10.198.1.165:
/irmsdate/file 10.198.1.166
[root@localhost file]#
以下情况就是服务端口没开,去服务端开端口
[root@localhost ~]# showmount -e 10.198.1.165
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
#mount服务端口没开:
rpc mount export: RPC: Unable to receive; errno = No route to host
命令格式:# mount NFS服务器ip:共享目录 本地挂载点目录
mount 10.198.1.165:/home/file /home/file
附:
挂载有个报错,这个是原来这个做了nfs服务器,停了nfs好了
Message from syslogd@localhost at Jan 12 05:12:18 ...
kernel:NMI watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [migration/3:24]
rm: 无法删除或资源忙
今天准备重新挂载到新的nfs服务器,结果删除文件链接用了
rm -rf file/ 最后多了个斜杠,直接把原服务的内容都删了,还好不是正式,下次谨记。
另外提示已经mount
先查看资源占用情况,
fuser -m -v /data/
查到进程id,杀掉进程,重新umount或mount
umount /data/
mount 10.198.1.165:/home/file /home/file
今天出现的问题是生成的文件在其他服务器客户端无法访问,显示权限是数字
如下:
[yyq@yyq download]$ ll
total 176272
-rwxrwxrwx 1 1005 1005 0 Apr 11 18:09 1
-rwxrwxrwx 1 1005 1005 0 Apr 11 18:09 2
这个经查,是两台服务器用户uid,组的gid不一致导致
查看两台服务器用户信息
vi /etc/passwd
主服务器
oracle:x:5301:3302::/home/oracle:/bin/bash
yyq:x:1005:1005::/data/yyq:/bin/bash
客户端服务器
oracle:x:5301:3302::/home/oracle:/bin/bash
yyq:x:5302:5302::/data/yyq:/bin/bash
主服务器1的uid和gid都是1005,但服务器2同用户的uid和gid是5302,所以1005传到服务器2没有找到对应的用户,只能显示数字
解决方法:杀掉所有进程,修改用户uid和gid
1.到服务器2杀掉所有yyq用户启动的进程
ps -ef|grep yyq
kill -9 xxx
2.修改yyq的uid和gid
##修改uid
usermod -u 1005 yyq
##修改gid
groupmod -g 1005 yyq
3.批量修改原有文件权限
find / -user 5302 -exec chown -h foo {} \;
find / -group 5302 -exec chgrp -h foo {} \;
1.Linux服务器之间如何设置共享目录
2.rhel7配置NFS时出现clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) 的问题
3.centos7下的nfs配置
4.Centos firewalld开放端口
5.linux与linux之间共享目录
6.NFS共享目录配置
7.nfs挂载mount.nfs: access denied by server while mounting解决方法
8.Linux中修改用户UID和组GID的方法