How to limit the traffic generated by mDNSResponder?

Despite its name, mDNSResponder handles both local multicast DNS ("mDNS", which will not be adding to your cell bill), and regular unicast DNS (which is not generally local, and will be adding to your cell bill). The figures in Activity Monitor don't distinguish between the two. My guess is that most of the traffic is local (mDNS is a bit chatty), but you'd have to run some tests to be sure.

There is a way to cut down on actual DNS traffic: a lot of the DNS lookups your computer is doing are probably from web ads, and some forms of ad blocking will prevent those lookups. Unfortunately, I haven't looked at this in a while, and don't know which types of blockers work early enough to prevent the DNS lookup. Essentially, there are three levels at which a blocker can work:

  • Detect and block ad content very early, and block fetching the ad content before the DNS lookup is done (leading to minimal network traffic).
  • Detect and block ad content after the lookup is done, but before the ad content is fetched (leading to slightly more network traffic).
  • Detect and block ad content after it is fetched (leading to full network traffic, ads just aren't displayed).

One ad-blocking method that's guaranteed to work at the first level is installing an alternate /etc/hosts file with faked entries for known advertising server domains. There are a variety of these available, for instance at Steven Black's github (which has a bunch of them with different groups of servers, also has scripts for building your own). If you want to do this, there are installation instructions here, although I'll add one step: make a backup copy of the original /etc/hosts file first!


On MacOS there is a way to greatly reduce mDNSResponder's traffic on the local network.

From the manpage for mDNSResponder:

OPTIONAL ARGUMENTS
 mDNSResponder accepts the following optional arguments:

 -AlwaysAppendSearchDomains
                            Append search domains for multi-labeled Partially Qualified Domain Name as well as single-labeled Partially
                            Qualified Domain Name.  This argument is not recommended because of the extra DNS traffic it generates and
                            its adverse effect on battery life.

 -NoMulticastAdvertisements
                            Prevent the system from advertising Bonjour services via Multicast DNS.

 To cause mDNSResponder to run with these optional arguments when it launches on OS X 10.11 (El Capitan) and later, set the
 AlwaysAppendSearchDomains or NoMulticastAdvertisements boolean keys to true in /Library/Preferences/com.apple.mDNSResponder.plist and
 reboot.

The second option will stop mDNS from broadcasting bonjour availability, although I don't think it's Bonjour traffic that is your problem, that traffic won't leave the network. I believe you can use a configuration profile to duplicate this on iOS.

Because of recent security news, most of it bad, you might want to take some time to make sure that some apps are not ferrying screenshots of your screen, or, in my case, slyly pumping out half a gig in the dead of the night.

I found turning off bluetooth at night stopped this.