Why MacBook Won’t Connect to Raspberry Pi WiFi – Troubleshooting Guide

macbook proNetworkwifi

I have my Raspberry Pi setup as a WiFi router, which works great! Except for one problem, my MacBook.

Connecting through my Galaxy Tab 3 Note? A-OK. Alcatel cellphone? A-OK. Chromebook? Sure thing.

Even my Roku 2, no problem.

But my MacBook? It connects to the WiFi no problem. I can even run a python -m SimpleHTTPServer on it and connect to the server via http://172.16.1.1:8000 and that works just fine. But if I try to ping 8.8.8.8? Well, that's where we start running into issues.

I actually tried running tcpdump on my Raspberry when I started pinging 8.8.8.8 from my MacBook, but none of the ping packets showed up. I just tried pinging from a different device and packets definitely showed up.

There definitely was traffic from the Mac – a lot of UDP traffic, some TCP. Most of the TCP packets from my MacBook were retransmissions. There were some packets that were routed back to the IP. Here are a couple of the IPs:

UDP:

  • 65.55.223.48,21,17
  • 64.4.23.170,148,142
  • 50.242.151.22
  • 37.59.40.88
  • 208.64.201.169
  • 162.254.199.136

TCP: (only these two IPs sent any TCP packets back)

  • 65.55.223.37
  • 208.64.201.169

So for some reason it appears that my Mac, and only my Mac, isn't doing something right. Any clue what could be causing the connection to fail?

Update:

It definitely looks like a DNS issue – Google Chrome provides an error DNS_PROBE_FINISHED_NO_INTERNET. Also, I can do telnet 216.58.218.206 80, and then interestingly enough it waits and waits and waits, but then it connects. After which

GET / HTTP/1.1
Host: google.com
Content-Accept: */*

Returns with the Google 301 redirect to http://www.google.com

Best Answer

It looks like something was horked up with my routing table. Flushing my routes with

$ sudo route -n flush

at the terminal several times, clearing my custom DNS entries, and turning my wifi off and then on again allows me to connect properly.