-1

There are several ways to provide your MacBook Pro with Internet via some obscure socket, typically using OpenVPN, complemented by stubby for dns-over-tls. This works in Terminal

However, other GUI apps refuse to recognize that Internet is available because of how macOS detects connectivity. No custom network service can convince macOS that there is Internet. Only real network services like Ethernet, Bluetooth and Wi-Fi can do this, giving a green dot and “Connected” status in Network Preferences

How can I configure Catalina or issue a command on the command-line that convinces macOS GUI that Internet and dns are available?


scutil --dns | head -8 # displays the dns server used for general queries
# general queries are a vanilla request for any interface
# scoped queries are directed to particular interface
# dns servers comes from networkservices

# network services are evaluated in particular order
networksetup -listnetworkserviceorder

# each network service is associated with a hardware port
networksetup -listallhardwareports
# hardware ports have a magic state of being connected
# if a hardware port is not connected, its dns configuration is ignored

# if you don't have a hardware port, which in this case you do not
# you are not going to have any hardware port that is connected
# therefore there are no dns servers
# therefore no dns queries are executed by macOS

# the trick at the moment is to connect bluetooth to any device    
# which means there is hardware port that is connected
# therefore, dns queries are executed
# executed queries are picked up by stubby: success!

# the question here is to compel macOS to execute dns queries anyway
# without a real hardware port
# without such trickery, dns will only work in Terminal that does not use that part of macOS
9
  • 1
    Convince the GUI that Internet and DNS is available? What does the GUI have to do with either of those? What exactly are you trying to solve?
    – Allan
    Sep 9, 2020 at 18:10
  • 1
    I think Apple’s fancy programmatic dns doesn’t try to resolve if no networkservice indicates connected. zsh always try /etc/resolv.conf: networksetup -listallnetworkservices; scutil --dns
    – user229115
    Sep 9, 2020 at 21:44
  • browser say ERR_NAME_NOT_RESOLVED
    – user229115
    Sep 9, 2020 at 21:44
  • 1
    Networking is fully configurable via terminal/shell in macOS. Always has been. Probably best to add to your question what you have already tried, in detail. Sep 9, 2020 at 22:07
  • 2
    Just reading the comments indicates a fundamental misunderstanding of how networking functions on macOS. Please, what specifically is your question/problem
    – Allan
    Sep 9, 2020 at 22:21

1 Answer 1

0

How can I configure Catalina or issue a command on the command-line that convinces macOS GUI that Internet and dns are available?

macOS (every OS for that matter) doesn’t care about the Internet. The Internet, to your computer, is nothing special. It is to you can me, but to your computer, it’s just another network.

As far as DNS goes, it’s not required for Internet access. As long as you can route packets from one IP addresses to another on the public network called the Internet, you’re connected. DNS is required for convenience so you can associate a name with an IP. It makes using the Internet easier. However, it’s no different than how your local network works - you don’t need a DNS resolver (mDNS), but it sure makes it easier to remember the names of your computers than it is to remember each individual IP.

macOS or your apps (including the GUI) isn’t “aware” of the Internet. Your GUI has nothing, actually, to do with the network or the Internet. The GUI will still function whether or not it is connected. The GUI, however, will make things convenient for you; ;it tells you that you have Internet by (macOS) sending out a simple IGMP packet (like a ping) to a known server and if a response comes back, it tells you that it’s connected to the Internet. That “little green dot” in Network Preferences is nothing special. It’s just an indicator for you that you have Network Connectivity (not Internet) and that your Network is working as it should.

The error message in your browser, “ERR NAME NOT RESOLVED” means whatever you typed, DNS was not able to find. That doesn’t mean your Internet is not working nor are there special or obscure sockets incorrectly configured. There are any number of reasons that you’ve received that error message from not being connected to the network, to the Internet being down, to having stale DNS entries requiring a flush, etc. When you run into issues like this, the quickest way to resolve is to simply reboot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .