当前位置: 首页 > news >正文

服务器搭建NFS服务,将文挂载到windows

【背景】:本地开发写代码,修改文件后需要经常重复同步,非常麻烦,于是思考搭建一个NFS服务,可以实现在windows上自由操作服务器上的代码,提高开发效率。

1.在Linux服务器上安装并配置NFS
安装NFS服务器:

sudo yum update
sudo yum install nfs-utils
systemctl start nfs-server
# 开启自启动
systemctl enable nfs-server

创建共享目录:
需要选择一个目录来共享,或者创建一个新的共享目录。假设我们要共享 /home/xjl/work:

sudo mkdir -p /home/xjl/work

设置共享权限:

确保共享目录有合适的权限。如果想让所有用户都能访问,可以修改权限:

sudo chown nobody:nobody /home/xjl/work
sudo chmod 777 /home/xjl/work

编辑NFS导出配置文件:
配置NFS将该目录作为共享资源。在文件 /etc/exports 中添加以下内容:

/home/xjl/work *(rw,sync,no_subtree_check,no_root_squash)

参数解释:

*表示允许所有IP地址访问该共享。可特定的IP地址或网段(如 192.168.1.0/24)替代。
rw 允许读写访问。
sync 保证数据立即写入磁盘。
no_subtree_check 提高效率,禁用子树检查。
no_root_squash 允许客户端以root用户身份访问文件。

保存并退出后,运行以下命令以应用更改:

sudo exportfs -ra

参数解释:


· exportfs: 这是一个用于管理NFS共享的命令。它可以用来显示当前的共享目录、添加或删除共享,以及刷新NFS导出的信息。
· -r: 这个选项表示“重新导出”。它会重新加载NFS导出配置文件 /etc/exports 中的所有导出设置。这通常在修改了 /etc/exports 文件后使用,以便应用这些更改。
· -a: 这个选项表示“所有”。它表示对所有导出进行操作。

允许防火墙通过流量:

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload


2.在Windows上挂载NFS共享

启用NFS客户端:

打开“控制面板” > “程序” > “启用或关闭Windows功能”。勾选“服务for NFS”并启用。

挂载NFS共享:
打开命令提示符或PowerShell,使用以下命令将NFS共享挂载为网络驱动器:

mount -o anon \\xx.xx.xx.xx\home\xjl\work X:

参数解释:

xx.xx.xx.xx 是Linux服务器的IP地址。
/home/xjl/work 是服务器上共享的NFS目录。
X: 是在Windows上使用的驱动器号。
-o: 这是 mount 命令的一个选项,用于指定挂载时的选项。
anon: 这个选项表示“匿名”或“无名”。它允许不提供身份验证的用户访问 NFS 共享。换句话说,使用 anon 选项时,Windows 将以匿名用户身份连接到 NFS 共享。这通常用于公共或开放的共享目录,不需要严格的身份验证。

3.验证挂载是否成功

挂载成功后,可以通过“此电脑”或资源管理器查看和访问新的网络驱动器。

【总结】:

通过nfs,解决了windows开发写代码重复上传文件到Linux服务的痛点,极其难受而且还太容易出错。使用nfs服务,可以在Linux服务器上搭建NFS并将其共享到Windows。无需使用Samba(通常基于局域网,或者通过VPN也可以实现挂在本地,但有点麻烦),NFS单独就能完成文件共享的需求,特别是在网络环境下,NFS效率较高。


 


http://www.mrgr.cn/news/19150.html

相关文章:

  • SpringMvc--后续(参数问题)
  • Python世界:文件自动化备份实践
  • 如何开启事务、确认提交事务、事务回滚、自动提交和禁止自动提交?
  • Tomcat部署及优化
  • Leetcode面试经典150题-54.螺旋矩阵
  • 力扣面试150 旋转链表 闭链成环
  • ChatTCP:一款离线TCP数据包分析macOS APP,致力于让分析TCP数据包像看聊天记录一样简单
  • 如何在 Linux Terminal 中使用 Cmd+C复制,Cmd+V粘帖?
  • Docker入门学习-01
  • vue3页面空白-普通函数和箭头函数提升的不同
  • Windows使用ffmpeg获取麦克风数据
  • 激光雷达产品介绍
  • MySQL备份:备份策略、物理备份、mysqldump备份、增量备份、差异备份
  • DeFi是否还存在Alpha机会?Pencils Protocol 带领市场“向前看”
  • 深入理解 Prometheus 数据模型与指标监控
  • MATLAB eig 函数简介:计算特征值和特征向量
  • VS2022使用指定的LLVM版本
  • Linux C++ 开发7 - GDB常用命令汇总(你想了解的都在这)
  • 【算法专场】模拟(上)
  • C++复习day02