Ubuntu下NFS服务器配置
2014-11-14 11:36
411 查看
在UBUNTU下进行NFS服务器配置,虽说有实验指导书,但由于使用的LINUX版本不一样,一个简单的NFS服务器配置都花了一天半的时间,网上很多方法都尝试了,没有效果。终于找到了一个可以解决的办法,特意记录下来,或许能帮助遇到这个问题的朋友。
首先,要把主机的防火墙关掉。并把主机当作服务器,让开发板作为客户端。
NFS服务器配置
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>2>3>4>步
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 vi /etc/exports
比如我要将我的home目录中的/home/lin/NFSshare目录与192.168.1.*的IP共享, 则在该文件末尾添加下列语句:
/home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash)
如果是用于嵌入式开发板的共享,可以是
/home/lin/NFSshare *(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.100:/home/liu /mnt
192.168.1.100是nfs服务端IP地址,可以在服务器端终端通过命令ifconfig获得.
可能出现错误,解决办法
重新$ sudo vi /etc/exports,将"192.168.1.*"换成"*",要注意就这一个星哦!修改完之后不要忘了重启一下nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart
这样修改之后,就可以看到/mnt文件下共享了/home/lin/NFSshare文件夹里的内容.测试完毕,要卸载nfs的挂载
$ sudo umount /mnt
首先,要把主机的防火墙关掉。并把主机当作服务器,让开发板作为客户端。
NFS服务器配置
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>2>3>4>步
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 vi /etc/exports
比如我要将我的home目录中的/home/lin/NFSshare目录与192.168.1.*的IP共享, 则在该文件末尾添加下列语句:
/home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash)
如果是用于嵌入式开发板的共享,可以是
/home/lin/NFSshare *(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.100:/home/liu /mnt
192.168.1.100是nfs服务端IP地址,可以在服务器端终端通过命令ifconfig获得.
可能出现错误,解决办法
重新$ sudo vi /etc/exports,将"192.168.1.*"换成"*",要注意就这一个星哦!修改完之后不要忘了重启一下nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart
这样修改之后,就可以看到/mnt文件下共享了/home/lin/NFSshare文件夹里的内容.测试完毕,要卸载nfs的挂载
$ sudo umount /mnt
相关文章推荐
- Ubuntu NFS服务器的配置
- Ubuntu 下nfs服务器的配置及mini2440的挂载
- Ubuntu NFS服务器的配置
- NFS服务器安装配置实现Ubuntu 12.04与ARM开发板文件共享
- ubuntu 配置nfs服务器
- Ubuntu配置网络文件共享服务器NFS
- Ubuntu10.04安装与配置nfs服务器(转载)
- NFS服务器安装配置实现Ubuntu 12.04与ARM文件共享
- ubuntu 11.10 nfs 服务器配置
- Ubuntu 12.04 Nfs 服务器和客户端的安装和配置
- ubuntu 下配置nfs服务器
- Ubuntu配置NFS服务器
- ubuntu下配置nfs服务器
- ubuntu nfs服务器配置
- ubuntu 8.10配置NFS服务器
- Ubuntu NFS服务器的配置(绿色为自己添加)
- ubuntu下NFS服务器的配置
- Ubuntu下配置NFS服务器
- Ubuntu14.04下配置nfs服务器方法和步骤
- ubuntu nfs服务器配置