简介
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
Server端IP:192.168.0.1
0.查看linux系统信息:
Server:
[root@app home]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
Client:
[root@app home]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
1.查看是否安装了nfs和rpcbind
[root@app home]# rpm -aq | grep nfs [root@app home]# rpm -aq | grep rpcbind
rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的
2.安装nfs和rpcbind
[root@app home]# yum install nfs-utils rpcbind
3.增加nfs配置文件
[root@app home]# vi /etc/exports #重新export一次 [root@app home]#exportfs -rv
添加共享信息:
/home/adam/static 192.168.0.2(rw)
/home/adam/static:共享文件夹
192.168.0.2:可以挂载服务器目录的客户端ip
(rw):该客户端对共享的文件具有读写权限
4.配置hosts文件
[root@app home]# vi /etc/hosts
5.启动nfs和rpcbind服务
在SUSE上,服务名为nfsserver,不是nfs。
必须先启动rpcbind,再启动nfs,才能让NFS在rpcbind上注册成功
[root@app home]# service rpcbind start [root@app home]# service nfs start
查看启动状态:
[root@app home]# service rpcbind status [root@app home]# service nfs status
注意,RPC的状态是Active: active (running);而NFS的状态是Active: active (exited)。
查看自己共享的服务:
[root@app home]# showmount -e
/home/adam/static 192.168.0.2
6.查看 RPC 服务的注册状况
[root@app home]# rpcinfo -p localhost
NFS服务使用的111和2049端口是固定的,mountd端口是动态的,需要固定,然后在防火墙放行。
6.1固定端口
[root@app home]# vi /etc/sysconfig/nfs
2.重启nfs和rpcbind:
[root@app home]# service rpcbind restart [root@app home]# service nfs restart
(端口并未修改,reboot系统后才修改)
6.2防火墙放行端口
1.查看防火墙是否开启:
[root@app home]# firewall-cmd --state
2.设置防火墙(如果访问ip没有限制,就不需要添加-s ip地址):
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 111 -j ACCEPT [root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 111 -j ACCEPT [root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 2049 -j ACCEPT [root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 2049 -j ACCEPT [root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 30001:30004 -j ACCEPT [root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 30001:30004 -j ACCEPT [root@app home]# service iptables save
[root@app home]# service iptables save The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
解决方法:
[root@app home]# systemctl stop firewalld [root@app home]# systemctl mask firewalld #安装iptables services [root@app home]# yum install iptables-services #设置开机启动 [root@app home]# systemctl enable iptables #重启iptables service [root@app home]# systemctl restart iptables #执行保存配置命令 [root@app home]#service iptables save
Client端IP:192.168.0.2
1.客户端服务器也需要安装nfs 和 rpcbind 服务,参考服务端,启动,检查服务是否正常。
[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.显示NFS服务器共享目录列表
[root@app home]# showmount -e 192.168.0.1
[root@app home]# showmount #显示NFS客户端信息 [root@app home]# showmount 192.168.0.1 #显示指定NFS服务器连接NFS客户端的信息 [root@app home]# showmount -e #显示输出目录列表 [root@app home]# showmount -e 192.168.1.1 #显示NFS服务器共享目录列表 [root@app home]# showmount -d #显示被挂载的共享目录 [root@app home]# showmount -a #显示客户端信息和共享目录 [root@app home]# showmount -a 192.168.1.1 #显示指定NFS服务器的客户端信息和共享目录
3.创建挂载目录
[root@app adam]# mkdir static
4.挂载服务端的共享目录
[root@app adam]# mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.0.1:/home/adam/static /home/adam/static
查看挂载的状态
[root@app adam]# mount | grep nfs
4.1.设置客户端开机自动挂载服务端NFS服务(这种方式可能失败,使用7.nfs开机自动挂载方法)
[root@app adam]# vi /etc/fstab 192.168.0.1:/home/adam/static /home/adam/static nfs defaults 0 0
5.测试
[root@app adam]# cd static [root@app static]# ll #可以看到服务端共享目录中文件
6.开机启动NFS服务
[root@app adam]# systemctl list-unit-files | grep nfs proc-fs-nfsd.mount static var-lib-nfs-rpc_pipefs.mount static nfs-blkmap.service disabled nfs-config.service static nfs-idmap.service static nfs-idmapd.service static nfs-lock.service static nfs-mountd.service static nfs-rquotad.service disabled nfs-secure.service static nfs-server.service disabled nfs-utils.service static nfs.service disabled#开机不启动 nfslock.service static nfs-client.target enabled [root@app adam]# ll #systemctl enable nfs
rpcbind不需要开机启动
[root@app adam]# systemctl list-unit-files | grep rpcbind rpcbind.service indirect#间接启动(无法编辑) rpcbind.socket enabled rpcbind.target static
7.nfs开机自动挂载
#系统服务未完全启动,挂载会失败,在系统启动以后,再挂载 [root@app adam]# vi /etc/rc.local #添加 sleep 30 mount -t nfs 192.168.0.1:/home/adam/static /home/adam/static
#赋予可执行权限 [root@app adam]# chmod +x /etc/rc.local
查看是否挂载上
[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 192.168.0.1:/home/adam/static 79G 1.9G 74G 3% /home/adam/static tmpfs 799M 0 799M 0% /run/user/0
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226954.html原文链接:https://javaforall.net
