最有效方法是关闭SMB客户端强制签名:macOS 10.11.5起默认启用signing_required=yes,导致千兆内网吞吐从100 MB/s降至约30 MB/s;需终端创建并编辑/etc/nsmb.conf,写入[default] signing_required=no,重启生效。
macos 中局域网传输变慢,通常不是防火墙“拦得太狠”,而是它“放得太宽又太死”——默认放行 sharingd、smbd 等系统服务,却不干预其协议行为;真正拖慢速度的,是 smb 客户端签名、协议协商和网络参数,防火墙本身几乎不参与数据流处理。所以问题不在规则“没加”,而在规则掩盖了底层配置缺陷。
关闭 SMB 客户端强制签名(最有效)
macOS 10.11.5 起默认启用 signing_required=yes,每次 SMB 数据包都需加签验签,千兆内网实测吞吐可从 100 MB/s 降至约 30 MB/s。这不是防火墙能改的,必须手动禁用:
- 终端执行:
sudo touch /etc/nsmb.conf - 再运行:
sudo nano /etc/nsmb.conf - 输入以下两行内容:
[default]signing_required=no - 按 Ctrl+O 保存,回车确认,再按 Ctrl+X 退出
- 重启 Mac 生效
确认防火墙没误启“阻止所有传入连接”
该选项会覆盖所有放行规则,哪怕你已在「防火墙选项」里添加了 /usr/sbin/smbd,SMB 连接仍会被静默拒绝:
- 进入「系统设置 → 隐私与安全性 → 防火墙 → 防火墙选项」
- 检查左下角是否勾选了「阻止所有传入连接」——如已勾选,务必取消
- 同时确认「自动允许已签名的下载应用」为开启状态(终端运行
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getallowsigned,返回yes才正常)
别依赖防火墙控制 SMB 端口,直接调协议或关服务
macOS 防火墙对 smbd 是无条件放行的,哪怕你设了「阻止所有」;想真正优化 SMB,得绕过防火墙逻辑:
- 若只需临时禁用:「系统设置 → 通用 → 共享」→ 关掉「文件共享」
- 若需精细控制:终端停用服务(需 SIP 临时关闭才生效):
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.smbd.plist - 更推荐方式:保持共享开启,但强制使用高效协议——在 NAS 侧启用 SMB3 多通道,在 Mac 侧确保挂载时走 SMB2/SMB3(终端运行
mount | grep smb查看协议版本)
配合网络层调优提升实际吞吐
防火墙不卡速度,但 MTU、接口绑定等会影响 SMB 数据包效率:
- 将 Mac 有线网卡 MTU 设为 9000(巨帧):「系统设置 → 网络 → 对应接口 → 详细信息 → 硬件 → MTU = 9000」;NAS 侧也同步设为 9000
- 关闭 Finder 缩略图预生成:终端运行
defaults write com.apple.finder QLDisableThumbnailers -bool true && killall Finder - 优先使用有线连接,避免 Wi-Fi 干扰;如用 Wi-Fi,确保连接 5 GHz 频段


















