AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 788226
Accepted
xealits
xealits
Asked: 2024-12-17 00:26:41 +0800 CST2024-12-17 00:26:41 +0800 CST 2024-12-17 00:26:41 +0800 CST

Como fazer o NetworkManager usar configurações `/etc` e de onde vêm as conexões `/run`?

  • 772

Tenho uma placa Petalinux (uma Trenz Electronic com um AMD/Xilinx Zynq UltraScale+ MPSoC) que inicializa com uma configuração de conexão de rede errada (sem DHCP). Ela não tem configurações em /etc:

$ ls /etc/NetworkManager/system-connections/
$ 

Depois de configurar a conexão, sudo nmcli con mod eth0 ...ela funciona bem. (Eu modifico a configuração ipv4 e ipv6, como aqui no stackoverflow .) E ele cria um arquivo de configuração permanente em /etc:

/etc/NetworkManager/system-connections/eth0.nmconnection

Mas, após uma reinicialização, o NetworkManager cria uma nova /runconfiguração, que de alguma forma tem precedência sobre minha conexão em /etc:

$ nmcli -f TYPE,FILENAME,UUID,NAME,DEVICE connection
TYPE      FILENAME                                                  UUID                                  NAME  DEVICE 
ethernet  /run/NetworkManager/system-connections/eth0.nmconnection  99e39a32-c0ab-4b3f-be16-75a9bdff1277  eth0  eth0   
loopback  /run/NetworkManager/system-connections/lo.nmconnection    5d84c484-4214-47e4-8f00-01f7730200b3  lo    lo     
ethernet  /etc/NetworkManager/system-connections/eth0.nmconnection  fb365147-6ad9-47a0-a5c8-fbea10080ece  eth0  --     

Aqui, o invasor 99e39a32se /runconectou ao eth0dispositivo, e minha /etcconfiguração de conexão fb365147permanece ociosa.

Como salvar corretamente e permanentemente uma configuração de conexão no NetworkManager, ou fazê-lo usar /etca configuração como o único modelo para a eth0conexão? Onde ele obtém as configurações para /run? Por que ele não costuma /etccriar /runconfigurações?

Há posts dizendo que o NetworkManager cria conexões por usuário. Ou seja, a sugestão era algo como /etcé root e de alguma forma outras conexões são usadas para meu usuário. Mas não acho que seja o caso aqui. nmclinão me deixa modificar uma conexão sem permissões de root.

Há uma série de perguntas semelhantes na internet: 1 (não tenho /etc/netplano arquivo mencionado em um comentário lá), 2 , 3. Mas elas não ajudam no meu caso.

Atualizar:

Há algumas informações de como a /runconfiguração é feita graças ao log journalctl -u NetworkManagerapós a inicialização do computador [loggin] level=TRACEem /etc/NetworkManager/NetworkManager.conf:

NetworkManager[347]: <info>  [1734374462.9312] device (eth0): carrier: link connected
NetworkManager[347]: <trace> [1734374462.9313] ethtool[3]: ETHTOOL_GSET, eth0: success
NetworkManager[347]: <debug> [1734374462.9317] device[e5c0e28febbc1b13] (eth0): unmanaged: flags set to [platform-init,!user-settings=0x4/0x14/unmanaged/unrealized], set-managed [user-settings=0x10])
NetworkManager[347]: <debug> [1734374462.9318] device[e5c0e28febbc1b13] (eth0): unmanaged: flags set to [!platform-init,!user-settings=0x0/0x14/managed/unrealized], set-managed [platform-init=0x4])
NetworkManager[347]: <debug> [1734374462.9318] device[e5c0e28febbc1b13] (eth0): unmanaged: flags set to [!sleeping,!platform-init,!user-settings=0x0/0x15/managed/unrealized], set-managed [sleeping=0x1])
NetworkManager[347]: <trace> [1734374462.9319] dbus-object[e5c0e28febbc1b13]: export: "/org/freedesktop/NetworkManager/Devices/2"

NetworkManager[347]: <info>  [1734374462.9329] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
NetworkManager[347]: <trace> [1734374462.9349] settings: auto-default: cannot create auto-default connection for device eth0: already has a profile
<----- this already existing "profile" must be the config in /etc
       when I added no-auto-default=* or eth0 in NetworkManager.conf
       this line said: cannot create auto-default.. because no-auto
...
NetworkManager[347]: <debug> [1734374462.9356] Connection 'eth0' differs from candidate 'eth0' in ipv4.addresses, ipv4.gateway, ipv4.method
NetworkManager[347]: <debug> [1734374462.9357] manager: (eth0): assume: generated connection 'eth0' (b807ebb2-d7a5-4b26-82c1-c321a6e7d5ba)
NetworkManager[347]: <debug> [1734374462.9357] device[e5c0e28febbc1b13] (eth0): assume-state: set guess-assume=0, connection=(null)
NetworkManager[347]: <trace> [1734374462.9370] keyfile: commit: b807ebb2-d7a5-4b26-82c1-c321a6e7d5ba (eth0) added as "/run/NetworkManager/system-connections/eth0.nmconnection" (nm-generated,volatile,external)

