O
Debian sempre teve problema de
rede, de
conexão com a
internet que, às vezes, do nada ou de alguma atualização se perde todo e não conecta mais no wifi, no fio ou em nenhum dos dois ou troca a precedência do fio pelo sem fio.
O
Debian atualmente tem, basicamente, três Gerenciadores de
Rede: network-manager, networking e systemd-networkd, além de outros.
Por aí já começamos a entender um dos problemas: conflitos, lutas, brigas... um se metendo na vida do outro!
Eu sei que quando se fica sem
internet por causa de conflitos entre os gerenciadores não é nada engraçado ainda mais quando se pesquisa exaustivamente e não se consegue resolver o problema (parece bruxaria), aliás, o pessoal do
Debian já deveria ter resolvido isso com uma reza brava.
A essas alturas do "campeonato informático", 35 anos de vida e ainda tem problemas de
conexão?!?
Contudo, veremos aqui se é possível resolver isso!
Vou logo dizendo que o Gerenciador de
Rede escolhido foi o
NetworkManager.
É o mais estável e não estou dizendo que os outros são ruins, nada a ver.
Espero que os xiitas não me critiquem!
Passadas essas jocosidades, vamos colocar a mão no mouse.
Foi utilizado o
Debian 12.
Configurar somente o
NetworkManager (RECOMENDADO)
sudo systemctl stop networking
sudo systemctl disable networking
sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd
Caso eles insistirem em voltar e se auto-habilitarem (coisas do
Debian) seja radical: desinstale-os, mas acredito que não será necessário:
sudo apt purge --remove networking
sudo apt purge --remove systemd-networkd
sudo apt update
O
NetworkManager vem junto com a instalação, mas o que abunda não prejudica (nesse caso):
sudo apt install network-manager
sudo systemctl enable NetworkManager
Configurando o
NetworkManager para Controlar o Arquivo
/etc/network/interfaces
A única mudança que faremos é caso estiver "false" em "managed", coloque "true".
Utilizo o Vim, utilize o teu editor predileto:
sudo vim /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
Salve e saia.
Inicie ou reinicie o
NetworkManager:
sudo systemctl start NetworkManager
ou
sudo systemctl restart NetworkManager
Para ver o estado:
sudo systemctl status NetworkManager
A partir do
Debian 11 se deve usar "sudo systemctl restart
NetworkManager" em vez de "sudo service network-manager restart".
Não sei porque os caras não colocaram tudo em minúsculo em "
NetworkManager", deve ter sido um brasileiro que teve essa idéia.
Exemplo de arquivo /ETC/NETWORK/INTERFACES para estudarmos:
sudo vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
#
# The primary - offboard
allow-hotplug enp3s0
iface enp3s0 inet dhcp
#
# The secondary - onboard
auto eno2
iface eno2 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Essa parte adiante é importante porque tem diferença entre "auto" e
"allow-hotplug"
- Para IP estático (static) tem de ser "auto nome_placa".
- Para IP dinâmico (dhcp) tem de ser "allow-hotplug nome_placa".
- "auto" é para IPs estáticos e para dispositivos permanentes.
- "alow-hotplug" é para IPs dinâmicos e dispositivos hotplug de rede como usb, wifi, etc.
Contribuição do meu amigo Chat GPT (apesar de que às vezes ele dá umas opiniões um tanto quanto estranhas):
- "**allow-hotplug**: A interface é trazida online automaticamente quando detectada, ideal para dispositivos que podem ser conectados ou removidos (ex: USB, ou interfaces que nem sempre estão presentes).
- **auto**: A interface é ativada automaticamente durante o boot, ideal para interfaces que estão sempre presentes e/ou ativas (como onboard ou IPs estáticos)."
Caso não for assim como acima, no arquivo /etc/network/interfaces os Gerenciadores de
Rede se perdem todos e não adianta reiniciar o gerenciador, o sistema... reiniciar a vida enchendo a cara, etc.
Aliás, para entender isso o cara tem de ler vários manuais, sites, pesquisar, entender a ciência do prego e do martelo para dar uma simples martelada no prego!
E depois não entendem porque o
Linux não é utilizado como desktop!
Brincadeiras à parte, o Linux não é utilizado como desktop porque ele não foi feito para isso; como desktop o Linux é muito ruim... e está de boa.
Parece-me que os desenvolvedores do Linux tem um truque que somente eles sabem, porém, a esmagadora maioria deles não conseguem resolver os problemas mais básicos que afligem o Linux há 35 anos.
A famosa Liberdade também está em você escolher o sistema operacional que você quer no seu computador!
Para o Wifi não é necessária nenhuma configuração.
Testei o
NetworkManager durante 3 meses até escrever essas mal traçadas linhas.
Troquei o cabo de
rede entre as placas onboard e offboard sem alterar arquivos, testei com cluster, etc.
Acrescentei uma linha estranha no /etc/network/interfaces:
Reiniciei com:
sudo systemctl restart NetworkManager
E o que aconteceu foi que a
conexão com fio caiu, óbvio, mas imediatamente o NetworManager levantou o Wifi.
Não satisfeito reiniciei o sistema inteiro com o arquivo /etc/network/interfaces do mesmo jeito.
Ao reiniciar apareceu a mensagem "Você agora está conectado ao Wired Conection..." e logo depois "Você agora está conectado ao Wifi...", ou seja, como o arquivo /etc/network/interfaces está com aquela linha toda errada ele desconsiderou e habilitou o wifi para você não ficar sem
internet.
Não satisfeito desabilitei o Wifi e para minha surpresa apareceu: "Você agora está conectado a Wired conection..." e continuei com
internet.
Daí fui em "Informações da Conexão" no Cinnamon para ver se não estava sendo enganado, mas lá estava:
Ou seja, o
NetworkManager de alguma forma forçou o arquivo /etc/network/interfaces a funcionar mesmo com a linha errada.
Não satisfeito derrubei a interface wlo1 (wifi):
sudo ifdown wlo1
Abri o navegador e continuei conectado na
internet.
Veja o estado DOWN do wifi:
Não satisfeito deixei o /etc/network/interfaces assim:
Não satisfeito reiniciei o
NetworkManager:
sudo systemctl restart NetworkManager
E o
NetworkManager habilitou o wifi e conectou no wifi.
Conclusão:
De qualquer maneira que estiver o /etc/network/interfaces ele só terá precedência no wifi caso estiver certo, caso não estiver certo o
NetworkManager manterá você conectado.
O porquê isso acontece deixo para você pesquisar.
O
NetworkManager só não conectou quando desabilitei a
rede: desmarquei "Habilitar
rede".
Aí já seria impossível.
Resumindo:
Caso você opte pelo
NetworkManager desabilite todos os outros Gerenciadores de
Rede.
O
NetworkManager manterá você conectado, mas para isso você tem de deixar somente ele como Gerenciador de
Rede.
Meus parabéns para o pessoal do
NetworkManager!
Referências