centos安装nfs共享目录,解决目录找不到等问题
实验环境:
服务端:10.11.1.0
客户端:10.11.1.1
服务器安装的都是centos系统
服务端(10.11.1.0)
1.安装nfs和rpcbind
[root@app home]# yum install nfs-utils rpcbind
2.增加nfs配置文件
创建共享目录
[root@app home]# mkdir /home/adam/static
[root@app home]# vi /etc/exports
#重新export一次
[root@app home]#exportfs -rv
命令exportfs -rv可以不需要重启就可以使配置文件生效
在配置文件中加入需要共享的目录
/home/adam/static * (rw)
(或者,下面的没成功,报没有该文件错误,另外要注意左括号前面的空格)
/home/adam/static 192.168.0.2 (rw)
/home/adam/static:共享文件夹
192.168.0.2:可以挂载服务器目录的客户端ip
(rw):该客户端对共享的文件具有读写权限
3.设置防火墙
如果你的系统没有开启防火墙,那么该步骤可以省略。
NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。
修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:
RQUOTAD_PORT=1001
LOCKD_TCPPORT=30001
LOCKD_UDPPORT=30002
MOUNTD_PORT=1002
保存好后,将端口加入到防火墙允许策略中。执行:
firewall-cmd --zone=public --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=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent
firewall-cmd --reload
4.启动服务
systemctl start rpcbind
systemctl start nfs
加入开机启动:
systemctl enable rpcbind
systemctl enable nfs
nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。
服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:
[root@localhost ~]# showmount -e localhost
Export list for localhost:
/home/adam/static 10.11.1.0
出现上面结果表明NFS服务端配置正常。
客户端(10.11.1.1)
1.安装服务
[root@app home]# service rpcbind start
[root@app home]# service nfs start
[root@app home]# service rpcbind status
[root@app home]# service nfs status
2.查看服务端开放的共享列表
[root@app home]# showmount -e 10.11.1.0
3.创建挂载目录
mkdir /home/adam/static
4.挂载服务端的共享目录
mount -t nfs 10.11.1.0:/home/adam/static /home/adam/static
(注意这里不要用网上的mount -t nfs 10.11.1.0:/home/adam/static /home/adam/static -o nolock,nfsvers=3,vers=3
命令,我用了反正不行,报没有该目录的错)
如果要解除挂载
umount /mnt/share
5.开机自动挂载
[root@app adam]# vi /etc/fstab
10.11.1.0:/home/adam/static /home/adam/static -o
或者(上面有可能不起作用)
[root@app adam]# vi /etc/rc.local
#添加
sleep 30
mount -t nfs 10.11.1.0:/home/adam/static /home/adam/static -o
#赋予可执行权限
[root@app adam]# chmod +x /etc/rc.local
6.查看是否挂载上
[root@app adam]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 79G 1.8G 74G 3% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.4M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
10.11.1.0:/home/adam/static /home/adam/static -o 79G 1.9G 74G 3% /home/adam/static
出现最后一行说明成功了!
还有一点不明白的就是,客户端在操作共享目录下的文件时是操作的服务端的文件还是客户端的文件?
有明白的大佬可以指点一下