Acho que a questão agora é o que significa Connection 'eth0' differs from candidate 'eth0' ...- o que é esse candidato? Ou seja, provavelmente há mais alguma configuração para o eth0próprio dispositivo, e quando a /etcconfiguração entra em conflito com essa, o NetworkManager cria uma nova?

Tentei adicionar este arquivo sem nenhuma alteração no comportamento (provavelmente está obsoleto):

$ cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp

Atualização 2:

Só para ressaltar, tentei adicionar no-auto-defaultconfiguração, mas não fez diferença neste caso:

/etc/NetworkManager/NetworkManager.conf

[main]
no-auto-default=*
# or no-auto-default=eth0

E adicionar a conexão /etc/network/interfacestambém não ajudou:

# Wired interfaces
auto eth0
iface eth0 inet dhcp
    hwaddress ether <MAC address>

Eu acho que, como @telcoM sugeriu, é um comportamento específico do Petalinux. Você define as configurações para o dispositivo eth0 quando a imagem é construída (e aparentemente o NetworkManager pode de alguma forma ler as configurações do dispositivo ou o quê?), e você não pode modificar as configurações de ethernet no Petalinux depois que a imagem foi construída . Provavelmente, não há nada que você possa modificar no ZynqMP>console do uboot também.

Então, o que acabei fazendo foi: renomear minha conexão e eth0dhcpadicionar uma unidade systemd que a conecta após a inicialização.

sudo nmcli c mod fb365147-6ad9-47a0-a5c8-fbea10080ece con-name eth0dhcp

A configuração da conexão se parece com:

$ sudo cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0dhcp
uuid=fb365147-6ad9-47a0-a5c8-fbea10080ece
type=ethernet
autoconnect=false
interface-name=eth0
timestamp=1734377647
 
[ethernet]
mac-address=<mac address>
 
[ipv4]
method=auto
 
[ipv6]
addr-gen-mode=default
method=auto
 
[proxy]

E a unidade systemd one-shot:

[Unit]
Description=UP the eth0dhcp for eth0 after boot
 
After=network.target
Requires=network.target
 
[Service]
Type=oneshot
RemainAfterExit=yes
User=root
ExecStart=nmcli con up eth0dhcp
 
SuccessExitStatus=0
Restart=on-failure
RestartSec=20
 
StartLimitInterval=300
StartLimitBurst=5
 
[Install]
WantedBy=multi-user.target

É uma solução alternativa suficiente no meu caso. Mais tarde, vamos apenas construir imagens com quaisquer configurações que forem necessárias.

networkmanager
  • 2 2 respostas
  • 44 Views

2 respostas

  • Voted
  1. Best Answer
    telcoM
    2024-12-17T17:01:18+08:002024-12-17T17:01:18+08:00

    Petalinux é uma distribuição para uso embarcado, e me parece que foi projetada para ser configurada antes de você criar sua imagem alvo , e então não modificada depois. A configuração deve acontecer na seção de configurações Ethernet da petalinux-configferramenta que você executaria enquanto prepara seu projeto Petalinux.

    O ChatGPT não reconhece o fato de que o Petalinux é uma distribuição embarcada, não uma distribuição típica de desktop/servidor.

    A versão do NetworkManager usada no Petalinux é provavelmente minimizada o máximo possível. Em geral, o NetworkManager pode ter vários plugins de armazenamento de configuração para combinar com os estilos de configuração clássicos de várias distribuições, além do keyfileplugin padrão que está sempre incluído.

    No Petalinux, pode haver apenas o keyfileplugin presente, e qualquer mecanismo responsável por converter as configurações de rede feitas petalinux-configem uma configuração ativa do NetworkManager aparentemente não dispara apenas uma vez, mas a cada inicialização, e acaba entrando em conflito com suas tentativas de personalização.

    • 2
  2. davolfman
    2024-12-17T04:39:44+08:002024-12-17T04:39:44+08:00

    Assim como o systemd, as configurações no /run/são geradas automaticamente. Se você quiser desligar perfis automáticos para uma determinada interface de rede (para se forçar a criar um perfil para conectar Ethernet mesmo em uma rede DHCP, por exemplo), você precisará configurar o NetworkManager para desligar os perfis padrão ou criar seu próprio perfil.

    Para fazer isso, adicione um arquivo de configuração /etc/NetworkManager/conf.d/que defina no-auto-defaultas interfaces nas quais você não deseja receber perfis automáticos.

    [main]
    no-auto-default=eth0
    

    Os arquivos restantes /run/NetworkManager/são o estado do sistema de tempo de execução do NetworkManager e não devem ser excluídos.

    • 1

relate perguntas

  • modem celular: desligamento do modem pppd

  • Network Manager: acesso total à internet, mas através de qual dispositivo/conexão

  • NetworkManager 1.10.2 segfaults quando Shorewall começa

  • O Wi-Fi simplesmente não funciona no Ubuntu 17.10

  • Fazer backup e restaurar a configuração do Network Manager?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve