您的当前位置:首页正文

Ubuntu上安装及配置NFS服务

2021-11-15 来源:客趣旅游网


安装及配置NFS服务

1. 安装NFS

Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序: $ sudo apt-get install nfs-kernel-server

2. 配置NFS

a)

配置portmap

$ sudo dpkg-reconfigure portmap

对Should portmap be bound to the loopback address? 选No.

b) 配置/etc/hosts.deny

$ sudo gedit /etc/hosts.deny

(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入: ### NFS DAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL

c) 配置/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地址用户均无法访问

/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似\"mask\"的意思. 现在/etc/hosts.deny中禁止所有用户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问。

d) 重启portmap daemon

每次对/etc/hosts.deny 和 /etc/hosts.allow两文件的修改后都要重启portmap daemon。不然

修改无效。

$ sudo service portmap restart

e) 配置/etc/exports

NFS挂载目录及权限由/etc/exports文件定义。 $sudo gedit /etc/exports

比如我要将我的根目录中的/nfsroot目录让192.168.1.*的IP共享, 则在该文件末尾添加下列语句:

/nfsroot 192.168.1.*(ro,sync,no_root_squash)

然后保存退出。

/nfsroot就表示共享目录,当然,你可以随便换成自己喜欢的目录。

192.168.1.*:前面三位是你主机(NFS客户端)的ip地址(本机终端ifconfig命令就可以获得本机的ip地址)。

rw:读/写权限,只读权限的参数为ro;

sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。

no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

f) 重启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.*:/nfsroot\".

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服务。

g) nfs服务器端测试

由于nfs服务器端默认是安装了nfs客户端(nfs-common)的,所以可以在服务器端挂载共享文件夹作测试。

$sudo mount 192.168.1.100:/nfsroot /mnt

192.168.1.100是nfs服务器端IP地址,可以在服务器端终端通过命令ifconfig获得。

成功挂载后,就可以在/mnt下看到/nfsroot里的内容了。 之后卸载nfs的挂载: $sudo umount /mnt

因篇幅问题不能全部显示,请点此查看更多更全内容