ubuntu 搭建NFS服务器和挂载

ubuntu 搭建 nfs 服务器和挂载

1. ubuntu 搭建 nfs 服务器

安装NFS软件包

sudo apt-get install nfs-kernel-server  # 安装 NFS服务器端
sudo apt-get install nfs-common         # 安装 NFS客户端

修改配置,添加NFS共享目录

sudo vi /etc/exports

# 添加 /home/alientek/linux 作为共享路径
# * 表示运行所有IP访问; rw 表示可读写; sync 表示同步数据;
# no_root_squash 表示 对root用户不进行降权处理
/home/alientek/linux *(rw,sync,no_root_squash)

重启 nfs 服务器

sudo /etc/init.d/nfs-kernel-server start    或者  
sudo /etc/init.d/nfs-kernel-server restart

至此,NFS 服务器搭建完成

2. linux 挂载

在linux下创建挂载目录

mkdir /var/nfs

挂载目录

sudo mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.0.10:/home/alientek/linux /var/nfs

卸载目录

sudo unmount /var/nfs

3. windows 挂载

开启共享文件夹权限
针对 win10 你不能访问此共享文件夹,因为你组织的安全策略..." 问题
可以先跳过,如果遇到该问题,再开启共享文件夹权限。
同时按下 win 和 R 键,打开运行窗口,输入 gpedit.msc 启动本地组策略管理器
找到 计算机配置-管理模板-网络-Lanman工作站 这个节点
在"右侧内容看到启动不安全的来宾登录" 这一策略设置,将状态修改为 "已启用",并确定

开启NFS客户端服务
在控制面板-程序-打开或关闭windows功能-NFS客户端,开启NFS客户端和管理工具服务,并保存

简单访问
打开文件管理器,在地址栏输入 \\192.168.0.6\home\alientek\linux 回车后可挂载该文件夹

挂载为网络磁盘
同时按下 win 和 R 键,打开运行窗口,输入 cmd
输入下面指令进行挂载或卸载

# 挂载,192.168.0.6 为NFS服务器IP,Z:为你空闲的盘符
mount 192.168.0.6:/home/alientek/linux Z:

# 卸载
unmount Z:

注意,必须在 cmd 下,不能用 Windows PowerShell

4.windows 挂载 nfs 文件夹为只读问题

明明在 ubuntu 下搭建的 nfs 服务器设置了读写权限,但是windows挂载后为只读文件/文件夹。
原因可能是 linux 下 nfs 文件系统归属于 root 权限 UID=-2,而 windows 通过 UID=-2 的用户去写,就写不进去。
解决方法是更改用户UID。

  1. 在 windows 的 cmd 下,使用 mount 命令可以看到如下状态:
mount
Local    Remote                                 Properties
-------------------------------------------------------------------------------
Z:       \\192.168.138.129\root\project         UID=-2, GID=-2
                                                rsize=1048576, wsize=1048576
                                                mount=soft, timeout=10.0
                                                retry=1, locking=yes
                                                fileaccess=755, lang=GB2312-80
                                                casesensitive=no
                                                sec=sys
  1. 修改注册表
  • 使用 win+R 键打开窗口,输入 regedit 回车,打开注册表
  • 在 HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> ClientForNFS -> CurrentVersion -> Default 下,增加以下两项
    • AnonymousUid 属性是 QWORD
    • AnonymousGid 属性是 QWORD
      图片
    • 重启电脑生效
  1. 重新查看 mount 状态,可以看到UID=0,这样就有文件夹的写权限了
Local    Remote                                 Properties
-------------------------------------------------------------------------------
Z:       \\192.168.138.129\root\project         UID=0, GID=0
                                                rsize=1048576, wsize=1048576
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=GB2312-80
                                                casesensitive=no
                                                sec=sys

5.参考链接

https://blog.csdn.net/qq_37860012/article/details/86717891
https://blog.csdn.net/weixin_71429850/article/details/125983940
https://blog.csdn.net/iamlihongwei/article/details/79377657
https://blog.51cto.com/huny/3265487
https://blog.csdn.net/youcijibi/article/details/105276580

posted @   infinite_ryvius  阅读(932)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示