当前位置:首页 > 技术知识 > 正文内容

配置 NFS 或 Samba 实现局域网共享文件夹:兼容 Windows 和 Linux

maynowei7个月前 (08-12)技术知识147

家里同时有Windows电脑和Linux服务器?办公需要在不同系统间传文件,插U盘太麻烦?今天教你两种局域网共享方案,NFS和Samba任选,简单几步实现跨系统文件互传,小白也能跟着做。


图1:局域网共享网络拓扑图,展示NFS服务器与多设备连接架构

先搞懂:为什么需要两种方案?

局域网共享主要看设备类型。NFS(网络文件系统)是Linux/Unix的“原生协议”,速度快、配置简单,适合Linux设备之间共享;Samba则是“跨平台专家”,基于SMB协议,能让Linux和Windows无缝对接,甚至支持手机、电视访问。根据你的设备组合选方案,效率翻倍。

方案一:NFS——Linux设备首选,速度快到飞起

1. Linux服务器端配置(以Ubuntu 22.04为例)

先装NFS服务,打开终端输入:

sudo apt update && sudo apt install nfs-kernel-server -y

创建共享目录,比如把/home/share设为共享文件夹:

sudo mkdir -p /home/share  
sudo chmod 777 /home/share  # 给读写权限

编辑配置文件/etc/exports,指定谁能访问:

sudo nano /etc/exports

添加一行(允许192.168.1.0/24网段读写):

/home/share 192.168.1.0/24(rw,sync,no_subtree_check)


图2:Linux终端查看NFS配置文件内容,显示共享目录及权限设置

重启服务让配置生效:

sudo exportfs -a  
sudo systemctl restart nfs-kernel-server

2. Linux客户端挂载(比如另一台Ubuntu)

装NFS客户端工具:

sudo apt install nfs-common -y

创建本地挂载点,挂载共享目录:

mkdir ~/nfs_mount  
sudo mount 192.168.1.100:/home/share ~/nfs_mount

现在访问~/nfs_mount就像本地文件夹一样,传大文件比FTP快3倍!

3. Windows访问NFS(需手动开启功能)

Windows 10/11专业版/企业版自带NFS客户端:
- 控制面板→程序→启用或关闭Windows功能→勾选“NFS服务”→重启电脑
- 打开文件资源管理器,地址栏输入\\192.168.1.100\nfsroot(服务器IP+共享目录)

注意:家庭版Windows没有NFS客户端,得用Samba方案。

方案二:Samba——跨平台王者,Windows访问零障碍

1. Linux服务器端配置(以Ubuntu 22.04为例)

装Samba服务:

sudo apt install samba samba-common-bin -y

同样用/home/share作为共享目录,设置权限:

sudo chmod -R 777 /home/share

编辑Samba配置文件/etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

在文件末尾添加共享配置:

[MyShare]  
path = /home/share  
browseable = yes  # 在网络可见  
writable = yes    # 可写  
guest ok = yes    # 允许访客访问(测试用,正式环境建议设密码)

添加Samba用户(输入密码用于Windows访问):

sudo smbpasswd -a 你的Linux用户名

重启Samba服务:

sudo systemctl restart smbd

2. Windows访问Samba共享(超简单)

  • 打开文件资源管理器→地址栏输入\\192.168.1.100\MyShare(服务器IP+共享名)
  • 弹出登录框,输入Samba用户名和密码,勾选“记住凭据”


图3:Windows 11文件资源管理器访问Samba共享服务器界面,显示共享文件夹列表

避坑指南:这些问题90%的人会遇到

1. Windows 11 24H2访问失败?

微软在24H2版本强制开启SMB签名,老NAS或Samba服务器可能不支持,导致报错“STATUS_INVALID_SIGNATURE”。
解决:按Win+R输入gpedit.msc→计算机配置→管理模板→网络→Lanman工作站→启用“启用不安全的来宾登录”→重启电脑。

2. 共享文件夹能看不能写?

  • NFS:检查/etc/exports是否有rw权限,客户端挂载时加-o rw
  • Samba:右键共享文件夹→属性→安全→添加“Everyone”用户,勾选“完全控制”

3. 防火墙拦截?

Linux放行端口:

sudo ufw allow 2049/tcp  # NFS端口  
sudo ufw allow samba     # Samba端口(139/445)

Windows防火墙→允许应用通过→勾选“文件和打印机共享”

真实案例:大学如何用Samba共享教学资源?

西班牙University San Jorge通过Samba搭建跨平台共享系统,让Windows教师机和Linux服务器无缝同步课件,支持300+师生同时访问,出处:Digital Samba客户案例。他们的秘诀是:
- 按部门设置Samba用户组权限
- 启用SMB加密传输敏感数据
- 定期备份共享目录

工具推荐:图形化配置更简单

如果觉得命令行麻烦,试试Cockpit-file-sharing插件(适用于Fedora/Ubuntu Server),网页界面点几下就能配置NFS/Samba,支持权限管理和用户添加,小白也能轻松上手。


图4:Samba配置文件内容示例,包含共享目录及权限设置参数

最后说一句:局域网共享虽方便,别把敏感文件设为“所有人可写”!重要数据建议加密码,定期备份。按上面步骤操作,Windows和Linux互传文件再也不用U盘来回拷了~

相关文章

那些技术—Listview的性能提高篇(listview提高效率)

ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。 · 1.在adapter中的...

有了这份900多页的Android面试指南,你离大厂Offer还远吗?

前言对于大部分程序员来说,一线互联网是的工作经历是毕生的追求,实际上大厂对于学历的要求远远没有我们想象的那么高,近几年来,互联网公司更注重技术,所以提升自身技术水平才是斩获offer的制胜关键。一线互...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

btrace 3.0 重磅新增 iOS 支持!免插桩原理大揭秘!

重磅更新btrace 是由字节跳动抖音基础技术团队自主研发的面向移动端的性能数据采集工具,它能够高效的助力移动端应用采集性能 Trace 数据,深入剖析代码的运行状况,进而辅助优化提升移动端应用的性能...

C++11 同步机制:互斥锁和条件变量

前段时间,我研究了 ROS2(Jazzy)机器人开发系统,并将官网中比较重要的教程和概念,按照自己的学习顺序翻译成了中文,进行了整理和记录。到目前为止,已经整理了20多篇文章。如果你想回顾之前的内容,...

go语言并发原语RWMutex实现原理及闭坑指南

1.RWMutex常用方法Lock/UnlockRLock/RUnlockRLocker 为读操作返回一个Locker接 口的对象2. RWMutex使用方法 func main() { var c...