Ubuntu下nfs搭建
nfs服务器配置简单灵活,使用方便,只需要使用mount命令,像挂在文件一样将共享目录挂在到指定目录下即可.一旦挂在成功,就可以像使用本地目录一样,使用共享目录里的文件.
1. 安装nfs所需的包
$ sudo apt-get install nfs-common nfs-kernel-server
2. 创建共享目录
nfs服务器是需要一个共享目录的,随遍在什么位置都可以,只要能访问到.
示例:
$ mkdir
/home/nfs-server
3. 配置服务器参数
nfs服务器配置是出了名的简单
$ sudo vim /etc/exports
在nfs的配置文件中按如下规则添加即可:
共享目录 IP(权限1,权限2,权限3)
示例:
/home/nfs-server 192.168.1.110(rw,sync) 192.168.11.*(ro)
下面解析一下这个示例:
共享目录为: /home/nfs-server
共享人:该目录被共享给了两种类型的主机,首先以可读可写的权限共享给了
192.168.1.110主机,然后又以只读权限共享给了192.168.11网段的所有主机.
注意:每一个共享目录可以共享给多台主机,且可以为每台主机配置不同的权限.主机与主机之间以空格为间隔; 每台主机后紧跟一对小括号,没有任何空格,小括号内为共享给该主机的权限,可以设置多个权限,每个权限之间以","间隔.
也可以将多个目录共享,但是每个共享都要单独一行.
/home/mm-bj/common_cmd/connectnfs
稍后将权限列表及意义列于下方
4. 重启服务
$ sudo /etc/init.d/nfs-kernel-server restart
5. 查看共享信息
由于nfs可以设置多个共享,所以nfs提供了一条命令可以清晰明了的查看某nfs服务器的共享信息
$ showmount -e nfs-server-IP
其中nfs-server-IP为得到的nfs服务器的IP地址,以刚才设置为例,假设IP地址为192.168.1.120
$ showmount -e 192.168.1.120
Export list for
192.168.1.120:
/home/nfs-server 192.168.1.110,
192.168.11.*
从信息列表中可以看到
192.168.1.120主机将/home/nfs-server目录共享给了192.168.1.110和192.168.11.*两个网段的主机.
但每台主机的权限确无从知晓,不过并不妨碍使用
6. 连接nfs主机
依然是已上述为例:
$ mount -t nfs
192.168.1.120:/home/nfs-server /mnt
从第5步即可得知你的主机是否在nfs服务器的共享列表中,只需要按如上方式填写即可,对方主机加共享目录,两者直接以":"间隔,最后跟上要挂在的目录.
然后切换目录:
$ cd /mnt
切换成功后我们即可看到对方主机共享目录的内容了.
nfs服务器配置中的权限及意义:
参数 |
说明 |
ro |
只读访问 |
rw |
读写访问 |
sync |
所有数据在请求时写入共享 |
async |
nfs在写入数据前可以响应请求 |
secure |
nfs通过1024以下的安全TCP/IP端口发送 |
insecure |
nfs通过1024以上的端口发送 |
wdelay |
如果多个用户要写入nfs目录,则归组写入(默认) |
no_wdelay |
如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置 |
hide |
在nfs共享目录中不共享其子目录 |
no_hide |
共享nfs目录的子目录 |
subtree_check |
如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认) |
no_subtree_check |
不检查父目录权限 |
all_squash |
共享文件的UID和GID映射匿名用户anonymous,适合公用目录 |
no_all_squash |
保留共享文件的UID和GID(默认) |
root_squash |
root用户的所有请求映射成如anonymous用户一样的权限(默认) |
no_root_squash |
root用户具有根目录的完全管理访问权限 |
anonuid=xxx |
指定nfs服务器/etc/passwd文件中匿名用户的UID |
anongid=xxx |
指定nfs服务器/etc/passwd文件中匿名用户的GID |