尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

将 Windows PC 作为网络文件共享(SMB)服务器 V2.1—— 局域网内高速传文件

将 Windows PC 作为网络文件共享(SMB)服务器 V2.1—— 局域网内高速传文件
📅 发布时间:2026/7/6 11:57:43

让局域网内所有设备(电脑、手机、电视、NAS)通过这台 Windows PC 访问同一个共享文件夹,无需额外硬件、无需 U 盘拷贝。


目录

  1. 已更新傻瓜式执行文件V2.1
  2. 原理说明
  3. 安全风险概述(必读)
  4. 系统兼容性说明
  5. 安全措施与备份机制
  6. 一键配置(推荐)
  7. 手动配置步骤
  8. 防火墙精准放行 SMB 端口
  9. NTFS 权限精细控制
  10. 验证共享是否正常运行
  11. 配置局域网其他设备访问
  12. 安全加固(强烈推荐)
  13. 常见问题与排错

执行文件更新

20260704:已更新为执行文件v2.1,以管理员身份运行即可;
一键下载地址:https://download.csdn.net/download/hjjhl/93071685?spm=1001.2014.3001.5501

原理说明

Windows 文件共享基于SMB(Server Message Block)协议。本机将某个文件夹"发布"为网络共享,局域网其他设备通过地址\\192.168.x.x\共享名就能读写里面的文件。

核心依赖三个组件:

组件作用
Server 服务(LanmanServer)提供文件共享能力,监听 TCP 445 端口
Workstation 服务(LanmanWorkstation)本机作为客户端访问其他共享
Computer Browser 服务网络发现(非必须,Win10+ 已逐步弃用)

共享范围是文件夹级别,而非整个分区。强烈建议只共享需要的目录,不要共享 C 盘根目录。

SMB 协议版本:Win10/11 默认启用 SMB 3.1.1(加密、安全),旧版的 SMB 1.0/CIFS 应主动禁用。


安全风险概述(必读)

文件共享本质上是开放本机端口给局域网,如果配置不当,存在以下风险:

风险等级说明
未授权访问🔴 高无密码共享 = 局域网任何设备可随意读写
勒索病毒传播🔴 高SMB 1.0 是 WannaCry 等勒索病毒的主要传播途径
密码爆破🟡 中弱密码可被暴力破解
端口扫描🟡 中445 端口是恶意扫描的首选目标
数据泄露🟡 中无权限控制的共享文件夹文件可被随意复制

⚠核心安全原则:共享独立文件夹 + 强密码账号 + 仅 SMB 2.0/3.0 + 防火墙限制来源 IP + NTFS 最小权限。


系统兼容性说明

✅ 完全支持

操作系统说明
Windows 11(所有版本)默认 SMB 3.1.1,推荐使用
Windows 10(所有版本)默认 SMB 3.1.1,推荐使用
Windows Server 2016+完整 SMB 功能,含文件服务器资源管理器

⚠️ 部分受限

操作系统问题
Windows 8 / 8.1可用,但 SMB 加密等功能不如 Win10+ 完整
Windows 7默认 PowerShell 2.0,脚本部分功能受限;SMB 最高 2.1
Windows Server 2008 R2 / 2012同 Windows 7,需手动升级 PowerShell

🚫 风险提醒

操作系统原因
Windows XP / VistaSMB 1.0 为主,存在已知安全漏洞,强烈不建议用作共享服务器

建议:优先在Windows 10/11 专业版或企业版上部署。专业版及以上支持更细粒度的共享权限和审计策略。


安全措施与备份机制

1. 操作前自动备份共享配置

工具在执行任何修改前,会自动将当前所有共享配置导出到%TEMP%\smb-server-backup.txt和%TEMP%\smb-server-backup.reg文件,包括:

  • 所有已发布共享的路径、名称、权限
  • SMB 协议配置(是否禁用 SMB 1.0 等)
  • 防火墙规则快照

恢复方法:运行%TEMP%\smb-server-backup.reg可部分恢复注册表级别的共享配置。

2. 端口冲突与安全检测

配置前工具会检查:

  • TCP 445 端口是否已被占用(是否存在其他 SMB 软件)
  • SMB 1.0 是否已禁用(未禁用的给出警告)
  • 是否已设置密码(未设密码的本地账户用作共享访问是不安全的)

3. 操作确认提示

对以下关键操作在执行前弹出(y/n)确认:

  • 新建共享(含权限范围确认)
  • 删除共享
  • 禁用/启用 SMB 1.0
  • 删除防火墙规则
  • 重置所有共享

4. 操作日志记录

所有操作写入日志文件:

%TEMP%\smb-server.log

日志内容包括:操作时间、共享名、操作类型、操作结果。方便事后排查问题。

5. 一键撤销

工具内置「删除全部共享」功能,可一键移除所有网络共享,恢复仅本机可访问的状态。

注意:这会删除所有共享定义,但不会删除文件夹内容。


一键配置(推荐)

以管理员身份运行 PowerShell,执行以下命令快速创建一个仅对当前用户可见的文件共享:

# ===== 1. 创建要共享的文件夹(如已存在则跳过) =====$sharePath="D:\SharedFiles"New-Item-ItemType Directory-Path$sharePath-Force# ===== 2. 设置 NTFS 权限(仅允许当前用户完全控制) =====$acl=Get-Acl$sharePath$acl.SetAccessRuleProtection($true,$false)# 禁用继承,避免意外继承父目录的开放权限$rule=New-ObjectSystem.Security.AccessControl.FileSystemAccessRule($env:USERNAME,"FullControl","ContainerInherit,ObjectInherit","None","Allow")$acl.AddAccessRule($rule)Set-Acl$sharePath$acl# ===== 3. 创建 SMB 共享 =====# Grant-Name:FullControl Change:ReadWrite Read:只读New-SmbShare-Name"SharedFiles"-Path$sharePath-FullAccess$env:USERNAME-Description"局域网文件共享"# ===== 4. 禁用 SMB 1.0(安全加固) =====Disable-WindowsOptionalFeature-Online-FeatureName SMB1Protocol-NoRestart-ErrorAction SilentlyContinue# ===== 5. 防火墙精准放行(仅允许局域网子网) =====# 获取本机局域网子网$localIP=(Get-NetIPAddress-AddressFamily IPv4|Where-Object{$_.IPAddress-notmatch"^127\.|^169\.|^0\."-and$_.PrefixOrigin-ne"Duplicate"}|Select-Object-First 1)$subnet=($localIP.IPAddress-replace"\d+$","0")+"/24"# 先删除旧规则(如有)netsh advfirewall firewall delete rule name="SMB 文件共享"2>$null# 新建精准规则netsh advfirewall firewall add rule name="SMB 文件共享"protocol=tcpdir=in localport=445 remoteip=$subnetaction=allow# ===== 6. 确保 Server 服务正在运行 =====Set-ServiceLanmanServer-StartupType AutomaticStart-ServiceLanmanServerWrite-Host""Write-Host"配置完成!"-ForegroundColor GreenWrite-Host"局域网内其他设备可通过 \\$($localIP.IPAddress)\SharedFiles 访问"-ForegroundColor Cyan

将D:\SharedFiles替换为你实际想共享的文件夹路径。如需允许多个用户/组访问,参考下方「NTFS 权限精细控制」章节。


手动配置步骤

步骤 1:创建共享文件夹

在资源管理器中选定磁盘(如 D 盘),新建文件夹,命名为SharedFiles。

步骤 2:打开文件夹共享向导

右键点击该文件夹 →属性→ 切换到共享选项卡 → 点击共享…按钮。

步骤 3:选择授权用户

在下拉菜单中选择要授权的系统账号(如当前管理员账号),点击添加。然后在权限级别下拉中选择:

权限级别说明
读取只能查看和复制文件,不能修改、删除
读/写可以读取、创建、修改和删除文件

⚠不要选择 Everyone(所有人),这会让局域网内任何设备都可访问。至少指定一个带密码的用户。

步骤 4:完成共享

点击共享→ 记录下网络路径(如\\PC-NAME\SharedFiles)→ 点击完成。

步骤 5:(可选)高级共享设置

右键文件夹 →属性→共享→高级共享…:

  • 勾选共享此文件夹
  • 共享名:可自定义(推荐英文)
  • 将同时共享的用户数量限制为:根据实际需求设置,不建议过大
  • 点击权限按钮,可进一步限制共享级权限(双重保险)

步骤 6:确认 Server 服务运行

Get-ServiceLanmanServer

应显示Running。


防火墙精准放行 SMB 端口

⚠不建议直接开放 445 端口给全部 IP(any),应限制为局域网子网范围。

最佳实践:仅允许局域网子网

# 假设本机 IP 为 192.168.1.100,子网掩码 255.255.255.0# 则允许源 IP:192.168.1.0/24netsh advfirewall firewall add rule name="SMB 文件共享"` protocol=tcpdir=in localport=445 ` remoteip="192.168.1.0/24"action=allow

如需同时关联 NetBIOS(旧设备兼容)

部分旧设备(如老式网络播放器、打印机)可能需要 TCP 139:

netsh advfirewall firewall add rule name="SMB NetBIOS"` protocol=tcpdir=in localport=139 ` remoteip="192.168.1.0/24"action=allow

图形界面操作

  1. Win + R→ 输入wf.msc→ 回车
  2. 左侧入站规则→ 右侧新建规则…
  3. 规则类型:端口→ TCP,特定本地端口:445
  4. 操作:允许连接
  5. 配置文件:专用(局域网环境不要勾选公用)
  6. 在「作用域」步骤中,远程 IP 地址选择「下列 IP 地址」→ 添加局域网子网(如192.168.1.0/24)
  7. 名称:SMB 文件共享

NTFS 权限精细控制

共享权限只能在网络访问层控制读/写,真正的安全防线是NTFS 文件系统权限。建议遵循以下原则:

原则一:最小权限

只授予完成任务所需的最低权限:

# 仅读取(适用于资料库、照片库)$acl=Get-Acl"D:\PhotoLibrary"$rule=New-ObjectSystem.Security.AccessControl.FileSystemAccessRule("UserName","ReadAndExecute","ContainerInherit,ObjectInherit","None","Allow")$acl.AddAccessRule($rule)Set-Acl"D:\PhotoLibrary"$acl
# 完全控制(适用于工作目录)$acl=Get-Acl"D:\WorkDir"$rule=New-ObjectSystem.Security.AccessControl.FileSystemAccessRule("UserName","FullControl","ContainerInherit,ObjectInherit","None","Allow")$acl.AddAccessRule($rule)Set-Acl"D:\WorkDir"$acl

原则二:禁用继承后自定义

共享文件夹应从父目录断开权限继承,避免意外继承 C 盘或 D 盘根目录的宽松权限:

$acl=Get-Acl$sharePath$acl.SetAccessRuleProtection($true,$false)# 断开继承,转为显式权限Set-Acl$sharePath$acl

原则三:共享权限 + NTFS 权限双重控制

网络访问时的最终权限 =共享权限∩NTFS 权限(取交集):

共享权限NTFS 权限实际效果
完全控制完全控制完全控制
读取完全控制只读
完全控制读取只读
完全控制无拒绝访问

最佳实践:共享权限设为「完全控制」以简化管理,把真正的权限控制交给 NTFS。


验证共享是否正常运行

方法一:查看本机所有共享

Get-SmbShare

应列出所有已发布的共享及其路径、描述。

方法二:本机回环测试

net view \\localhost

方法三:检查端口监听

netstat-an|findstr":445"

应看到TCP 0.0.0.0:445 0.0.0.0:0 LISTENING。

方法四:检查 SMB 协议版本

Get-SmbConnection|Format-TableServerName,Dialect

Dialect字段显示协议版本(如 3.1.1)。

方法五:从其他电脑测试连接

在局域网内另一台 Windows 电脑上:

net view \\192.168.x.x

(将192.168.x.x替换为 SMB 服务器的 IP)


配置局域网其他设备访问

Windows 客户端

资源管理器方式:

  • 按Win + R→ 输入\\192.168.1.100\SharedFiles→ 回车
  • 输入服务器上的用户名和密码 → 勾选「记住我的凭据」
  • 映射为网络驱动器(持久连接):
    net use Z: \\192.168.1.100\SharedFiles /persistent:yes

macOS 客户端

  • 访达→ 菜单栏前往→连接服务器…(⌘K)
  • 输入smb://192.168.1.100/SharedFiles
  • 用户名密码认证 → 连接

Linux 客户端

# 挂载sudomount-tcifs //192.168.1.100/SharedFiles /mnt/share-ousername=你的用户名,vers=3.0# 卸载sudoumount/mnt/share# 持久化挂载(编辑 /etc/fstab)//192.168.1.100/SharedFiles /mnt/share cifsusername=你的用户名,password=你的密码,vers=3.1.1,uid=1000,gid=100000

⚠/etc/fstab中明文存密码不安全,建议用credentials=/root/.smbcredentials外挂凭据文件。

安卓手机

  • 安装Solid Explorer/CX 文件管理器/ES 文件浏览器
  • 添加 SMB/CIFS 连接 → 输入 IP 和凭据

iPhone / iPad

  • 文件App → 右上角⋯→连接服务器→ 输入smb://192.168.1.100
  • 输入用户名密码

智能电视 / 机顶盒

  • 大多内置网络文件浏览器或媒体中心,可添加 SMB 源
  • 如果搜不到,检查电视是否在同一子网且支持 SMB 2.0+

安全加固(强烈推荐)

加固一:彻底禁用 SMB 1.0/CIFS

SMB 1.0 是 WannaCry 勒索病毒的主要传播媒介,且没有任何合理理由在新环境中启用:

# 禁用 SMB 1.0Disable-WindowsOptionalFeature-Online-FeatureName SMB1Protocol-NoRestart# 验证是否已禁用Get-WindowsOptionalFeature-Online-FeatureName SMB1Protocol|Select-ObjectState

加固二:启用 SMB 加密(如需敏感数据共享)

# 对特定共享启用加密Set-SmbShare-Name"SharedFiles"-EncryptData$true

注意:启用加密后,旧版 SMB 客户端(如老旧安卓设备)可能无法连接。

加固三:禁止匿名/访客访问

# 拒绝空密码的网络访问Set-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"`-Name"LimitBlankPasswordUse"-Value 1-TypeDWord# 禁用 Guest 账户net user guest/active:no

加固四:限制 SMB 连接数为合理值

# 限制同时连接数,防止恶意连接耗尽资源Set-SmbServerConfiguration-MaxChannelPerSession 8-MaxThreadsPerQueue 20

加固五:监听仅限内网 IP

如果本机有多个网卡(如同时连着外网),可将 SMB 绑定到内网网卡上,避免暴露到公网:

# 查阅当前 SMB 配置Get-SmbServerConfiguration|Select-ObjectEnableSMB*# 注意:Windows 桌面版不支持 interface-specific SMB 绑定,# 应通过防火墙规则精准控制(仅允许局域网 IP 来源)

加固六:启用审计日志

# 开启对象访问审计auditpol/set/subcategory:"File System"/success:enable/failure:enable# 对共享文件夹设置审计项(需要事件查看器中查看)$acl=Get-Acl"D:\SharedFiles"$auditRule=New-ObjectSystem.Security.AccessControl.FileSystemAuditRule("Everyone","ReadData,WriteData","ContainerInherit,ObjectInherit","Success,Failure")$acl.AddAuditRule($auditRule)Set-Acl"D:\SharedFiles"$acl

