Configurar IP estático
Se o seu servidor ficar indisponível sem motivo aparente, o problema pode estar relacionado à perda do endereço IP.
Por padrão, o servidor recebe um IP dinâmico, com tempo de concessão (lease). Antes que esse tempo expire, o servidor solicita um novo IP, e o DHCP normalmente atribui o mesmo IP automaticamente.
No entanto, algumas distribuições Linux solicitam o IP um pouco depois do necessário (após o término do lease), causando a perda temporária do IP.
Para resolver, você precisa configurar um IP estático no servidor.
Parâmetros necessários Copiar link
Para seguir este guia, você precisará de:
- Endereço IP: IP do servidor. Usaremos
192.0.2.70como exemplo. Você precisa substituir pelo seu IP real. - Máscara de sub-rede: Adicione /24 ao IP (ex.:
192.0.2.70/24) - Gateway: Primeiro endereço da rede (altere apenas o último número para 1, ex.:
192.0.2.1) - Interface: Nome da interface varia conforme a distribuição (ex.:
eth0ouens3). Confira com:
ip addrConecte-se ao servidor via SSH como root para continuar.
Ubuntu 18.04 e posteriores / Debian 12 Copiar link
-
Crie o arquivo
/etc/netplan/99-ipv4.yamlcom um editor de texto:
nano /etc/netplan/99-ipv4.yaml-
Atualize com o conteúdo abaixo, substituindo
192.0.2.70/24e192.0.2.1pelos seus IP e gateway reais:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
addresses:
- "192.0.2.70/24"
routes:
- to: "0.0.0.0/0"
via: "192.0.2.1"
nameservers:
addresses:
- "1.1.1.1"
- "1.0.0.1"-
Restrinja permissões de leitura para todos, exceto
root:
chmod 600 /etc/netplan/99-ipv4.yamlDesativar configurações anteriores no Ubuntu Copiar link
-
Confira
/etc/netplan/para outras configurações que possam conflitar:
ls -a /etc/netplan/-
Normalmente há o arquivo
50-cloud-init.yaml. Renomeie para não terminar em.yaml:
mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml-backup-$(date +"%Y%m%d")-
Faça o mesmo para outros arquivos, exceto
99-ipv4.yaml, se existirem. -
Para impedir que o cloud-init crie novos arquivos:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg- 5 Adicione a linha:
network: {config: disabled}Permitir escuta em um endereço antes dele estar disponível Copiar link
-
Abra
/etc/sysctl.conf:
nano /etc/sysctl.conf-
Adicione:
net.ipv4.ip_nonlocal_bind = 1-
Recarregue a configuração:
sysctl -p /etc/sysctl.confAplicar configurações no Ubuntu Copiar link
-
Aplique o
netplan:
netplan --debug apply-
Verifique se o IP foi adicionado:
ip addr-
Reinicie o servidor e confirme se o IP está funcionando corretamente.
Exemplo de configuração Ubuntu Copiar link
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- "166.1.227.252/24"
nameservers:
addresses:
- "1.1.1.1"
- "1.0.0.1"
dhcp4: false
routes:
- to: "0.0.0.0/0"
via: "166.1.227.1"Debian 9, 10, 11 Copiar link
-
Abra
/etc/network/interfaces:
nano /etc/network/interfaces-
Comente ou remova as configurações atuais do
eth0:
#allow-hotplug eth0
#iface eth0 inet dhcp-
Adicione:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.0.2.70/24
gateway 192.0.2.1Desativar configurações anteriores no Debian Copiar link
-
Confira
/etc/network/interfaces.d/para arquivos conflitantes:
ls -a /etc/network/interfaces.d/-
Normalmente existe
50-cloud-init. Mova para outro diretório:
mv /etc/network/interfaces.d/50-cloud-init /root/50-cloud-init-backup-$(date +"%Y%m%d")-
Para impedir que cloud-init adicione novos arquivos:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg- Adicione:
network: {config: disabled}Permitir escuta em um endereço no Debian Copiar link
-
Abra
/etc/sysctl.conf:
nano /etc/sysctl.conf-
Adicione:
net.ipv4.ip_nonlocal_bind = 1-
Recarregue:
sysctl -p /etc/sysctl.confAplicar configurações no Debian Copiar link
-
Reinicie o serviço de rede:
systemctl restart networking.service-
Verifique se o IP foi adicionado:
ip addr-
Reinicie o servidor e confirme que o IP está funcionando corretamente.
Exemplo de configuração Debian Copiar link
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 166.1.227.252/24
gateway 166.1.227.1CentOS 7 e posteriores Copiar link
CentOS usa NetworkManager. Em vez de editar arquivos diretamente, use nmcli ou nmtui.
-
Confira o nome da conexão:
nmcli connection show-
Use o valor da coluna
NAME(no nosso exemplo, seráens3) nos próximos comandos.
NAME UUID TYPE DEVICE
ens3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet ens3-
Adicione o IP:
nmcli connection modify ens3 ipv4.addresses 192.0.2.70/24-
Adicione o gateway:
nmcli connection modify ens3 ipv4.gateway 192.0.2.1-
Configure DNS e método manual:
nmcli connection modify ens3 ipv4.dns 1.1.1.1
nmcli connection modify ens3 +ipv4.dns 1.0.0.1
nmcli connection modify ens3 ipv4.method manualDesativar configurações anteriores no CentOS Copiar link
-
Confira
/etc/sysconfig/network-scripts/:
ls -a /etc/sysconfig/network-scripts/-
Normalmente existe
ifcfg-ens3. Mova para outro diretório:
mv /etc/sysconfig/network-scripts/ifcfg-ens3 /root/ifcfg-ens3-backup-$(date +"%Y%m%d")-
Para preservar alterações após reboot:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg- Adicione:
network: {config: disabled}Permitir escuta em um endereço no CentOS Copiar link
-
Abra
/etc/sysctl.conf:
nano /etc/sysctl.conf-
Adicione:
net.ipv4.ip_nonlocal_bind = 1-
Recarregue:
sysctl -p /etc/sysctl.confAplicar configurações no CentOS Copiar link
-
Reinicie o
NetworkManager:
systemctl restart NetworkManager.service-
Verifique se os endereços foram adicionados:
ip addr-
Reinicie o servidor e confirme que os endereços estão funcionando corretamente.
Exemplo de configuração CentOS Copiar link
Diretório de configurações: /etc/NetworkManager/system-connections/
[connection]
id=ens3
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=ethernet
interface-name=ens3
timestamp=1719197216
[ethernet]
[ipv4]
address1=192.0.2.70/24,192.0.2.1
dns=1.1.1.1;1.0.0.1;
method=manual
[proxy]