Ubuntu 16.04 Server / Como configurar um IP estático

No Ubuntu 16.04 Server, um endereço IPv4 estático (Internet Protocol version 4) gerenciado pelo ifupdown é configurado em /etc/network/interfaces ou em um arquivo incluído por ele. Confira interface, endereço, máscara, gateway e DNS reais, faça backup e garanta acesso ao console de recuperação antes de aplicar.

Confirmar se o procedimento se aplica

Este guia altera uma interface cabeada única típica em uma configuração ifupdown existente do Ubuntu 16.04. Não acrescente os mesmos ajustes sem adaptação em servidores gerenciados por Netplan, NetworkManager ou inicialização da nuvem. Identifique primeiro o gerenciador e a origem da configuração.

O Ubuntu 16.04 é antigo. O suporte padrão terminou em 2021 e o ESM regular (Expanded Security Maintenance, manutenção de segurança expandida), em 2026. Para continuar operando, confira cobertura Legacy e plano de migração nas informações da Canonical sobre Ubuntu 16.04. Este não é o procedimento de rede padrão das versões atuais.

Os nomes das interfaces variam. Estes comandos mostram distribuição, dispositivos, endereços IPv4 e rota padrão. Identifique a interface usada pela conexão, sem copiar simplesmente enp0s3.

lsb_release -ds
ip -o link show
ip -4 addr show
ip -4 route
cat /etc/network/interfaces
dpkg -l ifupdown resolvconf

Em ip -4 route, default via indica o gateway e dev a interface. Compare com os arquivos e confira a instalação dos pacotes em dpkg -l. Se o arquivo não existir ou houver outro gerenciador, pare e use o procedimento daquele ambiente.

Escolher endereço, gateway e DNS

Um IP estático não deve ser escolhido arbitrariamente no servidor. Use o endereço atribuído pelo administrador e confira reservas ou exclusões DHCP (Dynamic Host Configuration Protocol, protocolo de configuração dinâmica de hosts) para evitar a faixa de distribuição. Um endereço sem resposta não está necessariamente livre.

  • Endereço e máscara: o exemplo usa 192.168.10.50 e 255.255.255.0, equivalentes a 192.168.10.50/24. Não atribua ao host o endereço de rede 192.168.10.0 nem o de broadcast 192.168.10.255 dessa sub-rede.
  • Gateway: o exemplo é 192.168.10.1, diretamente alcançável na mesma rede. Este exemplo com uma interface usa uma única rota padrão. Várias redes ou políticas de roteamento exigem outro projeto.
  • DNS: escolha um servidor DNS (Domain Name System) que traduza nomes em endereços. O exemplo 192.168.10.1 só serve se esse dispositivo também responder a consultas DNS. Para domínios internos, use o DNS da organização capaz de resolvê-los.

Os valores representam uma rede privada de exemplo. Adapte-os ao modo NAT, bridge ou somente host da máquina virtual e às regras de alocação da nuvem. Fixar o IP privado do convidado pode ser diferente de reservar um IP público externo.

Fazer backup e trocar DHCP por static

  1. Confira primeiro o acesso ao console físico, de virtualização ou de recuperação da nuvem. Alterar o endereço tendo apenas SSH (Secure Shell) pode impedir a recuperação após a desconexão. Programe indisponibilidade e registre endereços, rotas e DNS antigos.
  2. Copie a configuração de rede para outro local. Se o nome de backup já existir, escolha outro.
sudo cp -a /etc/network /etc/network.before-static-ip
sudoedit /etc/network/interfaces

Examine os arquivos incluídos por source ou source-directory. Se a interface estiver definida em /etc/network/interfaces.d/, edite esse arquivo sem duplicar a definição no principal. Para arquivos gerados pela nuvem, confira sobrescrita na inicialização e o método aceito pelo provedor.

  1. Localize o bloco DHCP abaixo. Altere o bloco IPv4 existente da interface real, sem inventar outro nome de dispositivo.
