Ubuntu 16.04安装配置NFS
转载自 Ubuntu 16.04安装配置NFS
略有改动和增加
NFS允许用户通过网络分享目录和文件,客户端用户可以像操作本地文件一样操作服务端文件。
NFS服务端
安装nfs-kernel-server:
$ sudo apt install nfs-kernel-server |
NFS客户端
安装 nfs-common:
$ sudo apt install nfs-common |
服务端创建共享目录
客户端通过远程挂载的方式访问服务端共享目录,为了说明两种不同的文件权限,我会使用不同的选项创建两个共享目录。
- 默认情况下客户端不允许在NFS共享目录上执行root操作,如:更改文件所有权等。
- 但是有时用户需要用root权限操作NFS共享目录,这可以通过配置实现。
创建默认配置的共享目录
创建一个目录:
$ sudo mkdir -p /var/nfs/sharedir |
更改目录权限:
$ sudo chown nobody:nogroup /var/nfs/sharedir |
以root权限共享home目录
配置NFS:
$ sudo vim /etc/exports |
如下格式
/var/nfs/sharedir *(rw,sync,no_subtree_check) |
下面是一些NFS共享的常用参数说明:
参数 | 说明 |
---|---|
rw | 可读写的权限 |
ro | 只读的权限 |
no_root_squash | 权限不压缩, 远程客户端拥有root权限. (不安全, 但嵌入式要用!) |
root_squash | 权限压缩, 远程客户端root权限压缩成为匿名使用者(默认) |
sync | 资料同步写入到内存与硬盘当中 |
async | 资料会先暂存于内存当中,而非直接写入硬盘 |
hide | 不共享子目录 |
no_hide | 共享子目录 |
subtree_check | 共享子目录时, 检查父目录的权限(默认) |
no_subtree_check | 共享子目录时, 不检查父目录的权限 |
重启nfs-kernel-server:
$ sudo systemctl restart nfs-kernel-server |
如果开启了防火墙,打开NFS的2049端口。
查看共享文件情况
$ showmount -e |
客户端挂载共享目录
此方法不适用于嵌入式Linux!
创建两个挂载点:
$ sudo mkdir -p /nfs/sharedir |
挂载远程共享目录:
$ sudo mount nfs_server_ip:/var/nfs/sharedir /nfs/sharedir |
查看挂载点:
$ df -h |
现在你可以使用共享目录了。
使用完之后不要忘了卸载:
$ sudo umount /nfs/home |
开机自动挂载NFS共享目录
编辑fstab文件:
$ sudo vim /etc/fstab |
添加如下两行:
your_nfs_server_Ip:/var/nfs/sharedir /nfs/sharedir nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0 |
或者使用hostname
nfs_server_hostname:/var/nfs/sharedir /nfs/sharedir nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0 |