Linux / Consultar o IP: interfaces, rota de saída e endereço público
No Linux, use ip address para consultar os endereços das interfaces e ip route get para verificar a origem indicada em src para um destino. O IP público visto por um serviço externo pode ser diferente devido a NAT, proxy ou VPN, por isso precisa ser conferido no contexto dessa conexão.
IP significa Internet Protocol; IPv4 e IPv6 são suas duas versões usadas neste guia. NAT (Network Address Translation) traduz endereços entre redes; uma VPN é uma rede privada virtual. Os comandos abaixo são consultas, sem alterar interfaces ou rotas, e normalmente não exigem sudo. Eles usam iproute2; se ip não estiver disponível, instale o pacote correspondente pelos repositórios da distribuição. Recursos como -brief e -j dependem da versão: confira ip -Version e ip --help.
ip -brief address
ip route get 1.1.1.1
A primeira linha deve listar interfaces, estado e um ou mais endereços com prefixo. A segunda consulta uma rota IPv4; troque 1.1.1.1 pelo destino que importa para sua aplicação. Ela não resolve nomes por DNS (Domain Name System) nem testa se o serviço desse endereço está acessível.
Um único servidor pode ter vários endereços ao mesmo tempo, incluindo loopback, IPv4 privado, IPv4 público, IPv6 link-local, IPv6 global, etc. Portanto, "meu IP" depende de com qual rede você está tentando se comunicar.
Consultar rapidamente os endereços
Listar as interfaces de forma resumida
ip -brief address
-brief mostra o nome da interface, status e endereço em uma linha por interface. lo é a interface de loopback para comunicação consigo mesmo, e 127.0.0.1 e ::1 não são endereços para que dispositivos externos se conectem.
Visualizar apenas endereços IPv4
ip -4 address show
Para restringir apenas aos endereços IPv4 de escopo global, execute da seguinte forma.
ip -4 address show scope global
scope global não é um filtro de IP público. É o escopo atribuído ao endereço pelo Linux; endereços privados como 192.168.1.10 também podem estar nesse escopo. Para distinguir endereços privados e especiais, consulte o registro IPv4 da IANA (Internet Assigned Numbers Authority), além do escopo e das rotas.
Visualizar apenas endereços IPv6
ip -6 address show
Em IPv6, endereços locais únicos, ULA (Unique Local Addresses), de fc00::/7, também não devem ser confundidos com acesso público à internet. O registro IPv6 da IANA distingue ULA, link-local e outros usos especiais. Verifique ainda tentative ou dadfailed antes de usar um endereço recém-configurado.
O IPv6 pode exibir tanto endereços scope link, que são válidos apenas dentro do link, quanto endereços scope global, que são usados em uma escala mais ampla. Como também pode haver vários endereços temporários de privacidade, verifique as propriedades do endereço, como scope, temporary e dynamic, juntos.
Ler a saída de ip address
ip address show exibe interfaces de rede e os endereços de protocolo anexados a essas interfaces em detalhes. Você pode verificar a sintaxe do comando e as propriedades do endereço no manual do ip-address.
ip address show
| Itens de exibição | Significado | Coisas para verificar |
|---|---|---|
Flag UP |
A interface está administrativamente ativa | Isso não significa que o link e a comunicação reais estão normais. |
LOWER_UP |
O link da camada inferior do dispositivo está ativo | Indícios para determinar o status de cabos ou links virtuais. |
inet |
Endereço IPv4 e comprimento do prefixo | Exibido como 192.0.2.10/24. |
inet6 |
Endereço IPv6 e comprimento do prefixo | É necessário diferenciar endereços locais de link e globais. |
scope |
Escopo válido do endereço | Inclui host, link, global, etc. |
valid_lft |
Tempo de vida válido do endereço | Endereços dinâmicos podem mudar ou ser removidos ao longo do tempo. |
Na tabela, UP é o indicador administrativo entre os flags da interface; não confunda esse indicador com o campo separado state exibido pelo comando. Em 192.0.2.10/24, /24 indica 24 bits de prefixo de rede. Esse endereço pertence a uma faixa de documentação e não é um valor para configurar em produção.
Consultar uma interface específica
Encontrar o nome da interface
ip -brief link
Dependendo do ambiente, o nome pode ser diferente, como eth0, ens3, enp1s0, wlan0. Não assuma um nome específico com base na documentação ou em scripts; verifique a lista real do sistema primeiro.
Consultar o endereço da interface selecionada
ip address show dev ens3
ens3 é um exemplo. Substitua pelo nome real da interface. Se apenas um endereço IPv4 global for necessário, você pode especificar uma condição junto.
ip -4 address show dev ens3 scope global
Consultar a origem escolhida para um destino
Interpretar src na consulta de rota
Se houver vários endereços, a interface selecionada e o endereço de origem podem variar dependendo do destino. Verifique as decisões de roteamento para um destino específico com ip route get.
ip route get 1.1.1.1
Uma rota diretamente conectada pode não ter via. O resultado descreve a consulta feita nesse namespace e nessas condições; uma aplicação que fixa outro endereço, usa uma VPN, marca de roteamento ou outra política pode seguir um caminho diferente. src não mostra uma eventual tradução NAT posterior. O manual informa que route get resolve a rota sem enviar pacotes ao destino.
Na saída, dev é a interface a ser usada, via é o próximo gateway, e src é o endereço de origem escolhido pelo kernel. Este comando consulta a tabela de roteamento e não garante que a conexão com o servidor ou aplicativo de destino tenha sucesso. Para sintaxe detalhada, consulte o manual do ip-route.
Consultar a rota padrão
ip route show default
Se houver múltiplas rotas padrão, o caminho real pode diferir dependendo da métrica, das regras de roteamento por política e do destino. É por isso que é recomendado verificar os resultados do ip route get juntos.
Consultar uma rota IPv6
ip -6 route get 2606:4700:4700::1111
Ter um endereço IPv6 não garante conectividade: a rota, o roteador, o firewall e a aplicação precisam permitir esse tráfego. Se a conexão usar um nome, a resolução DNS também precisa fornecer o destino adequado; uma consulta por endereço literal não depende de resolver um nome.
Consultar endereços com hostname -I
Em algumas distribuições Linux, o seguinte comando pode exibir os endereços configurados no host separados por espaços.
hostname -I
Na implementação documentada pelo manual de hostname do Debian, -I não usa resolução de nomes, omite loopback e IPv6 link-local e não garante a ordem dos endereços. Outras implementações podem oferecer opções diferentes; confirme hostname --help. O comando não é um inventário de todos os endereços nem escolhe a origem para um destino.
Esse atalho não mostra o nome da interface, o comprimento do prefixo, o intervalo de endereços ou a rota selecionada. Para determinar qual endereço é realmente usado para a comunicação entre múltiplos endereços, use ip address e ip route get.
hostname -i mostra o resultado da resolução de nomes, portanto, é afetado por /etc/hosts ou configurações de DNS e é diferente de consultar o endereço definido diretamente na interface. É importante não confundir opções semelhantes.
Distinguir IP privado e IP público
Endereço da interface local
Os endereços exibidos por ip address estão configurados nas interfaces desse namespace de rede Linux. Se estiver atrás de um roteador doméstico ou NAT de nuvem, endereços IPv4 privados nos intervalos 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16 podem ser visíveis.
Endereços visíveis na Internet
Após NAT ou uma conexão por VPN ou proxy, um serviço externo pode observar o endereço de saída desse caminho, em vez do endereço da interface local. Confira o mapeamento nos equipamentos de rede ou no console da nuvem e, quando necessário, observe a conexão no serviço de destino. Uma consulta externa mostra a origem daquela requisição, que pode diferir para outro destino, família IP ou aplicação.
Você também pode usar um serviço web externo de verificação de IP, mas o tempo de solicitação e o endereço de origem serão enviados para esse serviço. Escolha um serviço confiável e considere dependências de automação, distinção entre IPv4/IPv6 e possíveis falhas.
Conferir a escuta e o acesso à porta
Saber o IP público não significa que o serviço do servidor seja acessível pela internet. Você deve verificar o encaminhamento de portas NAT, grupos de segurança na nuvem, firewalls do host e o endereço e porta de recebimento do serviço.
ss -lntup
Privilégios de administrador podem ser necessários para visualizar informações do processo. Antes de expor um serviço externamente, revise autenticação, criptografia, status de atualização e o escopo mínimo permitido.
Tratar endereços IP em scripts
Usar saída JSON
É mais confiável processar estruturalmente a saída JSON do ip do que usar combinações grep que dependem de posições de string.
ip -j -4 address show scope global
O resultado JSON é um array de interfaces; percorra cada addr_info para obter os endereços que satisfazem seus critérios. Um array vazio pode ser válido se não houver endereços correspondentes. Já uma falha do comando, indicada por status de saída e mensagem de erro, não deve ser tratada como sucesso vazio. A documentação de ip descreve as opções JSON e resumida.
Os campos JSON podem variar com a versão de ip; valide o formato na distribuição de destino e preserve todos os endereços correspondentes, em vez de assumir um único resultado.
Evitar escolher o primeiro endereço sem critério
Em ambientes com servidores com múltiplas conexões de rede, VPNs, contêineres ou endereços IPv6 temporários, não há garantia de que o "primeiro endereço" seja o que um aplicativo precisa. Selecione após definir claramente o destino, a família de endereços, a interface e as condições de escopo.
Contêineres e namespaces de rede
Um namespace de rede isola interfaces, rotas, regras de firewall e outros recursos, conforme o manual de namespaces de rede do Linux. Dentro de um contêiner, ip address geralmente consulta esse contexto, que pode diferir do host e da saída NAT. Um contêiner que compartilha a rede do host é uma exceção importante.
Hosts, contêineres, Pods do Kubernetes, serviços, ingress e balanceadores de carga externos podem ter endereços diferentes. Ao diagnosticar problemas, registre em qual namespace o comando foi executado e diferencie cada camada do caminho de comunicação.
Posso usar ifconfig?
ifconfig é frequentemente visto em documentações mais antigas, mas pode não estar instalado por padrão nas distribuições Linux recentes e não consegue representar completamente os recursos modernos de rede. Em novas documentações e scripts, é recomendado preferir os comandos do iproute2 como ip address, ip link e ip route.
Se os procedimentos de operação do sistema existentes dependem de ifconfig, não o remova imediatamente. Em vez disso, verifique as diferenças na saída e no comportamento e faça a transição gradualmente.
Perguntas frequentes
127.0.0.1 é o IP do servidor?
É o endereço de loopback IPv4 que se refere ao próprio servidor. Dispositivos na mesma rede não podem acessar o servidor usando este endereço.
Se aparecerem vários endereços, qual devo usar?
Depende do outro dispositivo e da rota. Na rede interna, use um endereço da interface que seja alcançável pelo cliente. Para consultar a origem selecionada rumo a um destino específico, verifique src em ip route get, lembrando que uma tradução NAT posterior pode alterar o endereço visto externamente.
Por que não vejo um IP público em ip address?
Pode ser porque o servidor está atrás de NAT, um balanceador de carga, uma VPN ou um proxy. Verifique o mapeamento de endereço externo no seu equipamento de rede ou console da nuvem.
Posso me conectar via SSH apenas conhecendo o endereço IP?
Não. O servidor SSH deve estar ouvindo no endereço e porta apropriados, roteamento/NAT/firewall/grupos de segurança devem permitir a conexão, e um método de autenticação válido também é necessário.
Resumo
Você pode verificar o endereço da interface com ip -brief address, e informações detalhadas de IPv4/IPv6 com ip -4 address e ip -6 address. O endereço de origem que será realmente usado para um destino é mais precisamente indicado pelo valor src de ip route get DESTINO.
O endereço local e o IP público visto na internet podem diferir devido ao caminho de saída. Ao registrar um diagnóstico, indique a família IP, o escopo do endereço, o namespace em que executou a consulta e o destino da comunicação.




