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.
Para seguir este guia, você precisará de:
192.0.2.70 como exemplo. Você precisa substituir pelo seu IP real.192.0.2.70/24)192.0.2.1)eth0 ou ens3). Confira com:ip addr
Conecte-se ao servidor via SSH como root para continuar.
Crie o arquivo /etc/netplan/99-ipv4.yaml com um editor de texto:
nano /etc/netplan/99-ipv4.yaml
Atualize com o conteúdo abaixo, substituindo 192.0.2.70/24 e 192.0.2.1 pelos 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.yaml
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
network: {config: disabled}
Abra /etc/sysctl.conf:
nano /etc/sysctl.conf
Adicione:
net.ipv4.ip_nonlocal_bind = 1
Recarregue a configuração:
sysctl -p /etc/sysctl.conf
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.
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 12 ou posterior usa
netplan, siga a seção anterior se aplicável.
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.1
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
network: {config: disabled}
Abra /etc/sysctl.conf:
nano /etc/sysctl.conf
Adicione:
net.ipv4.ip_nonlocal_bind = 1
Recarregue:
sysctl -p /etc/sysctl.conf
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.
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.1
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 manual
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
network: {config: disabled}
Abra /etc/sysctl.conf:
nano /etc/sysctl.conf
Adicione:
net.ipv4.ip_nonlocal_bind = 1
Recarregue:
sysctl -p /etc/sysctl.conf
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.
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]