How to Fix Slow SMB File Transfers on OS X 10.11.5+ and macOS Sierra

The Issue

After recently upgrading to OS X 10.11.5, I noticed some SMB file transfers were taking a lot longer than usual. Instead of the normal 100MB/sec transfer speeds I typically see between my Macbook Pro and my Synology NAS on a gigabit (wired) network, I was seeing something closer to 30MB/sec.

Turns out I’m not the only one with this issue. Searching Google for “10.11.5 slow smb” returns pages full of results of people reporting the same issue. Most of them say “switch to AFP and the problem goes away.” That’s nice but I specifically use SMB because I have a share that’s accessed by Linux, Mac, and Windows - and so SMB is the right solution to keep file naming consistent.

The issue seems to come down to Apple’s SMB forcing default enabling of “client signing” which ruins performance.

One smart person (or conspiracy theorist) guesses that this was a change made by Apple based on the Badlock SMB issue in order to mitigate Man-In-The-Middle attacks. Regardless of the reason, it’s a really shitty thing to do to break transfer speeds on a well used protocol without at least acknowledging the problem or suggesting workarounds.

The Fix

Buried in one thread on the Apple Discussion Forum is a suggestion to use the /etc/nsmb.conf file to disable client signing on the client end.

[default]
signing_required=no

After unmounting & remounting the SMB share, I verified this returns transfer speeds to normal.

How to Fix It In One Command

Open up a terminal and enter this command.

printf "[default]\nsigning_required=no\n" | sudo tee /etc/nsmb.conf >/dev/null

Then unmount and remount any SMB shares.

Implications

Client signing does provide additional security, but who’s kidding who - nobody should be running SMB over the internet or on any untrusted network in the first place.

When Won’t This Work?

If your server is set to require SMB signing from clients, then this change will break SMB connectivity, and you will have to either reverse the change or change your SMB server settings.

Reversing The Change

If the fix is causing other issues or lack of SMB connectivity, and you need to reverse it - simply delete the /etc/nsmb.conf file with this command

sudo rm /etc/nsmb.conf

By default the file does not exist on a fresh install of OS X/macOS.

Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Veuillez vous connecter pour laisser un commentaire.
Réalisé par Zendesk