Meu sistema tem uma única interface: wifi via wlan0
. O NetworkManager é o padrão. No entanto, o sistema tem vários "serviços de rede" habilitados. A seguir está uma lista (o padrão) dos serviços habilitados relacionados à "rede":
$ systemctl list-unit-files --state=enabled
ModemManager.service enabled enabled
networking.service enabled enabled
NetworkManager-dispatcher.service enabled enabled
NetworkManager-wait-online.service enabled enabled
NetworkManager.service enabled enabled
wpa_supplicant.service enabled enabled # underlined??
Eu queria tentar networking.service
, então adicionei as entradas necessárias /etc/network/interfaces
para fazer funcionar e desabilitei NetworkManager.service
. Após uma reinicialização, "networking" estava operacional (o que significa que eu podia fazer todas as coisas que precisava fazer: conectar-me ao host via SSH
, fazer apt
atualizações, etc.).
Em seguida, eu queria tentar reativar NetworkManager.service
e desativar networking.service
. Comentei todas as adições que fiz em /etc/network/interfaces
, então desativei networking.service
e reiniciei. Após a reinicialização, não consegui me reconectar ao host via SSH.
Então conectei o host a um console, reativei networking.service
e reiniciei. A rede foi restaurada (o que significa que eu poderia conectar ao host via SSH, do apt
, etc.
Pesquisei, mas não consegui encontrar uma resposta para esta pergunta, pois ela se refere ao meu sistema Debian 'bookworm':
Se eu desabilitar
networking.service
, mas deixarNetworkManager.service
habilitado, por que isso "quebra" a rede?
EDITAR...
Desculpas a todos - Eu estraguei tudo! Durante os comentários
@grawity
abaixo, percebi que meu problema foi causado por umaNetworkManager
configuração que tinha sido criada meses antes e esquecida, pois eu estava usandonetworking.service
desde então.
Então, todas as respostas aqui estão corretas, deixando minha pergunta como a única postagem incorreta aqui.
Mais uma vez, desculpas a todos.
Elas realmente são ferramentas independentes. é o software ifupdown
networking.service
do próprio Debian , que faz a mesma coisa que o NetworkManager – mas de acordo com um arquivo de configuração diferente. Versões mais antigas do NetworkManager costumavam ser capazes de importar seu /etc/network/interfaces, mas acredito que isso foi removido em algum momento, e principalmente o NM quer usar seus próprios perfis de conexão completamente separados.Então, se você definiu suas configurações de Ethernet ou Wi-Fi em /etc/network/interfaces, então isso é somente para ifupdown e outras ferramentas não se importarão com isso. Se você quiser usar o NetworkManager em vez disso, você precisa configurar a mesma Ethernet por meio de
nmcli
ornmtui
ounm-connection-editor
.Nota: O NetworkManager pode usar o mesmo dhclient que o ifupdown usa, mas também pode usar um cliente DHCP interno. O cliente DHCP interno enviará por padrão um tipo diferente de "Identificador de Cliente" do que o dhclient – /etc/machine-id vs endereço MAC – e, portanto, obterá por padrão um lease de endereço IP diferente do que o dhclient faria.
A confusão provavelmente vem do uso de ferramentas antigas e das ferramentas otimizadas para GUIs (ambientes de desktop).
Se você não precisa de uma GUI, sugiro usar
systemd-networkd
:https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_modern_network_configuration_without_gui
https://wiki.debian.org/SystemdNetworkd
https://wiki.debian.org/WiFi/HowToUse#Using_systemd_and_wpa_supplicant
Você pode usar ambos
networking.service
eNetworkManager
juntos, por exemplonetworking.service
manageseth0
eNetworkManager
managesWiFi
(essa é minha configuração) .Como alternativa, você pode usar cada serviço individualmente.
Ambos não podem gerenciar a mesma interface simultaneamente, pois isso causaria conflitos, como um serviço substituindo as configurações do outro e/ou levando a problemas de conectividade de rede.
Se
networking.service
fordisabled
,NetworkManager
não assume automaticamente as interfaces do/etc/network/interfaces
arquivo, a menos que esteja configurado corretamente para gerenciar essas interfaces.Se
networking.service
estiver gerenciando as interfaces, mas estiver desabilitado, isso pode levar à interrupção da conexão de rede, poisNetworkManager
não assumirá o gerenciamento automaticamente, a menos que a configuração esteja definida como gerenciada.Com
nmcli device status
, você pode ver quais interfaces são gerenciadas pelo NetworkManager.Exemplo:
Se uma interface tem o status
managed
, significa queNetworkManager
gerencia esta interface.Se o status for
unmanaged
, significa queNetworkManager
não gerencia esta interface, ela é gerenciada por outro serviço (por exemplo,networking.service
) ou não é gerenciada ativamente por nenhum serviço.Dê uma olhada também no arquivo
/etc/NetworkManager/NetworkManager.conf
Na
NetworkManager
configuração, há o parâmetro managed, que especifica seNetworkManager
deve gerenciar as interfaces de rede configuradas no/etc/network/interfaces
arquivo.managed=true
significa queNetworkManager
tem permissão para gerenciar essas interfaces.managed=false
significa queNetworkManager
não tem permissão para gerenciar essas interfaces, e elas são gerenciadas por outro serviço como onetworking.service
, valores/configurações incorretos aqui podem levar a conflitos.NetworkManager.conf — arquivo de configuração do NetworkManager
Gerenciador de rede.conf | Ubuntu
Como faço para configurar um dispositivo de rede para ser gerenciado?
Explicação dos arquivos em /etc/NetworkManager?
Para resolver conflitos, garanta que apenas um serviço esteja gerenciando uma determinada interface. Configure
NetworkManager
para gerenciar todas as interfaces (definindomanaged=true
e removendo interfaces de/etc/network/interfaces
) ou use networking.service
parainterfaces
definido em/etc/network/interfaces
(commanaged=false
em/etc/NetworkManager/NetworkManager.conf
).