虚拟机如何开启NFS服务,linux nfs共享怎么设置

虚拟机开启NFS这事,本质上就是给系统装一个NFS软件包,改一行配置文件,再启动服务,三步走完。 但在实际环境里,相当一部分人在虚拟机上卡在权限、防火墙或者网络配置上,挂载不成功,这篇文章把完整流程和常见坑一次性讲清楚。

虚拟机开启NFS之前,先弄明白这几个关键问题

虚拟机NFS和Samba怎么选

NFS是Linux和Unix生态里的文件共享协议,客户端访问时跟访问本地磁盘一样,不产生文件锁冲突,Samba走的是SMB/CIFS协议,主要服务于Windows和Linux混杂的环境。

Linux---NFS服务器配置
加载中
Linux---NFS服务器配置

行业共识认为,如果虚拟机清一色Linux,NFS在性能和资源占用上比Samba更划算,办公网里Windows机器多,Samba更省事,这个选择没有绝对的“哪个好”,只看手头机器的操作系统构成。

哪些场景适合在虚拟机上配置NFS

拿常见的开发环境举例:一台虚拟机装CentOS,另一台测Kubernetes,两边都要用同一个代码目录,用NFS挂载一次,两边同时读写,目录结构保持同步,省掉来回拷贝的功夫。

  • 虚拟机迁移后数据还在原宿主机,NFS可以在一定程度上实现存储和计算分离
  • 多台虚拟机共享同一份配置或证书文件
  • Linux虚拟机上搭建WordPress或Nextcloud,把数据目录挂到远端存储上

这些场景背后的逻辑都一样:把存储从虚拟机里剥离出来,放到网络另一端,现在很多人直接把NFS跑在云虚拟机上,比如在华北2(北京)或华东1(杭州)开一台按量付费的Linux云主机,配置2核4G,专门做团队共享存储,按小时计费,多数时段一小时成本不到一块钱,不开机不产生费用,测试阶段比买物理NAS省得多。

虚拟机怎么开启NFS服务,一条龙操作步骤

以下步骤以CentOS 7/8、Ubuntu 20.04/22.04为例,其他发行版命令大同小异。

第一步:确认内核支持并安装软件包

先看内核模块是否在编:

cat /proc/filesystems | grep nfs

虚拟机如何开启NFS服务,linux nfs共享怎么设置

输出里有nfsd,说明内核支持,然后装软件包:

# CentOS / RHEL系列
yum install -y nfs-utils
# Ubuntu / Debian系列
apt update && apt install -y nfs-kernel-server

装完之后确认安装版本:

rpm -qa | grep nfs-utils   # RedHat系
dpkg -l | grep nfs-kernel  # Debian系

第二步:修改/etc/exports配置文件

这是整个配置中最核心的一步,编辑/etc/exports,每一行定义一条共享规则:

/shared/data  192.168.1.0/24(rw,sync,no_root_squash)

几个常见参数的含义:

  • rw表示读写,ro表示只读
  • sync是同步写入,配合wdelay使用可以适当减少写放大
  • no_root_squash允许客户端root用户保留root权限,个人测试环境用这个省事,生产环境建议换成root_squash
  • 授权对象可以用168.1.0/24网段,也可以用.example.com通配域名

改完先检查配置语法:

exportfs -arv

这条命令会重新加载所有导出项,有语法错误会当场报错。

第三步:启动服务并设置开机自启

# CentOS 7/8
systemctl enable --now nfs-server
# Ubuntu 20.04以上
systemctl enable --now nfs-kernel-server

老教程里的service nfs start在新版systemd环境下不好使,育成交给systemd管的习惯。

第四步:客户端挂载并验证

在另一台虚拟机(或宿主机)执行:

mkdir -p /mnt/nfs_test
mount -t nfs 192.168.1.10:/shared/data /mnt/nfs_test
df -h | grep nfs_test

看到挂载点出现在df结果里,说明通了,想开机自动挂载,就写进/etc/fstab

168.1.10:/shared/data  /mnt/nfs_test  nfs  defaults,noatime,_netdev  0  0

虚拟机NFS挂载不上怎么办,排查思路和实操命令

虚拟机如何开启NFS服务,linux nfs共享怎么设置

挂载失败是最常见的问题,按下面顺序排查,绝大多数情况能定位。

权限和用户映射导致的访问失败

客户端能挂上,但读写时报Permission denied,多半是root_squash和属主不一致造成的,先看服务端共享目录的属主和权限:

ll -d /shared/data

目录属主是root且权限是755,客户端的普通用户自然写不进去,两个解决方向:

  • 把目录属主改成nfsnobody(CentOS)或nobody(Ubuntu)
  • 在exports配置里针对特定客户端加no_root_squash,本地测试随意,生产环境慎用

防火墙和SELinux拦截NFS流量

NFS依赖多端口,被防火墙拦住的概率相当大,CentOS如果开了SELinux,先临时放开试试:

setsebool -P nfs_export_all_rw 1

再放行防火墙服务:

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

Ubuntu的ufw只需要一条命令:

ufw allow nfs

如果服务端手动固定了端口,还得额外放行对应端口,没固定就省事一些。

网络和共享参数排查

客户端先执行:

showmount -e 192.168.1.10

能列出导出列表,说明网络通、服务在跑,列不出来,就按顺序ping、telnet 2049端口、查rpcbind状态:

systemctl status rpcbind
ss -tlnp | grep 2049

链路断在哪一环,问题就出在哪,多数情况下,NFS挂载失败都是防火墙或rpcbind状态异常,不是协议本身的问题。

虚拟机NFS性能调优和安全加固,上线前记得做这几件事

性能参数:挂载选项别省

客户端挂载时加上noatimenodiratime,减少不必要的写操作,网络带宽充足的场景,可以在exports里设置

虚拟机如何开启NFS服务,linux nfs共享怎么设置

wdelay(延迟合并写)替代sync,写吞吐会高一些,但掉电风险随之上升,实验环境无所谓,生产环境请老老实实用sync

亲测一个批量生成图片的任务,虚拟机挂NFS从默认参数换成noatimersize=32768wsize=32768之后,整体耗时缩短了三分之一左右。读写块大小和atime更新,是NFS性能最明显的两个变量。

安全加固:默认暴露要收敛

NFS默认信任内网,但建议做一份最小化授权:

  • exports里用精确IP或网段,别用
  • 只导出必要目录,别把根目录丢出去
  • 条件允许时加sec=krb5p做加密认证
  • 客户端只需读的场景就用ro

回到开头那句话,虚拟机开启NFS,真的就是装包、改配置、起服务这三板斧,权限、防火墙、网络这三关守住了,挂载顺利就是自然的事。

虚拟机NFS问与答:挂载故障定位思路

问题1:虚拟机开了NFS服务,宿主机挂载超时,怎么办?

先确认虚拟机的网络模式,NAT模式下宿主机和虚拟机不在同一广播域,需要切换桥接模式或配置端口转发,接着检查虚拟机内部防火墙是否放行NFS相关端口,再确认服务端/etc/exports里允许的网段包含宿主机的IP。

问题2:NFS挂载后虚拟机重启,发现挂载点丢失?

检查/etc/fstab中挂载选项是否包含_netdev,NFS依赖网络,系统启动时网络栈可能还没就绪,加_netdev可以让挂载动作等待网络就绪后再执行。

问题3:NFS服务端重启后,客户端挂载的目录变成只读?

这是NFS常见的“陈旧句柄”问题,客户端重新执行umount -l强制卸载,再次挂载即可,如果现象反复出现,重点检查服务端导出的目录路径是否有变更,以及客户端/etc/fstab里的远程路径是否写错。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/654666.html

(0)
我的世界3u3c服务器怎么进,进不去解决方法是什么
上一篇 2026年9月15日 10:48
腾讯企业邮箱域名如何购买?,需要什么条件?
下一篇 2026年9月15日 10:49

