15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
30.10.2024
1 +1

O Arquivo Hosts do macOS: O Guia Completo para Controle de DNS Local

Quer seja um programador a testar um novo site antes do lançamento, a resolver problemas numa migração de servidor, ou simplesmente a bloquear sites distrativos, o ficheiro hosts do macOS é uma das ferramentas mais poderosas — e menos utilizadas — do seu arsenal. Este guia abrangente orienta-o em tudo o que precisa de saber: o que é o ficheiro hosts, onde encontrá-lo, como editá-lo com segurança e como aproveitá-lo para fluxos de trabalho do mundo real, como testes em servidores de staging e ambientes de desenvolvimento local.

O Que É o Ficheiro Hosts?

O ficheiro hosts é um ficheiro de sistema em texto simples que mapeia nomes de host legíveis por humanos (como example.com) para endereços IP específicos. Antes de o seu Mac enviar uma consulta DNS para um resolvedor externo, verifica primeiro o ficheiro hosts local. Se existir uma entrada correspondente, utiliza esse endereço IP — sem envolver nenhum servidor DNS.

Isto torna o ficheiro hosts numa espécie de camada de substituição DNS local, dando-lhe controlo granular sobre como a sua máquina resolve nomes de domínio. Opera silenciosamente em segundo plano e, quando utilizado corretamente, é uma ferramenta incrivelmente eficiente tanto para programadores como para administradores de sistemas.

Casos de Utilização Principais em Resumo

Caso de UtilizaçãoO Que Faz
Bloqueio de SitesMapeia um domínio para 0.0.0.0 para impedir o acesso
Desenvolvimento LocalMapeia um domínio personalizado para 127.0.0.1 para testes em localhost
Testes DNS / MigraçãoAponta um domínio ativo para um novo IP de servidor antes da propagação DNS
Ambientes de StagingPré-visualiza um site num novo host sem alterar o DNS público
Reforço de SegurançaBloqueia domínios maliciosos conhecidos ou que servem anúncios

Onde Está Localizado o Ficheiro Hosts no macOS?

No macOS, o ficheiro hosts encontra-se no diretório /etc/. O caminho completo é:

/etc/hosts

Este é um ficheiro de sistema protegido, o que significa que precisa de privilégios de administrador (root) para o modificar. Não pode simplesmente fazer duplo clique nele e começar a editar — deve utilizar o Terminal com permissões elevadas através de sudo.

> Nota: O diretório /etc/ no macOS é na verdade uma ligação simbólica para /private/etc/, portanto /etc/hosts e /private/etc/hosts apontam para o mesmo ficheiro.

Como Editar o Ficheiro Hosts no macOS: Passo a Passo

Passo 1 — Abrir o Terminal

Inicie a aplicação Terminal. Pode fazê-lo de duas formas:

  • Pesquisa Spotlight: Prima Command + Space, escreva Terminal e prima Enter
  • Finder: Navegue até Applications > Utilities > Terminal

Passo 2 — Abrir o Ficheiro Hosts com Privilégios Elevados

Utilize o editor de texto nano com sudo para abrir o ficheiro hosts:

sudo nano /etc/hosts

Ser-lhe-á solicitado que introduza a sua palavra-passe de administrador do macOS. Escreva-a e prima Enter. Note que o campo da palavra-passe permanecerá em branco enquanto escreve — este é o comportamento normal do sudo no Terminal.

Passo 3 — Compreender as Entradas Predefinidas

Assim que o ficheiro abrir no nano, verá as entradas predefinidas com que o macOS é fornecido:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Não elimine nem modifique estas entradas predefinidas. São necessárias para o correto funcionamento do seu sistema. Todas as entradas personalizadas devem ser adicionadas abaixo destas linhas.

Passo 4 — Adicionar as Suas Entradas Personalizadas

A sintaxe para uma entrada no ficheiro hosts é simples:

<IP address>    <hostname>    [optional alias]

Cada entrada deve estar na sua própria linha. Aqui estão exemplos práticos:

Bloquear um site:

0.0.0.0    facebook.com
0.0.0.0    www.facebook.com

Mapear um domínio de desenvolvimento local:

127.0.0.1    myproject.local
127.0.0.1    myproject.dev

Apontar um domínio para um servidor específico para testes de migração:

192.168.1.100    mywebsite.com
192.168.1.100    www.mywebsite.com

Também pode adicionar comentários em linha utilizando o caractere # para manter o seu ficheiro hosts organizado:

# --- Local Development Projects ---
127.0.0.1    project-alpha.local
127.0.0.1    project-beta.local

# --- Migration Testing: New Server IP 203.0.113.50 ---
203.0.113.50    clientsite.com
203.0.113.50    www.clientsite.com

Passo 5 — Guardar o Ficheiro

Depois de ter feito as suas alterações no nano:

  1. Prima Control + O para escrever (guardar) o ficheiro
  2. Prima Enter para confirmar o nome do ficheiro
  3. Prima Control + X para sair do nano

Passo 6 — Limpar a Cache DNS

Editar o ficheiro hosts por si só não é suficiente — o macOS armazena em cache as pesquisas DNS, por isso precisa de limpar a cache DNS para forçar o seu sistema a reconhecer as novas entradas imediatamente.

Execute o seguinte comando no Terminal:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Este comando faz duas coisas:

  • dscacheutil -flushcache — limpa a cache DNS local
  • killall -HUP mDNSResponder — reinicia o processo mDNSResponder, que gere a resolução DNS no macOS

Após executar isto, abra o seu browser e teste o domínio. As alterações devem entrar em vigor imediatamente.

> Nota sobre a Versão do macOS: O comando de limpeza acima funciona no macOS Monterey, Ventura, Sonoma e Sequoia. Em versões mais antigas (anteriores ao Yosemite), o comando pode diferir ligeiramente.

Casos de Utilização do Mundo Real em Detalhe

Caso de Utilização 1: Bloqueio de Sites

O ficheiro hosts é uma das formas mais simples e eficazes de bloquear sites distrativos ou prejudiciais ao nível do sistema — sem necessidade de software de terceiros.

Ao mapear um domínio para 0.0.0.0 (um endereço não encaminhável), impede que o seu browser aceda alguma vez ao site:

0.0.0.0    reddit.com
0.0.0.0    www.reddit.com
0.0.0.0    twitter.com
0.0.0.0    www.twitter.com

Ao contrário das extensões de browser, este bloqueio aplica-se a todo o sistema — afeta todos os browsers e aplicações no seu Mac.

Caso de Utilização 2: Ambientes de Desenvolvimento Local

Se estiver a criar sites ou aplicações web localmente, o ficheiro hosts permite-lhe atribuir nomes de domínio personalizados ao seu ambiente localhost em vez de utilizar o genérico http://localhost ou http://127.0.0.1.

127.0.0.1    myshop.local
127.0.0.1    clientproject.local
127.0.0.1    wordpress-staging.local

Isto é especialmente útil quando se trabalha com projetos WordPress, Joomla ou Laravel que utilizam URLs absolutas ou domínios de cookies associados a um nome de host específico. Combine isto com uma pilha de servidor web local (como MAMP, Laravel Valet ou um contentor Docker) e terá um fluxo de trabalho de desenvolvimento local profissional.

Se estiver a executar o seu ambiente de desenvolvimento numa instância de VPS Hosting remota em vez de localmente, o mesmo princípio se aplica — pode apontar um domínio diretamente para o IP do seu VPS para testes antes de atualizar os registos DNS públicos.

Caso de Utilização 3: Testar Migrações de Servidor Sem Propagação DNS

Este é sem dúvida o caso de utilização mais valioso para programadores e administradores de sistemas. Quando migra um site para um novo servidor — quer esteja a mudar de fornecedor de alojamento ou a atualizar a sua infraestrutura — a propagação DNS pode demorar entre alguns minutos e 48 horas.

O ficheiro hosts permite-lhe pré-visualizar o site no novo servidor imediatamente, a partir da sua própria máquina, sem afetar mais ninguém.

Exemplo de cenário: Está a migrar mywebsite.com para um novo Servidor Dedicado com o endereço IP 203.0.113.50. Adicione esta entrada:

203.0.113.50    mywebsite.com
203.0.113.50    www.mywebsite.com

Agora, quando escrever mywebsite.com no seu browser, o seu Mac carrega o site a partir do novo servidor — mesmo que o DNS público ainda aponte para o antigo. Isto permite-lhe:

  • Verificar se todas as páginas carregam corretamente
  • Verificar se os certificados SSL estão corretamente instalados
  • Testar formulários de contacto, fluxos de checkout e funcionalidades dinâmicas
  • Confirmar que as ligações à base de dados e os ficheiros de média estão intactos

Assim que estiver satisfeito com o funcionamento de tudo, atualize os registos DNS públicos. A transição será transparente para os seus visitantes.

Caso de Utilização 4: Contornar o DNS para Resolução de Problemas

Por vezes, problemas de DNS podem tornar um site inacessível mesmo quando o próprio servidor está a funcionar corretamente. O ficheiro hosts permite-lhe contornar completamente o DNS e ligar-se diretamente a um endereço IP conhecido para diagnosticar o problema.

Isto é particularmente útil quando:

  • Os registos DNS do seu domínio estão mal configurados
  • Está a testar uma nova instalação de Certificados SSL antes de o DNS ter propagado
  • Precisa de verificar se um servidor está a responder corretamente enquanto os problemas de DNS estão a ser resolvidos

Caso de Utilização 5: Testar Configurações de Alojamento de Email

Se estiver a configurar ou a migrar Alojamento de Email e precisar de verificar se o seu servidor de correio está acessível num IP específico antes de os registos DNS serem atualizados, pode mapear temporariamente o seu domínio de correio no ficheiro hosts para testar a conectividade e a configuração.

Verificar as Alterações ao Ficheiro Hosts

Antes de limpar a cache DNS, é boa prática verificar se a sua entrada foi guardada corretamente. Pode ver o conteúdo atual do ficheiro hosts sem o editar utilizando:

cat /etc/hosts

Também pode utilizar o comando ping para verificar se um nome de host resolve para o IP esperado:

ping mywebsite.com

O resultado deve mostrar o endereço IP que mapeou no ficheiro hosts.

Restaurar o Ficheiro Hosts Predefinido

Se o seu ficheiro hosts ficar sobrecarregado ou algo correr mal, pode repô-lo para o seu estado predefinido. Abra o ficheiro com sudo nano /etc/hosts, remova todas as entradas personalizadas e certifique-se de que o ficheiro contém apenas os valores predefinidos originais:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Guarde o ficheiro, saia do nano e limpe a cache DNS utilizando o comando do Passo 6. O seu sistema voltará a utilizar a resolução DNS padrão para todos os domínios.

Considerações de Segurança

Embora o ficheiro hosts seja uma ferramenta poderosa, tenha em mente estas boas práticas de segurança:

  • Limitar o acesso: Apenas os administradores devem ter acesso de escrita a /etc/hosts. Verifique as permissões com ls -la /etc/hosts — deve mostrar -rw-r--r--.
  • Remover entradas de teste após utilização: Não deixe entradas de testes de migração após ter terminado. Podem causar confusão e comportamentos inesperados mais tarde.
  • Estar ciente de malware: Alguns malwares modificam o ficheiro hosts para redirecionar domínios legítimos para servidores maliciosos. Reveja periodicamente o seu ficheiro hosts para garantir que não existem entradas não autorizadas.
  • Utilizar controlo de versões para equipas: Se vários programadores partilham um ambiente de desenvolvimento, considere documentar as entradas do seu ficheiro hosts num README partilhado ou num ficheiro de configuração com controlo de versões.

Referência Rápida: Comandos Essenciais

TarefaComando
Abrir o ficheiro hosts para ediçãosudo nano /etc/hosts
Ver o ficheiro hosts (apenas leitura)cat /etc/hosts
Limpar cache DNS (macOS Ventura/Sonoma)sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Verificar permissões do ficheirols -la /etc/hosts
Verificar resolução de nome de hostping yourdomain.com
Guardar no nanoControl + O, depois Enter
Sair do nanoControl + X

Perguntas Frequentes

Preciso de reiniciar o meu Mac depois de editar o ficheiro hosts?

Não. Limpar a cache DNS com o comando dscacheutil é suficiente. Não é necessário reiniciar.

As alterações ao ficheiro hosts afetarão outros utilizadores no meu Mac?

Sim. O ficheiro hosts é a nível de sistema, por isso as alterações afetam todas as contas de utilizador na mesma máquina.

O ficheiro hosts funciona com HTTPS?

Sim, mas com uma ressalva. O ficheiro hosts apenas controla a resolução de IP — não gere certificados SSL/TLS. Se redirecionar um domínio para um novo servidor através do ficheiro hosts e o certificado SSL nesse servidor não corresponder ao domínio, o seu browser mostrará um aviso de certificado.

Posso utilizar wildcards no ficheiro hosts?

Não. O ficheiro hosts do macOS não suporta entradas com wildcards. Cada nome de host deve ser listado explicitamente na sua própria linha.

Editar o ficheiro hosts afetará o meu VPN?

Depende da configuração do seu VPN. Alguns VPNs substituem as definições DNS locais, o que pode fazer com que as entradas do ficheiro hosts sejam ignoradas enquanto o VPN está ativo.

Conclusão: Assuma o Controlo Total do Seu DNS Local

O ficheiro hosts do macOS é uma ferramenta enganosamente simples, mas notavelmente poderosa. Com um único ficheiro de texto e alguns comandos de Terminal, pode bloquear sites distrativos, criar ambientes de desenvolvimento local profissionais e testar migrações de servidor com total confiança — tudo sem esperar pela propagação DNS ou tocar na sua infraestrutura em produção.

Para programadores que trabalham com Painéis de Controlo VPS ou que gerem sites em Alojamento Web Partilhado, dominar o ficheiro hosts é uma competência fundamental que lhe poupará horas de resolução de problemas. Da próxima vez que estiver a preparar uma migração de site ou a iniciar um novo projeto de desenvolvimento, recorra primeiro a /etc/hosts — é a forma mais rápida e fiável de controlar como o seu Mac resolve qualquer domínio na internet.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar