Ubuntu上NFS的安装配置
2013-10-10 10:12
190 查看
Cited from: http://blog.csdn.net/armeasy/archive/2010/08/09/5799837.aspx
NFS 用于 Linux 主机访问网络中其他 Linux 主机上的共享资源。 NFS 的原理是在客户端上通过网络将远程主机共享文件系统以挂载 (Mount) 的方式加入本机的文件系统,之后的操作就如同在本机上一样。
NFS 服务器 ( 宿主机 )
1. 安装 NFS
Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:
$ sudo apt-get install nfs-kernel-server
( 安装 nfs-kernel-server 时, apt 会自动安装 nfs-common 和 portmap )
这样,宿主机就相当于 NFS Server 。
2. 配置 NFS
1) 配置 portmap
方法 1: 编辑 /etc/default/portmap, 将 -i
127.0.0.1 去掉 .
方法 2:
$ sudo dpkg-reconfigure portmap
对 Should portmap be bound to the loopback address? 选 N.
2) 配置 /etc/hosts.deny
$ sudo gedit /etc/hosts.deny
(禁止任何 host (主机)能和你的 NFS 服务器进行 NFS 连接 ) ,加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
3) 配 置 /etc/hosts.allow
$ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的 NFS 服务器建立连接。下列步骤将允许任何 IP 地址以 192.168.1 开头的主机(连接到 NFS 服务器上),也可以指定特定的 IP 地址。
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1.
蓝色文字可略过
起用保护机制
上面设置了只要在 192.168.1. *这个网段的所有 IP 地址用户都可以访问共享目录,但我只想让一个 IP 地址访问,比如 192.168.1.101 那么就可以这样设置了。
可以通过设定 /etc/hosts.deny 和 /etc/hosts.allow 文件来限制网络服务的存取权限。
***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
***/etc/hosts.allow***
portmap:192.168.1.101
lockd:192.168.1.101
mountd:192.168.1.101
rquotad:192.168.1.101
statd:192.168.1.101
同时使用这两个文件就会使得只有 ip 为 192.168.1.101 的机器使用 NFS 服务。你的 target
board 的 ip 地址设定为 192.168.1.101 ,这样就可以了。
/etc/hosts.deny 和 /etc/hosts.allow 设置对 portmap 的访问 . 采用这两个配置文件有点类似 "mask" 的意思 . 现在 /etc/hosts.deny 中禁止所有用户对 portmap 的访问 . 再在 /etc/hosts.allow 中允许某些用户对 portmap 的访问。
4 )重启 portmap daemon
每次对 /etc/hosts.deny 和 /etc/hosts.allow 两文件的修改后都要重启 portmap
daemon 。不然修改无效。
$ sudo /etc/init.d/portmap restart
5 )配置 /etc/exports
NFS 挂载目录及权限由 /etc/exports 文件定义。
$sudo
gedit /etc/exports
比如我要将将我的 home 目录中的 /home/lin/NFSshare 目录让 192.168.1.* 的 IP 共享 , 则在该文件末尾添加下列语句:
/home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash)
然后保存退出。
/home/lin/NFSshare 就表示共享目录,当然,你可以随便换成自己喜欢的目录。
192.168.1. * : 前面三位是你主机( NFS 客户端)的 ip 地址(本机终端 ifconfig 命令就可以获得本机的 ip 地址)。
rw : 读 / 写权限,只读权限的参数为 ro ;
sync :数据同步写入内存和硬盘,也可以使用 async ,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash : NFS 服务器共享目录用户的属性,如果用户是 root ,那么对于这个共享目录来说就具有root 的权限。
6) 重启 nfs 服务
$ sudo /etc/init.d/nfs-kernel-server restart
执行这个命令的时候可能会提示一些错误,如下:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... exportfs:
/etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.*:/home/lin/NFSshare".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
[ OK ]
* Starting NFS kernel daemon [ OK ]
我不知道具体原因,不用管,不影响后面的使用。
注意: 每次对 /etc/exports 文件的修改,都要重启一下 nfs 服务。
7 ) nfs 服务器端测试
由于 nfs 服务器端默认是安装了 nfs 客户端 (nfs-common) 的,所以可以在服务器端挂载共享文件夹作测试。
$sudo mount 192.168.1.160:/home/lin/NFSshare
/mnt
192.168.1.160 是 nfs 服务器端 IP 地址,可以在服务器端终端通过命令 ifconfig 获得。
有可能会出现错误
$mount 192.168.1.160:/home/lin/NFSshare /mnt
mount.nfs: access denied by server while mounting 192.168.1.160:/home/lin/NFSshare
在 nfs 客户端执行上述命令,出现同样的错误。这个错误的意思是客户端地址不在 NFS 所允许的地址范围之内,但无论服务器端还是客户端 IP 都是 192.168.1.* 啊!
解决办法
重新 $sudo gedit /etc/exports ,将 “
192.168.1. * ” 换成 “ * ” ,要注意就这一个星星哦!修改完之后不要忘了重启一下 nfs 服务
$ sudo /etc/init.d/nfs-kernel-server restart
这样修改之后,就可以看到 /mnt 文件下共享了 /home/lin/NFSshare 文件夹里的内容。测试完毕,要卸载nfs 的挂载
$sudo umount /umt
NFS 客户端
1. 安装 NFS
客户端需要安装 n fs 客户端程序 (nfs-common)
$ sudo apt-get install nfs-commmon
2.nfs 挂载
挂载服务器端共享文件夹 ( 假设服务器端 IP 地址为: 192.168.1.160 ,将 /home/lin/NFSshare 挂载到 /mnt)
$ sudo mount 192.168.1.160:/home/lin/NFSshare /mnt
查看 NFS server 的 export
list
$ showmount -e 192.168.1.160
Export list for 192.168.1.160:
/home/lin/NFSshare 192.168.1.139
$ df 看看结果
打开文件夹 /mnt ,可以看到实际访问到了服务器端的 /home/lin/NFSshare 文件夹
使用完 NFS 后可以卸载 NFS 挂载。
$ sudo umount /mnt
与 NFS 相关的几个文件
1, /sbin/exportfs
维护 NFS 的资源共享 . 可以通过它重新设定 /etc/exports 的共享目录 , 卸载 NFS
Server 共享的目录或者重新共享等 .
2, /usr/sbin/showmount
用在 NFS Server 端,而 showmount 则主要用在 Client 端 .
showmount 可以用來查看 NFS 共享的目录资源 .
3, /var/lib/nfs/xtab
NFS 的记录文档 : 通过它可以查看有哪些 Client 连接到 NFS 主机的记录 .
下面这几个并不直接负责 NFS, 实际上它们负责所有的 RPC
4, /etc/default/portmap
实际上 , portmap 负责映射所有的 RPC 服务端口 , 它的内容非常非常之简单 ( 后面详述 )
5, /etc/hosts.deny
设定拒绝 portmap 服务的主机
6, /etc/hosts.allow
设定允许 portmap 服务的主机
7 , /etc/exports
对 NFS 卷的访问是由 exports 来批准 , 它枚举了若干有权访问 NFS 服务器上文件系统的主机名。/etc/exports 实际上就是 nfs 服务器的核心配置文件了 . 鸟哥的 Linux私房菜 列举了一些 exports 文件的写法。
除了编辑 /etc/exports 文件这种方法外, Ubuntu 还提供图形管理工具 ——“ 共享的文件件 ” ,可以用它来进行 NFS 服务器的维护和设置工作。
( 1 )打开 “ 共享的文件件 ”
第一种方法: “ 系统 ”——“ 系统管理 ”——“ 共享的文件夹 ” (我的 Ubuntu8.10 没有)
第二种方法:终端 $
shares-admin
( 2 )要想修改,首先就要 “ 解锁 ” 。
( 3 )可以看到之前 /home/lin/NFSshare 在列表内,其实 “ 共享的文件夹 ” 不过是 /etc/exports 图形化。
(4) 点 “ 添加 ” 添加一个新的共享文件夹
选择 “Unix 网络 (NFS)“ 。因为这是 Linux 之间的共享;如果是 Linux 和 Windows 之间的共享,选择“Windows 网络 (SMB)” 。
( 5 )再点 “ 添加 “ ,可以设置 ” 指定主机名 ”,“ 指定 IP 地址 ” , “ 指定网络 ” 。
(6) 设置完毕之后就可以关闭 “ 共享的文件夹 ” ,打开 /etc/exports 可以看到,相应的语句加入到了文件里。
参考资料:
1) 在 ubuntu7.10 下配置 nfs 并挂载共享目录到目标板上
http://hi.baidu.com/lmzzyw/blog/item/a1582e3552985b1590ef39e1.html
2)Ubuntu 上 nfs 的安装配置
http://hi.baidu.com/wangy0919/blog/item/79e726c68c1efc199d163d98.html
3)ubuntu 测试本机 nfs 出错: mount.nfs:access
denied by server while mounting
http://hi.baidu.com/dsfire/blog/item/100386f0b98b52a7a40f52c6.html
NFS 用于 Linux 主机访问网络中其他 Linux 主机上的共享资源。 NFS 的原理是在客户端上通过网络将远程主机共享文件系统以挂载 (Mount) 的方式加入本机的文件系统,之后的操作就如同在本机上一样。
NFS 服务器 ( 宿主机 )
1. 安装 NFS
Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:
$ sudo apt-get install nfs-kernel-server
( 安装 nfs-kernel-server 时, apt 会自动安装 nfs-common 和 portmap )
这样,宿主机就相当于 NFS Server 。
2. 配置 NFS
1) 配置 portmap
方法 1: 编辑 /etc/default/portmap, 将 -i
127.0.0.1 去掉 .
方法 2:
$ sudo dpkg-reconfigure portmap
对 Should portmap be bound to the loopback address? 选 N.
2) 配置 /etc/hosts.deny
$ sudo gedit /etc/hosts.deny
(禁止任何 host (主机)能和你的 NFS 服务器进行 NFS 连接 ) ,加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
3) 配 置 /etc/hosts.allow
$ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的 NFS 服务器建立连接。下列步骤将允许任何 IP 地址以 192.168.1 开头的主机(连接到 NFS 服务器上),也可以指定特定的 IP 地址。
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1.
蓝色文字可略过
起用保护机制
上面设置了只要在 192.168.1. *这个网段的所有 IP 地址用户都可以访问共享目录,但我只想让一个 IP 地址访问,比如 192.168.1.101 那么就可以这样设置了。
可以通过设定 /etc/hosts.deny 和 /etc/hosts.allow 文件来限制网络服务的存取权限。
***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
***/etc/hosts.allow***
portmap:192.168.1.101
lockd:192.168.1.101
mountd:192.168.1.101
rquotad:192.168.1.101
statd:192.168.1.101
同时使用这两个文件就会使得只有 ip 为 192.168.1.101 的机器使用 NFS 服务。你的 target
board 的 ip 地址设定为 192.168.1.101 ,这样就可以了。
/etc/hosts.deny 和 /etc/hosts.allow 设置对 portmap 的访问 . 采用这两个配置文件有点类似 "mask" 的意思 . 现在 /etc/hosts.deny 中禁止所有用户对 portmap 的访问 . 再在 /etc/hosts.allow 中允许某些用户对 portmap 的访问。
4 )重启 portmap daemon
每次对 /etc/hosts.deny 和 /etc/hosts.allow 两文件的修改后都要重启 portmap
daemon 。不然修改无效。
$ sudo /etc/init.d/portmap restart
5 )配置 /etc/exports
NFS 挂载目录及权限由 /etc/exports 文件定义。
$sudo
gedit /etc/exports
比如我要将将我的 home 目录中的 /home/lin/NFSshare 目录让 192.168.1.* 的 IP 共享 , 则在该文件末尾添加下列语句:
/home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash)
然后保存退出。
/home/lin/NFSshare 就表示共享目录,当然,你可以随便换成自己喜欢的目录。
192.168.1. * : 前面三位是你主机( NFS 客户端)的 ip 地址(本机终端 ifconfig 命令就可以获得本机的 ip 地址)。
rw : 读 / 写权限,只读权限的参数为 ro ;
sync :数据同步写入内存和硬盘,也可以使用 async ,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash : NFS 服务器共享目录用户的属性,如果用户是 root ,那么对于这个共享目录来说就具有root 的权限。
6) 重启 nfs 服务
$ sudo /etc/init.d/nfs-kernel-server restart
执行这个命令的时候可能会提示一些错误,如下:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... exportfs:
/etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.*:/home/lin/NFSshare".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
[ OK ]
* Starting NFS kernel daemon [ OK ]
我不知道具体原因,不用管,不影响后面的使用。
注意: 每次对 /etc/exports 文件的修改,都要重启一下 nfs 服务。
7 ) nfs 服务器端测试
由于 nfs 服务器端默认是安装了 nfs 客户端 (nfs-common) 的,所以可以在服务器端挂载共享文件夹作测试。
$sudo mount 192.168.1.160:/home/lin/NFSshare
/mnt
192.168.1.160 是 nfs 服务器端 IP 地址,可以在服务器端终端通过命令 ifconfig 获得。
有可能会出现错误
$mount 192.168.1.160:/home/lin/NFSshare /mnt
mount.nfs: access denied by server while mounting 192.168.1.160:/home/lin/NFSshare
在 nfs 客户端执行上述命令,出现同样的错误。这个错误的意思是客户端地址不在 NFS 所允许的地址范围之内,但无论服务器端还是客户端 IP 都是 192.168.1.* 啊!
解决办法
重新 $sudo gedit /etc/exports ,将 “
192.168.1. * ” 换成 “ * ” ,要注意就这一个星星哦!修改完之后不要忘了重启一下 nfs 服务
$ sudo /etc/init.d/nfs-kernel-server restart
这样修改之后,就可以看到 /mnt 文件下共享了 /home/lin/NFSshare 文件夹里的内容。测试完毕,要卸载nfs 的挂载
$sudo umount /umt
NFS 客户端
1. 安装 NFS
客户端需要安装 n fs 客户端程序 (nfs-common)
$ sudo apt-get install nfs-commmon
2.nfs 挂载
挂载服务器端共享文件夹 ( 假设服务器端 IP 地址为: 192.168.1.160 ,将 /home/lin/NFSshare 挂载到 /mnt)
$ sudo mount 192.168.1.160:/home/lin/NFSshare /mnt
查看 NFS server 的 export
list
$ showmount -e 192.168.1.160
Export list for 192.168.1.160:
/home/lin/NFSshare 192.168.1.139
$ df 看看结果
打开文件夹 /mnt ,可以看到实际访问到了服务器端的 /home/lin/NFSshare 文件夹
使用完 NFS 后可以卸载 NFS 挂载。
$ sudo umount /mnt
与 NFS 相关的几个文件
1, /sbin/exportfs
维护 NFS 的资源共享 . 可以通过它重新设定 /etc/exports 的共享目录 , 卸载 NFS
Server 共享的目录或者重新共享等 .
2, /usr/sbin/showmount
用在 NFS Server 端,而 showmount 则主要用在 Client 端 .
showmount 可以用來查看 NFS 共享的目录资源 .
3, /var/lib/nfs/xtab
NFS 的记录文档 : 通过它可以查看有哪些 Client 连接到 NFS 主机的记录 .
下面这几个并不直接负责 NFS, 实际上它们负责所有的 RPC
4, /etc/default/portmap
实际上 , portmap 负责映射所有的 RPC 服务端口 , 它的内容非常非常之简单 ( 后面详述 )
5, /etc/hosts.deny
设定拒绝 portmap 服务的主机
6, /etc/hosts.allow
设定允许 portmap 服务的主机
7 , /etc/exports
对 NFS 卷的访问是由 exports 来批准 , 它枚举了若干有权访问 NFS 服务器上文件系统的主机名。/etc/exports 实际上就是 nfs 服务器的核心配置文件了 . 鸟哥的 Linux私房菜 列举了一些 exports 文件的写法。
除了编辑 /etc/exports 文件这种方法外, Ubuntu 还提供图形管理工具 ——“ 共享的文件件 ” ,可以用它来进行 NFS 服务器的维护和设置工作。
( 1 )打开 “ 共享的文件件 ”
第一种方法: “ 系统 ”——“ 系统管理 ”——“ 共享的文件夹 ” (我的 Ubuntu8.10 没有)
第二种方法:终端 $
shares-admin
( 2 )要想修改,首先就要 “ 解锁 ” 。
( 3 )可以看到之前 /home/lin/NFSshare 在列表内,其实 “ 共享的文件夹 ” 不过是 /etc/exports 图形化。
(4) 点 “ 添加 ” 添加一个新的共享文件夹
选择 “Unix 网络 (NFS)“ 。因为这是 Linux 之间的共享;如果是 Linux 和 Windows 之间的共享,选择“Windows 网络 (SMB)” 。
( 5 )再点 “ 添加 “ ,可以设置 ” 指定主机名 ”,“ 指定 IP 地址 ” , “ 指定网络 ” 。
(6) 设置完毕之后就可以关闭 “ 共享的文件夹 ” ,打开 /etc/exports 可以看到,相应的语句加入到了文件里。
参考资料:
1) 在 ubuntu7.10 下配置 nfs 并挂载共享目录到目标板上
http://hi.baidu.com/lmzzyw/blog/item/a1582e3552985b1590ef39e1.html
2)Ubuntu 上 nfs 的安装配置
http://hi.baidu.com/wangy0919/blog/item/79e726c68c1efc199d163d98.html
3)ubuntu 测试本机 nfs 出错: mount.nfs:access
denied by server while mounting
http://hi.baidu.com/dsfire/blog/item/100386f0b98b52a7a40f52c6.html
相关文章推荐
- 安装Ubuntu nfs配置系统
- Ubuntu 14.04下NFS安装配置
- Ubuntu 14.04下NFS安装配置
- ubuntu下NFS服务器安装及配置
- ubuntu 11.10 安装配置NFS
- 学习笔记_安装和配置NFS服务(For Ubuntu)
- ubuntu下配置pxe启动网络安装系统(pxe+dhcp+tftp+nfs)
- Ubuntu 9.10 NFS server & client 配置安装
- ubuntu nfs-server/client安装配置
- Ubuntu上nfs的安装配置
- Ubuntu 12.04下NFS安装配置图解
- Linux下配置安装NFS-ubuntu和 fc4
- Ubuntu配置安装NFS服务器
- Ubuntu10.10中NFS服务的安装及配置
- 讲解安装Ubuntu nfs配置系统
- [转]讲解安装Ubuntu nfs配置系统
- 【个人笔记重点,不作为参考】主题:ubuntu 14.04 nfs安装与配置
- Ubuntu 12.04 LTS nfs-util 安装及配置手记
- Ubuntu 12.04下NFS安装配置图解
- Ubuntu 14.04下NFS安装配置