MacOS局域网传输变慢主因非防火墙拦截,而是SMB协议配置(如客户端签名启用)、网络参数(MTU未调至9000)、服务冗余(如AirDrop/SMB后台进程)及Finder缩略图预生成所致;禁用signing_required、强制vers=3.0、设MTU=9000、关闭QLDisableThumbnailers可将千兆内网速度从20–40 MB/s提至90–110 MB/s。
macos 中局域网传输变慢,通常不是防火墙入站规则本身拖慢速度,而是防火墙设置间接触发了系统服务降级或协议限制。比如你开了防火墙、又勾选了“阻止所有传入连接”,系统可能自动禁用或降级 smb 服务;或者你手动加了不匹配的规则,导致系统反复重载 pf 配置,干扰网络栈。真正影响传输性能的,是协议行为、服务配置和底层网络参数,而非防火墙“拦包”这个动作。
下面分三类情况说明怎么定位和解决:
确认防火墙是否实际干扰了共享服务
macOS 防火墙(socketfilterfw + pf)默认完全放行系统服务,如 smbd、sharingd、afpd。哪怕你打开了「阻止所有传入连接」,这些服务依然能通——这是设计使然,不是 bug。
所以先验证:
- 运行
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate,确认输出是 Firewall is enabled. - 再运行
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getallowsigned,如果返回yes,说明已签名系统服务(含smbd)自动放行,防火墙没在拦它 - 如果传输慢但
smb://能连上、Finder 能挂载,那问题几乎肯定不在防火墙拦截,而在 SMB 协议层
关停冗余服务比调防火墙更有效
很多用户误以为“开了防火墙就得配规则”,其实 macOS 的「网络共享」开关本质是启停后台进程。只要关掉不用的服务,既省资源又避免协议冲突:
- 不用 AirDrop?执行:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.airdropd.plist - 不用 SMB 文件共享?直接在「系统设置 → 通用 → 共享」里关掉「文件共享」;或命令行:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.smbd.plist - 不用打印机共享(端口 631)?关掉「打印机共享」,或:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.cups.cupsd.plist
⚠️ 注意:
launchctl unload -w后若重启又恢复,说明 plist 被 SIP 保护,不建议为这点事关 SIP。优先用图形界面关闭更稳妥。
优化 SMB 协议与网络参数(这才是提速关键)
局域网 NAS 传输慢,90% 出在 SMB 配置。以下操作实测可将千兆内网读写从 20–40 MB/s 提升至 90–110 MB/s:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
-
禁用 SMB 客户端签名(最立竿见影):
sudo touch /etc/nsmb.conf echo '[default]' | sudo tee /etc/nsmb.conf echo 'signing_required=no' | sudo tee -a /etc/nsmb.conf
保存后重启 Mac,或至少注销重登。
强制使用 SMB2/SMB3 协议(避免回退到低效 SMB1):
在 Finder 中连接时,不要用smb://nas-ip,改用:smb://nas-ip/sharename?vers=3.0或?vers=2.1-
调高 MTU 到 9000(巨帧):
- 终端执行:
sudo ifconfig en0 mtu 9000(en0换成你实际有线网口名) - NAS 后台也同步设 MTU=9000(如 Synology:控制面板 → 网络 → 网络接口 → 编辑 → MTU)
- 终端执行:
关掉 Finder 缩略图预生成(缓解挂载后卡顿):
在终端运行:defaults write com.apple.finder QLDisableThumbnailers -bool TRUE && killall Finder
不复杂但容易忽略

















