不知道谁装的服务器,默认自带,以下内容摘自互联网,配置部分按教程执行成功 一、环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二、安装: NFS的安装配置:
centos :
yum -y install nfs-utils portmap centos (在CentOS .3当中,portmap服务由rpcbind负责) :
yum -y install nfs-utils rpcbind 三、服务器端配置: 、创建共享目录:
[root@centos2 /]# mkdir /usr/local/test 、NFS文件配置:
[root@centos2 /]# vi /etc/exports
#增加一行:
/usr/local/test/ 192.168.1.226(rw,no_root_squash,no_all_squash,sync) :x保存退出; 使配置生效:
[root@centos2 /]# exportfs -r 注:配置文件说明: /usr/local/test/ 为共享的目录,使用绝对路径。
192.168.1.226(rw,no_root_squash,no_all_squash,sync) 为客户端的地址及权限,地址可以是一个网段,一个IP地址或者是一个域名,域名支持通配符,如:*.youxia.com,地址与权限中间没有空格,权限说明:
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。 、启动: centos6: [root@centos2 /]# service rpcbind start
Starting rpcbind: [ OK ]
[root@centos2 /]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
[root@centos2 /]# centos
[root@centos2 /]# service portmap start
[root@centos2 /]# service nfs start
[root@centos2 /]# 四、客户端挂载: 、创建需要挂载的目录:
[root@localhost ~]# mkdir /usr/local/test
[root@localhost ~]# 、测试挂载:
[root@localhost ~]# showmount -e 192.168.1.225
Export list for 192.168.1.225:
/usr/local/test 192.168.1.226
[root@localhost ~]# 如果显示:rpc mount export: RPC: Unable to receive; errno = No route to host,则需要在服务端关闭防火墙(稍候会详细说)。 、挂载: [root@localhost ~]# mount -t nfs 192.168.1.225:/usr/local/test /usr/local/test
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=,mode=)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.1.225:/usr/local/test on /usr/local/test type nfs (rw,vers=,addr=192.168.1.225,clientaddr=192.168.1.226)
[root@localhost ~]# 如果信息如上显示则挂载成功! 、测试: 客户端生成一个文件:
[root@centos2 /]# cd /usr/local/test/
[root@centos2 test]# echo "hello nfs test">>test
[root@centos2 test]# ll
total
-rw-r--r-- root root Apr : test
[root@centos2 test]# 服务端检查:
[root@centos2 /]# cd /usr/local/test/
[root@centos2 test]# ll
total
-rw-r--r-- root root Apr : test
[root@centos2 test]# 挂载成功! 五、解除挂载: [root@localhost ~]# umount /usr/local/test
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=,mode=)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
[root@localhost ~]# 如果遇到:umount.nfs: /usr/local/test: device is busy 可能用命令: [root@localhost /]# fuser -m -v /usr/local/test
用户 进程号 权限 命令
/usr/local/test/: root ..c.. bash
root ..c.. su
[root@localhost /]# kill - [root@localhost /]# kill - [root@localhost /]# umount /usr/local/test
[root@localhost /]# 六、服务器端防火墙设置(NFS 开启防墙配置): 、修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用) # Local services
mountd /tcp #rpc.mountd
mountd /udp #rpc.mountd
rquotad /tcp #rpc.rquotad
rquotad /udp #rpc.rquotad 、重起Linux NFS服务 service nfs restart 、此时rpc相关端口已经被固定,可以为Linux NFS添加防火墙规则 #portmap
/sbin/iptables -A INPUT -s 192.168.1.0/ -p tcp --dport -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.0/ -p udp --dport -j ACCEPT
#nfsd
/sbin/iptables -A INPUT -s 192.168.1.0/ -p tcp --dport -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.0/ -p udp --dport -j ACCEPT
#mountd
/sbin/iptables -A INPUT -s 192.168.1.0/ -p tcp --dport -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.0/ -p udp --dport -j ACCEPT
#rquotad
/sbin/iptables -A INPUT -s 192.168.1.0/ -p tcp --dport -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.0/ -p udp --dport -j ACCEPT
#rpc.statd
/sbin/iptables -A INPUT -s 192.168.1.0/ -p tcp --dport -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.0/ -p udp --dport -j ACCEPT ---TCP方法成功-------------------------------------------
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT 客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可: mount -t nfs 192.168.1.225:/usr/local/test /usr/local/test -o proto=tcp -o nolock ------------------------------------------------------------------------------------------------------------
问题:umount 时发生如下错误:
$ sudo umount /mnt/
/mnt was not found in /proc/mounts
/mnt was not found in /proc/mounts
解决:
umount 时使用 -l 命令。
$ sudo umount -l /mnt/
参考:
man umount:
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)
来源于:https://www.lvtao.net/server/centos-nfs.html