Ubuntu 上搭建nfs服务器
我使用的是ubuntu 16.04
1.在线安装
(1)安装nfs服务
sudo apt-get install nfs-kernel-server
(2)配置NFS服务
sudo vim /etc/exports
修改内容如下:
/home *(rw,sync,no_root_squash)
各段表达的意思如下,根据实际进行修改:
代码语言:javascript复制此代码由Java架构师必看网-架构君整理
<共享目录> [客户端1 选项(访问权限,用户映射,其他)]
① 共享目录:
共享目录是指NFS系统中需要共享给客户机使用的目录
② 客户端:
客户端是指网络中可以访问NFS共享目录的计算机
客户端常用的指定方式:
1)指定ip地址的主机:192.168.0.1
2)指定子网中的所有主机:192.168.0.0/255.255.255.0
3)指定域名的主机:www.sean.com
4)指定域中的所有主机:*.sean.com
5)所有主机:*
③ 选项:
选项用来设置输出目录的访问权限、用户映射等,NFS主要有3类选项:
访问权限选项:
1)设置输出目录只读:ro
2)设置输出目录读写:rw
用户映射选项:
1)all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
2)no_all_squash:与all_squash取反(默认设置)
3)root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
4)no_root_squash:与rootsquash取反
5)anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
6)anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)
其它选项:
1)secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
2)insecure:允许客户端从大于1024的tcp/ip端口连接服务器
3)sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
4)async:将数据先保存在内存缓冲区中,必要时才写入磁盘
5)wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
6)no_wdelay:若有写操作则立即执行,应与sync配合使用
7)subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)
8)no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
(3)启动NFS服务
sudo service nfs-kernel-server restart
2.离线安装
(1)下载安装包
从http://cn.archive.ubuntu.com/ubuntu/pool/main/n/nfs-utils/.下载对应版本的nfs-common和nfs-kernel-server
(2)安装方法和顺序
dpkg -i nfs-common_1.2.0-4ubuntu4.2_i386.deb
dpkg -i nfs-kernel-server_1.2.0-4ubuntu4.2_i386.deb
(3)配置NFS服务
与在线安装方法一致
客户端挂载NFS共享目录
mount -t nfs -o nolock -o rw 172.16.3.199:/nfs /home/backup/dump/
注意:客户端需要安装nfs-common包
sudo apt-get install nfs-common
取消挂载:
umount -l /home/backup/dump/
Windows上搭建NFS服务器
1.安装NFS服务器
NFS服务器软件:haneWIN 1.1.69 汉化已注册的版本: 互联网上有下载,我这里再放一个我上传到CSDN的链接。 https://download.csdn.net/download/zhenglie110/10786511. nfs1169.exe
2.NFS服务器共享目录的配置
点击编译输出表文件,弹出一个记事本的编辑界面。我的配置如下:
代码语言:javascript复制#exports example
c:test -public -name:nfs
C:test 是共享的文件夹路径 -public 表示公共权限 -name:nfs 表示显示为名字 上面那个重启服务器不生效 需要点击下图所示的重启所有服务才能生效