Linux / Comando ip: consultar interfaces, endereços e rotas

O comando ip, do pacote iproute2, consulta ou altera interfaces de rede, endereços do Protocolo de Internet (IP), rotas e informações de vizinhos no Linux. Para começar um diagnóstico, consulte endereços e rotas; ter um endereço atribuído não comprova acesso à internet. Comandos como add, del e set podem alterar a rede e interromper uma conexão remota.

Objetos do comando ip

O ip separa a configuração em objetos. link representa a interface e seu estado; address, os endereços atribuídos; route, os caminhos para enviar pacotes; e neigh, as informações de vizinhos no enlace local. Consultar esses objetos ajuda a distinguir um problema de interface de um problema de endereço ou rota.

O comando de consulta costuma ser show. A ação depende do objeto escolhido: não substitua show por uma operação de alteração apenas para tentar corrigir uma saída inesperada. Em contêineres e outros ambientes com namespaces de rede, a consulta mostra o contexto em que o comando está sendo executado, não necessariamente todas as interfaces do host.

Sintaxe e versão instalada

ip [opções] objeto comando [argumentos]

Essa linha descreve a sintaxe; os colchetes e os nomes genéricos não são argumentos para copiar literalmente. Consulte man ip, ip help ou a ajuda do objeto correspondente. ip -Version identifica a versão instalada; recursos e formatos de saída podem variar.

Consultar interfaces, rotas e a escolha de caminho

Interfaces e endereços em formato resumido:

ip -br address show

O resultado reúne nome da interface, estado informado e endereços IPv4 e IPv6, as versões 4 e 6 do IP. Uma interface pode ter vários endereços. Identifique os nomes reais do seu sistema, que podem ser diferentes de eth0, e não conclua que uma interface sem endereço está necessariamente com defeito.

Rotas da consulta padrão:

ip route show

Sem filtros adicionais, essa consulta normalmente mostra as rotas IPv4 da tabela main. Ela não é uma listagem completa de todas as famílias e tabelas de uma configuração com roteamento por políticas. Para IPv6, consulte também ip -6 route show; quando houver políticas, examine as regras e tabelas pertinentes antes de concluir que uma rota não existe.

Quando aparecerem, default indica uma rota padrão, via o próximo roteador e dev a interface de saída. Uma rota diretamente conectada pode não ter via. Para um destino sem rota mais específica, costuma ser necessária uma rota padrão adequada; a ausência de um gateway padrão não impede, por si só, toda comunicação local.

Escolha de rota para um destino específico:

ip route get 192.0.2.1

O comando solicita ao kernel a resolução de uma rota nas condições da consulta. Conforme o caso, o resultado pode indicar dev, src para o endereço de origem escolhido e via. Uma falha como “Network is unreachable” precisa ser investigada no contexto da família, das regras e das rotas existentes; não é uma instrução para adicionar um gateway por suposição.

route get não envia pacotes ao destino e não equivale a testar conectividade, DNS (Sistema de Nomes de Domínio) ou um serviço remoto. O manual de ip route diferencia a resolução de caminho de get da listagem de rotas de show. O endereço 192.0.2.1 pertence a uma faixa reservada para documentação; não o use como servidor real para testar a internet.

No Bash 5.3.9 do Git para Windows usado nesta verificação, o programa ip não estava disponível: a consulta de versão e as quatro consultas dos exemplos retornaram 127 por comando inexistente. As formas de comando passaram apenas por análise de sintaxe do Bash. Nenhuma configuração de rede foi alterada e não houve teste de conectividade em Linux nativo.

Ler estado e endereços no formato breve

-br e -brief são formas da mesma opção de saída breve. No objeto address, omitir a ação de consulta tem o efeito usado neste exemplo:

ip -brief address

Saída ilustrativa, preservada para explicar os campos; não é uma captura do ambiente testado:

lo      UNKNOWN  127.0.0.1/8 ::1/128
eth0    UP       192.0.2.10/24

Na primeira linha, lo é a interface de loopback, usada para comunicação no próprio host, com os endereços 127.0.0.1/8 e ::1/128. O estado UNKNOWN não comprova uma falha: ele pode indicar que o estado operacional não foi definido pelo driver ou pelo espaço de usuário.

Na segunda linha, eth0 é o nome ilustrativo da interface, UP informa seu estado e 192.0.2.10/24 é um endereço com prefixo de rede de 24 bits. Esse prefixo corresponde à rede 192.0.2.0/24; não é parte do nome da interface. A RFC 5737 sobre endereços para documentação reserva essa faixa para exemplos, sem torná-la uma configuração a aplicar na sua rede.

O estado UP, isoladamente, não comprova rota válida, resolução de nomes ou acesso a uma aplicação. A documentação de estados operacionais do kernel Linux distingue o estado administrativo do operacional. Confira o contexto completo antes de interpretar apenas uma palavra da saída.

Opções principais e objetos

Forma O que consulta ou limita
link show Interfaces e informações de enlace. Não comprova acesso a um destino remoto.
address show Endereços e propriedades atribuídos às interfaces; uma interface pode ter mais de um endereço.
route show Rotas da família e tabela selecionadas. A consulta padrão não reúne todas as tabelas de políticas.
neigh show Entradas do Protocolo de Resolução de Endereços (ARP), em IPv4, e do Protocolo de Descoberta de Vizinhos (NDP), em IPv6, no enlace. Não lista todos os hosts da internet.
-br Informações básicas em tabela. A documentação indica suporte nas consultas address show, link show e neigh show; não suponha suporte em qualquer objeto.
-4 / -6 Seleciona a família IPv4 ou IPv6. Uma consulta IPv4 não permite concluir que não existe uma rota IPv6.

Consulte o manual geral de ip do iproute2 e o manual de ip address para a sintaxe e as propriedades detalhadas.

Separar endereço, rota e resolução de nomes

  1. Confira interface e endereço. Leia a saída breve e confirme que está no host e no contexto de rede corretos. Registre a família e o endereço usados pelo serviço com problema.
  2. Confira o caminho para o destino relevante. Examine as rotas e, se necessário, a escolha feita por route get. Compare interface de saída, origem e próximo salto; uma rota calculada não é uma resposta recebida do destino.
  3. Confira a resolução de nomes separadamente. A resolução DNS traduz nomes em endereços. Em ambientes que o utilizam, resolvectl ajuda a examinar essa etapa; há um guia de resolvectl em inglês. Outros ambientes podem exigir uma ferramenta DNS diferente.
  4. Valide a conectividade e o serviço. Ping pode ajudar quando o destino responde ao Protocolo de Mensagens de Controle da Internet (ICMP), mas a falta de resposta pode refletir filtragem. Resolução DNS bem-sucedida ou uma resposta a ping também não comprovam que a porta e a aplicação necessárias estejam acessíveis.

Cuidados antes de alterar a rede

Em uma sessão remota, baixar a interface com uma operação como ip link set ... down, remover o endereço usado na conexão ou alterar sua rota pode cortar o acesso imediatamente. Antes de qualquer alteração, registre a configuração atual e prepare console alternativo, procedimento de recuperação e os valores exatos a restaurar. Não há um comando genérico de desfazer que sirva para todas as redes.

Alterações diretas com ip podem ser substituídas pelo serviço que gerencia a rede ou desaparecer após uma reinicialização. Para persistência, siga o método de configuração da distribuição e do gerenciador em uso. Não misture uma alteração temporária com a expectativa de que ela será salva automaticamente.

Pergunta frequente

Qual é a diferença entre ip address e ip route?

Ip address consulta os endereços atribuídos às interfaces. Ip route consulta caminhos e próximos saltos para enviar pacotes aos destinos; route get resolve uma escolha específica. Um endereço atribuído e uma rota disponível são informações diferentes, e nenhum dos dois, isoladamente, comprova conectividade de ponta a ponta.