Windows 连接 macOS 的 SMB 共享:配置与「错误 86」排查
把 Mac 目录共享给同局域网的 Windows,并踩平凭据登录的坑
场景:一台 macOS 和一台 Windows 在同一局域网。想把 Mac 上的某个目录(这里以用户 home 为例)通过 SMB 共享出去,让 Windows 直接当网络盘读写。
下文所有 IP / 用户名 / 主机名 / 共享名均为占位符,按自己环境替换:
<MAC_IP>:Mac 的局域网 IP(如192.168.x.x)<用户名>:Mac 账户短名(home 目录名)<共享名>:自定义的共享点名称<主机名>:Mac 的计算机名
一、Mac 端:开启 SMB 文件共享
图形界面
系统设置 → 通用 → 共享 → 文件共享(打开)。点右侧 ⓘ 选项,勾选「使用 SMB 共享文件」,并勾上要用于登录的账户。
命令行(添加共享点 + 启服务)
# 添加共享点:-s 001 = 仅 SMB 协议;-g 000 = 禁止访客
sudo sharing -a /Users/<用户名> -n "<共享名>" -s 001 -g 000
# 启用 smbd 服务(开机自动加载,重启后保持)
sudo launchctl enable system/com.apple.smbd
sudo launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.smbd.plist
bootstrap若报Load failed: 5: Input/output error,通常是 smbd 本来就在运行,可忽略。
验证(Mac 端)
# 共享点是否存在
sharing -l
# 445 端口是否监听(由 launchd 托管,smbd 按需拉起,属正常机制)
sudo lsof -nP -iTCP:445 -sTCP:LISTEN
# 当前 IP
ipconfig getifaddr en0
# 应用防火墙是否放行 smbd(防火墙开启时需确认)
/usr/libexec/ApplicationFirewall/socketfilterfw --getappblocked /usr/sbin/smbd
看到 *:445 (LISTEN) 即服务就绪。
二、Windows 端:连接
直接访问
文件资源管理器地址栏输入回车(注意是反斜杠 \):
\\<MAC_IP>\<共享名>
弹出登录框 → 用户名填 <用户名>、密码填 Mac 登录密码 → 勾「记住凭据」。
映射为网络驱动器(开机自动挂载)
:: 已成功登录过、凭据被记住,可省略账号密码
net use Z: \\<MAC_IP>\<共享名> /persistent:yes
:: 需要带凭据时(* 会安全提示输入密码,不写在命令行里)
net use Z: \\<MAC_IP>\<共享名> /user:<用户名> * /persistent:yes
常用:net use 查看所有映射,net use Z: /delete 取消。
三、排查:连不上 / 错误号对照
先在 Windows 上分层确认网络通不通:
ping <MAC_IP>
Test-NetConnection <MAC_IP> -Port 445 :: 看 TcpTestSucceeded
| 错误 | 含义 | 解决 |
|---|---|---|
| ping 不通 | 不同网段 / 路由器开了 AP 隔离(访客网络常见) | 两台连同一主 WiFi,关 AP 隔离 |
| 错误 53 | 找不到网络路径 | IP 变了,重查 ipconfig getifaddr en0 |
| 错误 67 | 找不到网络名 | 共享点没建好 / 共享名拼错 / 用了 / |
| 错误 5 | 拒绝访问 | 凭据不对,或在 net view 无凭据枚举(正常被拒) |
| 错误 86 | 密码不正确 | 见下文,多半不是密码真错 |
| 错误 1219 | 凭据冲突 | 先 net use * /delete /y 再连 |
关键坑:net view \\<MAC_IP> 不弹密码框
net view 会默默拿当前 Windows 登录账户去试,不给输密码的机会,所以对 Mac 必然「拒绝访问」。这是正常的——跳过它,改用会提示凭据的 net use ... * 或图形界面登录。
关键坑:错误 86「密码不正确」——但密码明明是对的
最容易卡住的一步。两个真实成因:
① 密码被命令行吞了字符(最常见)
把密码直接写在 net use ... 密码 里时,若密码含 空格 & | ^ < > % ! 等字符,会被 cmd 当特殊符号解析,实际发出去的就错了。
→ 改用图形界面登录框逐字输入,或 net use ... * 交互输入(都不经 cmd 解析)。
自检:sudo 能用同一个密码成功,说明密码本身没错——sudo 是在自己的交互提示里收密码、不被 cmd 破坏,这恰好佐证是命令行转义问题。
② Apple ID 账户的 SMB 鉴权未启用 若账户绑定了 Apple ID,偶尔需要在「文件共享 → 选项」里显式勾选该用户做 SMB 共享,勾选时会要求重新输入一次密码,把凭据存成 SMB 可用的形式。勾完再连。
四、收尾
- 开机自动恢复:共享点与 smbd 服务都已持久化,重启后 Windows 直接连即可。
- IP 兜底:局域网 IP 是 DHCP 分配的,可能变动。可在路由器给 Mac 绑定静态 IP,或用主机名
\\<主机名>.local\<共享名>代替 IP(更稳)。 - 安全提醒:共享整个 home 会把敏感文件(凭据、SSH 私钥等)暴露在局域网,仅在可信网络使用;更稳妥的做法是只共享某个子目录。撤销共享:
sudo sharing -r <共享名>
一句话总结:Mac 端 sharing -a 建共享点 + 启 smbd;Windows 端用会弹凭据的方式登录;错误 86 九成是命令行把密码里的特殊字符吞了,换 GUI 或 * 交互输入即可。
原文链接:https://www.ssssmy.com/notes/windows-lian-jie-macos-de-smb-gong-xiang-pei-zhi-yu-cuo-wu-86-pai-cha