HomeLab: Unable to connect Peet’s Coffee WiFi
Spent almost 30min to figure out why my Mac can’t connect to Peets Coffee WiFi
Intro
I went to Peet’s Coffee near where I live to have some coffee and research about the new project I will work on.
When I went there with my wife. The computer equipments we had were MacBook, iPad, and iPhone. ( yep, most of our equipments from Apple )
Bought coffee and tried to connect to WiFi
After we bought some coffee, we got a table. My wife opened her iPad to do her own stuff, and I opened my MacBook.
It was easy to find and click to connect to Peet’s WiFi.
After few seconds, my wife got on Peet’s WiFi, but my MacBook wasn’t able to connect. — hmm interesting.
Let’s start investigating why I wasn’t able to connect
I wasn’t sure why my MacBook wasn’t able to connect to Peet’s WiFi.
Actually, my MacBook was able to connect to Peet’s WiFi, but it wasn’t able to get the Internet Connection. ( Ok, interesting )
I opened up my iPhone and tried to connect to Peet’s WiFi and checked what types of processes it had to go through to get the Internet Connection.
- Select Peet’s WiFi
- a popup window showed up and asked to click “Free Wi-Fi Please” button after reading the “Terms of Services”
- UI asked to provide an email address ( it has to be a valid one; otherwise it will fail )
- finally, it went through some kind of authentication/authorization processes and my iPhone was able to get the Internet connection.
My MacBook was unable to show the popup window
Basically, the popup window having the “Terms of Service” and “Free Wi-Fi Please” has to popup to start the authentication/authorization, but somehow, my MacBook didn’t see it. ( shoot )
By using my iPhone ( since it can access the mobile network ), I googled if there are any resolutions I can use.
It might be caused by custom DNS entries
After I read several posts, I found an interesting post that might be related to the issue I have.
The post shared that sometimes the custom DNS entries might cause blocking the public Wi-Fi connection process. ( Ok. interesting )
Since I do have my own custom DNS entries that are pushed from my homelab routers, I guessed that removing those custom DNS entries might be able to resolve the issue I have.
Check the current DNS entries
DNS entries in MackBook can be found in 2–3 different ways. Once of them is checking the content of /etc/resolv.conf
Since MacOS sometimes uses the cached DNS, the active DNS entries might be different from the one in /etc/resolv.conf.
I checked what I had in /etc/resolv.conf.
192.168.1.91 is my custom DNS server. And, 192.168.4.1 is from Peet’s Coffee.
➜ ~ cat /etc/resolv.conf
#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
# scutil --dns
#
# SEE ALSO
# dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
nameserver 192.168.1.91
nameserver 192.168.4.1
Remove custom DNS entries
The different MacOS versions have the different ways to find the DNS entries. ( yep, it is confusing )
My MacBook has MacOS Ventura 13.2.1. In the version, I was able to find and remove the DNS menu for the Peet’s WiFi Connection like below.
- Open Wi-Fi icon on Top-Right menu.
- Find the Peet’s Wi-Fi Connection
- Select DNS tab on the left
- Remove all DNS entries
Forget Peet’s WiFi and Connect again
Once the all steps in the previous section are completed.
- Disconnect from Peet’s WiFi
- Connect Pett’s WiFi again
In this way, I was able to connect Peet’s WiFi
Why does the custom DNS block to connect to Peet’s WiFi?
Hmm. I guess it might be because my custom DNS ( 192.168.1.91 ) is not reachable ( since I am not at home ), so the DNS requests are stuck and the Peet’s WiFi auth process wasn’t able to continue.
One thing I don’t understand is that why MacBook doesn’t automatically failover to the second DNS that is added by Peet ( 192.168.4.1 ). At least, the DNS failover behavior is something I saw in CentOS Linux.