Hoje, no meu computador Ubuntu 22.04.5, descobri dois servidores de nomes desconhecidos em /etc/resolv.conf
(link simbólico para /run/systemd/resolve/resolv.conf
):
nameserver fe80::e0eb:40ff:fe79:e364%36 # Does not belong
nameserver 172.20.10.1 # Does not belong
nameserver 192.168.1.1 # Correct nameserver
search .
Como resultado, todos os nomes de host locais na minha intranet (por exemplo, myhost ) estavam falhando em resolver. A reexecução sudo systemd restart systemd-resolved.service
não alterou nada.
Finalmente rastreei o problema no meu iPhone 8, que estava conectado por um cabo USB ao computador. O iPhone estava executando um Personal Hotspot, e o systemd o estava tratando como meu servidor de nomes primário, substituindo 192.168.1.1.
Como posso evitar que esse problema aconteça no futuro quando meu iPhone estiver conectado ao computador? Existe alguma maneira de dizer ao systemd para ignorar o hotspot do iPhone? Muito obrigado.
systemd-resolved
estava fazendo isso porque o que quer que você esteja usando para configurar suas redes (NetworkManager
?systemd-networkd
?netplan
? estilo RasPi simplesdhcpcd
?) disse para ele fazer isso.O que você pediu
Para restaurar imediatamente suas configurações de DNS para o que eram antes de conectar o iPhone, você pode usar um comando como este:
onde
112233445566
representa o endereço MAC de tethering USB do seu iPhone.Para evitar que isso aconteça no futuro, você pode dizer ao seu sistema que você tem um domínio DNS privado que só pode ser acessado por meio de uma interface de rede específica (ou interfaces). Como parece que você configurou explicitamente seus nomes DNS privados como nomes de Domínio de Nível Superior, você teria que fazer isso, assumindo que sua interface de rede normal é
eno1
:Isso faz com
eno1
que seja a interface preferida para todas as solicitações de DNS.Somente se você tivesse
/etc/systemd/network/*.network
um arquivo para definir o endereço IP do seu resolvedor DNS, você poderia tornar essa correção persistente adicionando esta linha ao final:Se você tivesse configurado seus nomes DNS privados usando o
*.home.arpa
domínio de acordo com a recomendação mais recente do RFC 8375 (e usadosearch home.arpa
para evitar a necessidade de digitar o sufixo), você poderia ter usadoresolvectl domain eno1 "~home.arpa"
/Domains=~home.arpa
, permitindo que você alternasse facilmente para usar a conexão de internet do seu iPhone conectado sempre que sua rede regular estivesse inativa.O que você realmente pode querer
Supondo que você esteja usando
NetworkManager
o que eu acho que ainda é o padrão nas configurações de desktop/laptop do Ubuntu, você deve primeiro descobrir o nome da conexão do NetworkManager da sua conexão tether do iPhone.Você pode fazer isso executando
nmcli c
. Ele produzirá algo como isto:Aqui
enx112233445566
está a interface de rede tether do iPhone (todas as interfaces de rede USB começam comenx
e usam o endereço MAC, pois o caminho do dispositivo USB seria ainda mais complexo e poderia mudar se você usasse uma porta USB diferente às vezes). O nome da conexão aqui éWired connection 1
, que é o nome padrão gerado automaticamente pelo NetworkManager para uma conexão do tipo ethernet.Para impedir persistentemente que a conexão do iPhone altere suas configurações de DNS:
Se você quiser alterar o nome da conexão para algo mais descritivo, você também pode fazer isso: