Trocando DNS no MAC via CLI

No MacOS nem sempre trocar o DNS no /etc/resolv.conf realmente troca o DNS que todos os subsistemas e serviços estão usando, existe ali cache envolvido e maioria dos sistemas consultam um intermediário chamado mDNSresponder.

Normalmente a gente consulta o DNS dessa forma em sistemas *nix.

cat /etc/resolv.conf

exemplo de saída

# 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 127.0.0.1

Contudo, segundo os comentários do resolv.conf, a forma correta de ver a configuração de dns é usando o comando scutil —dns

scutil --dns

exemplo de saída

DNS configuration

resolver #1
  nameserver[0] : 127.0.0.1
  nameserver[1] : 192.168.222.12
  nameserver[2] : 192.168.222.14
  nameserver[3] : 192.168.222.13
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 127.0.0.1
  nameserver[1] : 192.168.222.12
  nameserver[2] : 192.168.222.14
  nameserver[3] : 192.168.222.13
  if_index : 21 (en7)
  flags    : Scoped, Request A records, Request AAAA records
  reach    : 0x00000002 (Reachable)

O comando vai retornar “DNS Configuration” e “DNS Configuration for scoped queries” que é o que precisamos checar. Podemos refinar a saída dessa forma.

scutil --dns | grep 'nameserver\[[0-9]*\]'

exemplo de saída

  nameserver[0] : 127.0.0.1 (pihole docker)
  nameserver[1] : 192.168.222.12 (pihole external)
  nameserver[2] : 192.168.222.14 (unbound-dns external)
  nameserver[3] : 192.168.222.13 (adguard-dns external)
  nameserver[0] : 127.0.0.1
  nameserver[1] : 192.168.222.12
  nameserver[2] : 192.168.222.14
  nameserver[3] : 192.168.222.13

Para mudar o DNS, primeiro temos que checar os devices, no MacOS a configuração é granular, por device. Os nomes eu coloquei apenas para entender o cada IP roda.

networksetup -listallnetworkservices

exemplo de saída

An asterisk (*) denotes that a network service is disabled.
ATSAM USB to Serial Converter
Unifi
Allrede_ISP
R2_ISP
Servers
Thunderbolt Bridge
Wi-Fi
iPhone USB

Entao, se eu estou usando a Wi-Fi para sair que é minha rede default, e desejo por exemplo usar Google DNS e CloudFlare DNS, os comandos para mudar seriam esses:

sudo networksetup -setdnsservers Wi-Fi empty
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1
sudo killall -HUP mDNSResponder

Se a minha rede default for a Unifi

sudo networksetup -setdnsservers Unifi empty
sudo networksetup -setdnsservers Unifi 8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1
sudo killall -HUP mDNSResponder

Obviamente, dá para fazer pelas configurações de rede, graficamente, mas o foco aqui é fazer no terminal.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Funkwhale

@gutocarvalho@bolha.studio

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io!

Nós temos muito mais para compartilhar contigo!

Conhece o HackSpace da Bolha?

Vem conhecer o espaço que usamos para estudar o fediverso!

Nosso site

WriteFreely

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]