审计日志可在事件查看器 → Windows 日志 → 安全中查看(事件 ID 4663 等)。

加固七:定期检查共享

# 查看所有共享(留意是否有不认识的共享名)Get-SmbShare# 查看所有已建立的 SMB 连接Get-SmbConnection# 查看已打开的共享文件Get-SmbOpenFile

常见问题与排错

Q1:局域网其他电脑看不到共享

  • 检查防火墙:确认 TCP 445 已放行,且作用域限定在正确的子网范围内
  • 检查服务:Get-Service LanmanServer确认 Running
  • 检查网络类型:控制面板 → 网络和共享中心 → 确认网络为「专用网络」而非「公用网络」
  • 尝试用 IP 直连:\\192.168.x.x\SharedFiles,如果 IP 方式能访问但计算机名不行,说明是 NetBIOS/DNS 解析问题

Q2:提示「无法访问…你没有权限」

  • 最常见原因:共享账号没有密码。Windows 默认禁止空密码账号网络登录
  • 解决:为该账号设置密码,或检查LimitBlankPasswordUse注册表值
  • 其次排查:共享权限和 NTFS 权限是否同时设置正确

Q3:能看见但无法写入

  • 检查 NTFS 权限:确认该用户是否有「修改」或「完全控制」权限
  • 检查共享权限:确认该用户是否有「更改」或「完全控制」权限
  • 注意:即使 NTFS 设为完全控制,共享权限仅设为「读取」的话,结果就是只读

Q4:安卓/iOS 设备无法连接

  • 部分旧设备仅支持 SMB 1.0(如果已禁用 SMB 1.0 则连不上)
  • 解决:使用支持 SMB 2.0+ 的文件管理器(如 Solid Explorer)
  • 或临时启用 SMB 1.0(不推荐):
    Enable-WindowsOptionalFeature-Online-FeatureName SMB1Protocol

    ⚠ 启用 SMB 1.0 会大幅增加安全风险,仅在确认无其他方案时使用

Q5:如何删除不再需要的共享

Remove-SmbShare-Name"SharedFiles"-Force

Q6:共享文件夹在 D 盘,但 D 盘满了怎么办

  • 共享文件夹可以放在任何磁盘,也可以使用 NTFS 挂载点(Junction)将不同盘符映射进来
  • 使用mklink创建目录符号链接:
    mklink /D "D:\SharedFiles\Extra" "E:\ExtraData"

Q7:如何重置所有共享(恢复无共享状态)

Get-SmbShare|Where-Object{$_.Name-notin@("ADMIN$","C$","IPC$","NETLOGON","SYSVOL")}|Remove-SmbShare-Force

ADMIN$、C$等是系统默认管理共享,无需也不能删除。

Q8:Windows 更新后共享失效

  • 大版本更新可能重置网络类型为「公用网络」,重新设为「专用网络」即可
  • 防火墙规则一般不会丢失,但建议更新后复查

参考

  • Microsoft Docs: SMB Overview
  • Microsoft Docs: New-SmbShare
  • Microsoft: How to enable SMB encryption
  • MSRC: Stop using SMB1

相关新闻

  • Flask 后端时间处理 3 大场景:datetime、字符串、时间戳与SQL查询实战
  • 手机ROM剩余空间不多时无法查阅和编写短信
  • 3款主流SAR舰船检测数据集对比:LS-SSDD-v1.0 vs SSDD vs RSDD-SAR 核心差异与应用选型

最新新闻

  • 时间序列分解实战:Python statsmodels 0.14 加法与乘法分解 5 步代码详解
  • DevExpress中文教程 - 如何使用AI模型检查HTML编辑中的语法?
  • hifi3dface项目详解:如何从RGB-D自拍照创建高保真3D数字人?完整指南
  • django-role-permissions核心功能解析:角色定义、权限检查与用户管理全攻略
  • FutureKit网络请求封装:从Alamofire到URLSession的异步转换
  • NiGui未来路线图:即将到来的macOS支持与新特性预览

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号