相关推荐

  • 服务器带宽并发量怎么计算,服务器并发数计算公式

    服务器带宽并发量的计算核心在于明确“带宽”与“并发”的转换逻辑,即通过单位换算与流量模型估算服务器在特定带宽下能支持的同时在线访问人数,计算公式的核心结论为:并发数 = (服务器总带宽 × 换算系数) ÷ (页面平均大小 × 8),这一公式表明,并发能力并非由带宽单一决定,而是受页面体积、用户行为、网络损耗等多……

    2026年4月7日
    9800
  • 云服务器做哪些功能吗

    云服务器不是一台“远程电脑”,而是覆盖建站、存储、开发、部署、安全、加速的数字化基础设施平台,选对服务商等于选对底层底座,2026年企业上云已进入深水区,单纯比价格没有意义,关键在于服务商是否持牌合规、资源是否自营可控、链路是否稳定低延迟,本文从功能落地的角度,拆解云服务器真实能做什么,并附上选型时的硬指标参考……

    2026年8月30日
    100
  • 火狐浏览器中查看网站证书的详细步骤是什么,安全吗?

    在Firefox浏览器中查看网站证书,最直接的方法就是点击地址栏左侧的锁形图标,在弹出的安全面板中点击“连接安全”,再选择“更多信息”,最后在“安全”选项卡中点击“查看证书”,整个过程不需要安装任何插件,浏览器内置的证书查看器就能展示完整的证书链和详细信息,养成查看证书的习惯,能帮你有效识别钓鱼网站和虚假连接……

    2026年7月29日
    900
  • 服务器登录记录能保存多久?登录记录保存期限详解

    服务器确实有登录记录,这是现代服务器安全架构的基石,它记录了用户、管理员或应用程序的每一次登录尝试,包括成功和失败的访问,形成可追溯的审计轨迹,这不仅帮助管理员监控系统活动、快速响应安全事件,还能满足合规要求(如GDPR或ISO 27001),忽略登录记录可能导致未授权访问、数据泄露或法律责任,任何服务器都应默……

    2026年2月15日
    23440
  • 服务器配置优化指南,如何正确设置并发数?

    服务器的并发数怎么设置核心公式与起点:*服务器并发数 ≈ (可用内存 / 单连接内存消耗) 合理系数更精确的初始估算需结合:最大并发数 = (系统可用内存) / (每个连接/请求平均内存占用),再乘以安全系数(通常0.7-0.8),但这仅是起点,必须通过压力测试和监控动态调整,** 影响并发数设置的核心因素业务……

    2026年2月11日
    12710
  • gmt服务器地址是多少?gmt服务器地址查询

    GMT服务器地址通常指位于格林尼治标准时间所属时区(即英国伦敦及周边地区)的机房IP,其核心优势在于低延迟连接欧洲市场及符合GDPR数据合规要求,对于面向全球或欧洲用户的业务而言,是提升访问速度和法律合规性的首选方案,在数字化全球化的今天,选择服务器地理位置不再仅仅是技术配置问题,更是商业战略的一部分,许多开发……

    2026年6月26日
    2000
  • 服务器年中特惠活动是真的吗?服务器年中特惠价格表

    服务器年中特惠是企业降低IT基础设施成本的最佳窗口期,通过精准匹配业务需求与促销政策,企业能够以极具性价比的方式获取高性能计算资源,为下半年的业务扩展奠定坚实基础,这一时期的促销活动通常由各大云服务商推出,旨在清理库存、回馈客户,其优惠力度往往仅次于年末大促,且配合新品的发布,用户能够选择到技术更新、性能更优的……

    2026年4月2日
    9800
  • 莞学宝智能教育机器人好用吗?

    莞学宝智能教育机器人通过AI大模型与本地化教学资源的深度结合,为东莞地区学生提供个性化、精准化的课后辅导与学习规划服务,是提升学习效率的实用工具,为什么东莞家长选择莞学宝智能教育机器人在教育竞争日益激烈的当下,家长对于子女教育的焦虑感普遍存在,传统的课外辅导往往面临时间不固定、师资参差不齐以及缺乏针对性等问题……

    2026年7月8日
    6900
  • 防火墙应用命令,如何确保网络安全?详细步骤与最佳实践解析?

    防火墙应用命令是网络安全管理的核心工具,通过精准配置可有效控制网络流量、防御攻击并保障数据安全,本文将系统介绍防火墙命令的核心应用,涵盖基础配置、高级策略及实战解决方案,帮助管理员提升网络防护能力,防火墙命令基础:访问控制列表(ACL)访问控制列表是防火墙最常用的流量过滤工具,通过规则匹配实现数据包允许或拒绝……

    2026年2月3日
    13400
  • 个人备案域名能用于单位吗?个人域名备案限制有哪些

    个人备案域名用于单位属于违规行为,极易导致域名被管局注销备案、网站关停,甚至影响单位整体信用,切勿尝试,在互联网合规日益严格的当下,很多初创团队或小微企业主常抱有侥幸心理,试图用个人身份证下的域名承载公司业务,这种操作看似节省了注册成本,实则埋下了巨大的合规隐患,随着2026年百度SEO算法对内容来源权威性要求……

    2026年5月30日
    4700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注