auto enp0s3
iface enp0s3 inet dhcp
  1. Substitua somente esse bloco como abaixo. Preserve outras interfaces, IPv6, inclusões e configuração de loopback.
auto enp0s3
iface enp0s3 inet static
    address 192.168.10.50
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.1

Este bloco não substitui o arquivo inteiro. Preserve entradas como auto lo e iface lo inet loopback. auto indica interfaces ativadas no boot; inet static seleciona IPv4 estático. Veja a sintaxe no manual interfaces do ifupdown.

Entender quando dns-nameservers é aplicado

dns-nameservers tem função diferente do endereço e da rota padrão. No Ubuntu 16.04, resolvconf e os scripts de integração com ifupdown precisam funcionar para transmitir esse valor à configuração DNS. O manual resolvconf do Ubuntu 16.04 explica a integração e o uso de espaços entre vários endereços DNS.

Se /etc/resolv.conf é gerado automaticamente, edições diretas podem ser sobrescritas. Confira destino e conteúdo com os comandos abaixo; se resolvconf estiver disponível, consulte também as informações DNS registradas.

readlink -f /etc/resolv.conf
cat /etc/resolv.conf
if command -v resolvconf >/dev/null 2>&1; then
    resolvconf -l
fi

Sem instalação ou integração adequada, a linha dns-nameservers sozinha não muda o DNS. Identifique primeiro o gerenciamento ativo. Algumas configurações mostram um cache DNS local em resolv.conf; não ver um endereço DNS externo ali não prova falha.

Aplicar a configuração e verificar o resultado

  1. Depois de salvar, consulte os parâmetros lidos pelo ifupdown. Interface, endereço, máscara e gateway devem coincidir com o plano. Este comando só lê a configuração, sem aplicá-la à rede.
ifquery enp0s3

O sucesso de ifquery não testa conflitos de IP nem comunicação real. Se houver erro ou interface não definida, corrija inclusões, nome e sintaxe primeiro. O escopo é explicado no manual ifquery e ifup do ifupdown.

  1. Com console de recuperação e indisponibilidade planejada, reinicie para aplicar a configuração de boot. O comando abaixo reinicia o servidor inteiro; execute apenas quando estiver preparado.
sudo reboot

Reiniciar só o serviço de rede não garante a remoção dos endereços antigos e do estado DHCP. Reiniciar repetidamente porque o IP não mudou também não corrige erros de configuração. Após o boot, confira endereços e rotas no console e reconecte ao novo IP.

ip -4 addr show dev enp0s3
ip -4 route
ping -c 3 192.168.10.1
getent ahostsv4 ubuntu.com

Neste exemplo, a interface deve mostrar 192.168.10.50/24, e a rota incluir default via 192.168.10.1 dev enp0s3. Verifique gateway e resolução de nomes separadamente. Se respostas ICMP forem bloqueadas, não conclua que há falha apenas pelo ping: teste os serviços necessários e o acesso de outro cliente.

Diagnosticar falhas e restaurar a configuração

Sem endereço, confira dispositivo, arquivo, gerenciador e sintaxe. Com endereço mas sem acesso a outras redes, examine máscara, gateway e rotas. Se IP funciona e nomes não, confira DNS e domínios internos. Endereço errado, sobreposição DHCP e definições duplicadas em outros arquivos também podem causar problemas.

Consulte erros com sudo systemctl status networking.service e sudo journalctl -u networking.service -b --no-pager. Serviço saudável não garante endereçamento e comunicação corretos; compare as verificações anteriores.

Para reverter, use o console de recuperação e restaure apenas os arquivos alterados. O exemplo pressupõe mudança somente em /etc/network/interfaces. Para um arquivo incluído, restaure seu backup no local correspondente. Não copie o diretório inteiro de volta e sobrescreva ajustes sem relação adicionados depois.

sudo cp -a /etc/network.before-static-ip/interfaces /etc/network/interfaces
sudo reboot

Se antes usava DHCP, o mesmo endereço não é garantido após reiniciar. Confira endereço atribuído e rota padrão no console, depois valide DNS e acesso administrativo antes de concluir.