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

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

maynowei10个月前 (08-12)技术知识173

家里同时有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盘来回拷了~

相关文章

Objective-c单例模式的正确写法「藏」

单例模式在iOS开发中可能算是最常用的模式之一了,但是由于oc本身的语言特性,想要写一个正确的单例模式相对来说比较麻烦,这里我就抛砖引玉来聊一聊iOS中单例模式的设计思路。关于单例模式更多的介绍请参考...

IT博物馆之Objective-C诞生(micro博物馆)

1984年,Objective-C诞生。设计者:布莱德·考克斯(Brad Cox)、汤姆·洛夫(Tom Love)Objective-C是面向对象的通用、高级编程语言。它扩展了标准的 ANSI C,将...

ExpandListView 的一种巧妙写法(三十的另一种写法)

ExpandListView大家估计也用的不少了,一般有需要展开的需求的时候,大家不约而同的都想到了它然后以前自己留过记录的一般都会找找以前自己的代码,没有记录习惯的就会百度、谷歌,这里吐槽一下,好几...

Android让视图折叠(安卓叠加视图设置)

Android UI Libs之ExpandableLayout1. 说明ExpandableLayout,顾名思义,可扩展的布局,是一个可以帮助我们实现折叠功能的第三方库,折叠时,只显示头部,打开时...

CPU「离奇」飙到 100%!开发者挖出 Linux 内核 16 年老 Bug:这么多年竟无人发现?

【CSDN 编者按】每一次对旧设备的升级都仿佛是一场跨越时代的冒险。本文作者致力于将基于 PXA166 的 Chumby 8 设备从 Linux 2.6.28 版本升级到现代 6.x 版本,然而,在看...

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

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