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

发布时间:2026/7/6 11:55:25

将 Windows PC 作为网络文件共享(SMB)服务器 V2.1—— 局域网内高速传文件 让局域网内所有设备电脑、手机、电视、NAS通过这台 Windows PC 访问同一个共享文件夹无需额外硬件、无需 U 盘拷贝。目录已更新傻瓜式执行文件V2.1原理说明安全风险概述必读系统兼容性说明安全措施与备份机制一键配置推荐手动配置步骤防火墙精准放行 SMB 端口NTFS 权限精细控制验证共享是否正常运行配置局域网其他设备访问安全加固强烈推荐常见问题与排错执行文件更新20260704已更新为执行文件v2.1以管理员身份运行即可一键下载地址https://download.csdn.net/download/hjjhl/93071685?spm1001.2014.3001.5501原理说明Windows 文件共享基于SMBServer 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.1Windows 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. 创建要共享的文件夹如已存在则跳过 $sharePathD:\SharedFilesNew-Item-ItemType Directory-Path$sharePath-Force# 2. 设置 NTFS 权限仅允许当前用户完全控制 $aclGet-Acl$sharePath$acl.SetAccessRuleProtection($true,$false)# 禁用继承避免意外继承父目录的开放权限$ruleNew-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-NameSharedFiles-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-neDuplicate}|Select-Object-First 1)$subnet($localIP.IPAddress-replace\d$,0)/24# 先删除旧规则如有netsh advfirewall firewall delete rule nameSMB 文件共享2$null# 新建精准规则netsh advfirewall firewall add rule nameSMB 文件共享protocoltcpdirin localport445 remoteip$subnetactionallow# 6. 确保 Server 服务正在运行 Set-ServiceLanmanServer-StartupType AutomaticStart-ServiceLanmanServerWrite-HostWrite-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 端口给全部 IPany应限制为局域网子网范围。最佳实践仅允许局域网子网# 假设本机 IP 为 192.168.1.100子网掩码 255.255.255.0# 则允许源 IP192.168.1.0/24netsh advfirewall firewall add rule nameSMB 文件共享 protocoltcpdirin localport445 remoteip192.168.1.0/24actionallow如需同时关联 NetBIOS旧设备兼容部分旧设备如老式网络播放器、打印机可能需要 TCP 139netsh advfirewall firewall add rule nameSMB NetBIOS protocoltcpdirin localport139 remoteip192.168.1.0/24actionallow图形界面操作Win R→ 输入wf.msc→ 回车左侧入站规则→ 右侧新建规则…规则类型端口→ TCP特定本地端口445操作允许连接配置文件专用局域网环境不要勾选公用在「作用域」步骤中远程 IP 地址选择「下列 IP 地址」→ 添加局域网子网如192.168.1.0/24名称SMB 文件共享NTFS 权限精细控制共享权限只能在网络访问层控制读/写真正的安全防线是NTFS 文件系统权限。建议遵循以下原则原则一最小权限只授予完成任务所需的最低权限# 仅读取适用于资料库、照片库$aclGet-AclD:\PhotoLibrary$ruleNew-ObjectSystem.Security.AccessControl.FileSystemAccessRule(UserName,ReadAndExecute,ContainerInherit,ObjectInherit,None,Allow)$acl.AddAccessRule($rule)Set-AclD:\PhotoLibrary$acl# 完全控制适用于工作目录$aclGet-AclD:\WorkDir$ruleNew-ObjectSystem.Security.AccessControl.FileSystemAccessRule(UserName,FullControl,ContainerInherit,ObjectInherit,None,Allow)$acl.AddAccessRule($rule)Set-AclD:\WorkDir$acl原则二禁用继承后自定义共享文件夹应从父目录断开权限继承避免意外继承 C 盘或 D 盘根目录的宽松权限$aclGet-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,DialectDialect字段显示协议版本如 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:yesmacOS 客户端访达→ 菜单栏前往→连接服务器…⌘K输入smb://192.168.1.100/SharedFiles用户名密码认证 → 连接Linux 客户端# 挂载sudomount-tcifs //192.168.1.100/SharedFiles /mnt/share-ousername你的用户名,vers3.0# 卸载sudoumount/mnt/share# 持久化挂载编辑 /etc/fstab//192.168.1.100/SharedFiles /mnt/share cifsusername你的用户名,password你的密码,vers3.1.1,uid1000,gid100000⚠/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/CIFSSMB 1.0 是 WannaCry 勒索病毒的主要传播媒介且没有任何合理理由在新环境中启用# 禁用 SMB 1.0Disable-WindowsOptionalFeature-Online-FeatureName SMB1Protocol-NoRestart# 验证是否已禁用Get-WindowsOptionalFeature-Online-FeatureName SMB1Protocol|Select-ObjectState加固二启用 SMB 加密如需敏感数据共享# 对特定共享启用加密Set-SmbShare-NameSharedFiles-EncryptData$true注意启用加密后旧版 SMB 客户端如老旧安卓设备可能无法连接。加固三禁止匿名/访客访问# 拒绝空密码的网络访问Set-ItemProperty-PathHKLM:\SYSTEM\CurrentControlSet\Control\Lsa-NameLimitBlankPasswordUse-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# 对共享文件夹设置审计项需要事件查看器中查看$aclGet-AclD:\SharedFiles$auditRuleNew-ObjectSystem.Security.AccessControl.FileSystemAuditRule(Everyone,ReadData,WriteData,ContainerInherit,ObjectInherit,Success,Failure)$acl.AddAuditRule($auditRule)Set-AclD:\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-NameSharedFiles-ForceQ6共享文件夹在 D 盘但 D 盘满了怎么办共享文件夹可以放在任何磁盘也可以使用 NTFS 挂载点Junction将不同盘符映射进来使用mklink创建目录符号链接mklink /D D:\SharedFiles\Extra E:\ExtraDataQ7如何重置所有共享恢复无共享状态Get-SmbShare|Where-Object{$_.Name-notin(ADMIN$,C$,IPC$,NETLOGON,SYSVOL)}|Remove-SmbShare-ForceADMIN$、C$等是系统默认管理共享无需也不能删除。Q8Windows 更新后共享失效大版本更新可能重置网络类型为「公用网络」重新设为「专用网络」即可防火墙规则一般不会丢失但建议更新后复查参考Microsoft Docs: SMB OverviewMicrosoft Docs: New-SmbShareMicrosoft: How to enable SMB encryptionMSRC: Stop using SMB1

相关新闻