CentOS 6.5系统下安装和配置NFS服务

简介: 一、环境介绍:   服务器:centos 192.168.1.225   客户端:centos 192.168.1.226 二、安装: NFS的安装配置:centos 5 : 1 yum -y install nfs-utils portmap centos 6(在CentOS 6.

一、环境介绍:

  服务器:centos 192.168.1.225

  客户端:centos 192.168.1.226

二、安装:

NFS的安装配置:


centos 5 :

1
yum -y  install  nfs-utils portmap

centos 6(在CentOS 6.5当中,portmap服务由rpcbind负责) :

1
yum -y  install  nfs-utils rpcbind

三、服务器端配置:

1、创建共享目录:

1
[root@centos2 /] # mkdir /usr/local/test

2、NFS文件配置:

1
2
3
[root@centos2 /] # vi /etc/exports 
#增加一行:
/usr/local/test/  192.168.1.226(rw,no_root_squash,no_all_squash, sync )

:x 保存退出;

使配置生效:

1
[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值。

3、启动:

centos6:

1
2
3
4
5
6
7
8
9
10
[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 5

1
2
3
[root@centos2 /] # service portmap start
[root@centos2 /] # service nfs start
[root@centos2 /] #

四、客户端挂载:

1、创建需要挂载的目录:

1
2
[root@localhost ~] # mkdir /usr/local/test
[root@localhost ~] #

2、测试挂载:

1
2
3
4
[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,则需要在服务端关闭防火墙(稍候会详细说)。

3、挂载:

1
2
3
4
5
6
7
8
9
10
11
12
13
[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=5,mode=620)
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=4,addr=192.168.1.225,clientaddr=192.168.1.226)
[root@localhost ~] #

如果信息如上显示则挂载成功!

4、测试:

客户端生成一个文件:

1
2
3
4
5
6
[root@centos2 /] # cd /usr/local/test/
[root@centos2  test ] # echo "hello nfs test">>test
[root@centos2  test ] # ll
total 4
-rw-r--r-- 1 root root 15 Apr  9 13:24  test
[root@centos2  test ] #

服务端检查:

1
2
3
4
5
[root@centos2 /] # cd /usr/local/test/
[root@centos2  test ] # ll
total 4
-rw-r--r-- 1 root root 15 Apr  9 13:24  test
[root@centos2  test ] #

挂载成功!

五、解除挂载:

1
2
3
4
5
6
7
8
9
10
11
12
[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=5,mode=620)
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

可能用命令:

1
2
3
4
5
6
7
8
[root@localhost /] # fuser -m -v /usr/local/test
                      用户     进程号 权限   命令
/usr/local/test/ :              root       2798 ..c..  bash
                      root       2996 ..c..  su
[root@localhost /] # kill -9 2798
[root@localhost /] # kill -9 2996
[root@localhost /] # umount /usr/local/test
[root@localhost /] #

 

六、服务器端防火墙设置(NFS 开启防墙配置):

1、修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)

1
2
3
4
5
# Local services  
     mountd 1011 /tcp  #rpc.mountd  
     mountd 1011 /udp  #rpc.mountd  
     rquotad 1012 /tcp  #rpc.rquotad  
     rquotad 1012 /udp  #rpc.rquotad

2、重起Linux NFS服务

1
  service nfs restart

3、此时rpc相关端口已经被固定,可以为Linux NFS添加防火墙规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     #portmap  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p tcp --dport 111 -j ACCEPT  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p udp --dport 111 -j ACCEPT  
     #nfsd  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p tcp --dport 2049 -j ACCEPT  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p udp --dport 2049 -j ACCEPT  
     #mountd  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p tcp --dport 1011 -j ACCEPT  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p udp --dport 1011 -j ACCEPT  
     #rquotad  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p tcp --dport 1012 -j ACCEPT  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p udp --dport 1012 -j ACCEPT  
     #rpc.statd  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p tcp --dport 32768 -j ACCEPT  
     /sbin/iptables  -A INPUT -s 192.168.1.0 /254  -p udp --dport 32768 -j ACCEPT
1
2
3
4
5
6
---TCP方法成功-------------------------------------------
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1011 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1012 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32768 -j ACCEPT

客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:

1
mount  -t nfs 192.168.1.225: /usr/local/test  /usr/local/test   -o proto=tcp -o nolock

 

目录
相关文章
|
12天前
|
Oracle 关系型数据库 MySQL
centos6安装mariadb失败及解决办法
centos6安装mariadb失败及解决办法
30 4
|
11天前
|
Linux 网络安全
centOS7.3 安装启用 iptables 记录
centOS7.3 安装启用 iptables 记录
18 1
|
4天前
|
关系型数据库 MySQL Linux
通过虚拟机进行安装Centos7.0并且安装MySQL
通过虚拟机进行安装Centos7.0并且安装MySQL
22 0
|
2天前
|
Linux vr&ar C语言
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
14 2
|
6天前
|
关系型数据库 MySQL Linux
蓝易云 - CentOS7用二进制安装MySQL5.7
以上步骤即可完成在CentOS 7上通过二进制包安装MySQL 5.7。
18 2
|
11天前
|
NoSQL Linux 网络安全
基于 centOS7 的 redis 安装
基于 centOS7 的 redis 安装
46 1
|
11天前
|
关系型数据库 MySQL Linux
CentOS7.9 安装 mysql-8.0.36 踩坑小记
CentOS7.9 安装 mysql-8.0.36排错指南
227 1
|
3天前
|
关系型数据库 MySQL Linux
Linux centos 6.5 - Mysql 安装 、卸载、修改密码、忘记密码 并异常处理
Linux centos 6.5 - Mysql 安装 、卸载、修改密码、忘记密码 并异常处理
9 0
|
4天前
|
存储 关系型数据库 MySQL
CentOS上安装MySQL 8.0的详细教程
CentOS上安装MySQL 8.0的详细教程
|
10天前
|
Docker 容器
CentOS7.3 安装 docker
CentOS7.3 安装 docker
34 0