一、安装NFS 命令:sudo apt-get install nfs-kernel-server 可选命令: sudo apt-get install portmap sudo apt-get install nfs-common 以上两个软件也需要安装,但是在我安装完nfs以后再安装这两个软件的时候提示已经安装。但最后还是确认一下这两个软件是否已经安装。 二、创建nfs用户 使用命令sudo useradd nfs创建一个不可登入和无密码的nfs用户和用户组。 三、创建NFS服务共享目录 我的共享目录是在var下面,目录名为nfs_dir。命令:sudo mkdir /var/nfs_dir。创建后共享目录后将目录的用户名及用户组修改为我们刚刚创建的nfs用户名和nfs用户组,命令:sudo chown nfs:nfs /var/nfs_dir。 四、配置NFS服务 NFS的配置文件为/etc/exports。 打开/etc/exports文件将以下语句添加到最后一行: /var/nfs_dir 192.168.1.0/24(rw,all_squash,anonuid=1001,anongid=1001) 其中/var/nfs_dir为共享目录,192.168.1.0/24指的是网段,可以使用完整的 IP 或者是网域,例如 192.168.1.10 或 192.168.1.0/24 ,或 192.168.1.0/255.255.255.0 都可以接受!也可以使用主机名,这个主机名要在 /etc/hosts 内或使用 DNS 可以被找到才行。重点是可找到 IP 就是了。如果是主机名的话,那么他可以支持通配符,例如 * 或 ? 均可接受。 至于权限方面 (就是小括号内的参数) 常见的参数则有: - rw:read-write,可擦写的权限;
- ro:read-only,只读的权限;
- sync:数据同步写入到内存与硬盘当中;
- async:数据会先暂存于内存当中,而非直接写入硬盘!
- no_root_squash:登入 NFS 主机使用分享目录的用户,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限! 这个项目『极不安全』,不建议使用!
- root_squash:在登入 NFS 主机使用分享之目录的用户如果是 root 时,那么这个使用者的权限将被压缩成为匿名用户,通常他的 UID 与 GID 都会变成 nobody(nfsnobody) 那个系统账号的身份;
- all_squash:不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
- anonuid:anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是您可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于您的 /etc/passwd 当中!
- anongid:同 anonuid ,但是变成 group ID 就是了!
这是几个比较常见的权限参数,如果你有兴趣玩其他的参数,请自行 man exports 在这(也就是小括号里的)的设定的意思是nfs_dir目录是可读可写的,而且不管是用什么用户登入,写入的文件都会自动变成anonuid和anongid指定的用户名和用户组。 五、启动NFS服务 在启动NFS服务前需要将portmap服务启动,可以使用命令: sudo /etc/init.d/rPCBind start 将portmap服务启动之后再启动NFS服务: sudo /etc/init.d/nfs-kernel-server start 如果想重启的话只需要将start替换成restart即可。 六、打开windows中的NFS客户端 控制面板>程序>打开或关闭windows功能>勾选nfs客户端>确定
打开nfs客户端以后就可以挂载目录了,挂载方式: cmd>mount 192.168.1.101:/var/nfs_dir I: 其中mount为挂载命令,192.168.1.101为NFS服务器IP地址,/var/nfs_dir为要挂载的目录,I:为本机目录。执行完这条命令后就可以看到挂载的目录: 至于NFS的iptables的规则方面能麻烦死一个人,端口一大堆,搞了老长时间也没搞定,最后只能以开放整个内网了事。
|