Utilize todos os recursos da ferramenta de gerenciamento de conexões de rede de linha de comando NetworkManager. Linux utilizando o utilitário nmcli.

Utilitário chama diretamente a API para acessar as funções do NetworkManager.
Surgiu em 2010 e para muitos tornou-se uma forma alternativa de configurar interfaces e conexões de rede. Embora algumas pessoas ainda usem . Como nmcli é uma ferramenta de interface de linha de comando (CLI) projetada para uso em janelas de terminal e scripts, é ideal para administradores de sistema que trabalham sem uma GUI.
Sintaxe do comando ncmli
Em geral, a sintaxe fica assim:
$ nmcli <options> <section> <action>- opções são parâmetros que determinam as sutilezas da operação do nmcli,
- seção (seção) - determina quais recursos do utilitário usar,
- ação - permite especificar o que realmente precisa ser feito.
Existem 8 seções no total, cada uma delas associada a um determinado conjunto de comandos (ações):
- Suporte fornece ajuda sobre comandos ncmcli e seu uso.
- Geral retorna o status do NetworkManager e a configuração global.
- Networking inclui comandos para consultar o status da conexão de rede e ativar/desativar conexões.
- Rádio inclui comandos para consultar o status da conexão da rede WiFi e ativar/desativar conexões.
- Monitorar inclui comandos para monitorar a atividade do NetworkManager e observar mudanças no estado das conexões de rede.
- Conexão inclui comandos para gerenciar interfaces de rede, adicionar novas conexões e excluir as existentes.
- dispositivo usado principalmente para alterar parâmetros relacionados ao dispositivo (como nome da interface) ou para conectar dispositivos usando uma conexão existente.
- Segredo registra nmcli como um "agente secreto" do NetworkManager que escuta mensagens secretas. Esta seção raramente é usada porque o nmcli funciona dessa maneira por padrão ao se conectar a redes.
Exemplos simples
Antes de começar, certifique-se de que o NetworkManager esteja em execução e que o nmcli possa se comunicar com ele:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabledO trabalho geralmente começa com a visualização de todos os perfis de conexão de rede:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Este comando usa ação mostrar para a seção Conexão.
Está girando na máquina de teste. Ubuntu 04/20 Neste caso, encontramos três conexões com fio: enp0s3, enp0s8 e enp0s9.
Administrar conexões
É importante entender que em nmcli, pelo termo Conexão queremos dizer uma entidade que contém todas as informações sobre a conexão. Em outras palavras, esta é a configuração da rede. A conexão encapsula todas as informações relacionadas à conexão, incluindo informações sobre camada de enlace e endereçamento IP. Estas são a Camada 2 e a Camada 3 no modelo de rede OSI.
Ao configurar uma rede em LinuxNormalmente, você configura conexões que serão vinculadas a dispositivos de rede, que por sua vez são interfaces de rede instaladas no computador. Quando um dispositivo usa uma conexão, ela é considerada ativa ou em funcionamento. Se uma conexão não estiver sendo usada, ela é considerada inativa ou descartada.
Adicionando conexões de rede
O utilitário ncmli permite adicionar rapidamente e configurar conexões imediatamente. Por exemplo, para adicionar a conexão com fio 2 (com enp0s8), você precisa executar o seguinte comando como superusuário:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.Na opção type indicamos que será uma conexão Ethernet, e na opção ifname (nome da interface) indicamos a interface de rede que queremos utilizar.
Isto é o que acontecerá após executar o comando:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet -- Uma nova conexão foi criada, ethernet-enp0s8. Foi atribuído um UUID e o tipo de conexão era Ethernet. Vamos aumentá-lo usando o comando up:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)Vamos verificar novamente a lista de conexões ativas:
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Foi adicionada uma nova conexão ethernet-enp0s8, ela está ativa e utiliza a interface de rede enp0s8.
Configurando conexões
O utilitário ncmli permite alterar facilmente os parâmetros das conexões existentes. Por exemplo, você precisa alterar seu endereço IP dinâmico (DHCP) para um endereço IP estático.
Digamos que precisamos definir o endereço IP para 192.168.4.26. Para fazer isso usamos dois comandos. O primeiro definirá diretamente o endereço IP e o segundo mudará o método de configuração do endereço IP para manual:
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manualNão se esqueça de definir também a máscara de sub-rede. Para nossa conexão de teste é 255.255.255.0 ou com /24 para roteamento sem classe (CIDR).
Para que as alterações tenham efeito, você precisa desativar e reativar a conexão:
$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveCSe, pelo contrário, você precisar instalar o DHCP, use auto em vez de manual:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoTrabalhar com dispositivos
Para isso usamos a seção Dispositivo.
Verificando o status do dispositivo
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged -- Solicitando informações do dispositivo
Para fazer isso, use a ação show da seção Dispositivo (você deve especificar o nome do dispositivo). O utilitário exibe muitas informações, geralmente em várias páginas.
Vejamos a interface enp0s8 que nossa nova conexão usa. Vamos ter certeza de que ele usa exatamente o endereço IP que definimos anteriormente:
$ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255Há muita informação. Vamos destacar o principal:
- Nome da interface de rede: enp0s8.
- Tipo de conexão: conexão Ethernet com fio.
- Vemos o endereço MAC do dispositivo.
- Unidade máxima de transmissão (MTU) especificada — o tamanho máximo de um bloco de dados útil de um pacote que pode ser transmitido pelo protocolo sem fragmentação.
- O dispositivo atualmente conectado.
- Nome da conexãoqual dispositivo está usando: ethernet-enp0s8.
- O dispositivo usa o Endereço IP, que instalamos anteriormente: 192.168.4.26/24.
Outras informações estão relacionadas aos parâmetros padrão de roteamento e gateway de conexão. Eles dependem da rede específica.
Editor nmcli interativo
nmcli também possui um editor interativo simples, que pode ser mais confortável para alguns trabalharem. Para executá-lo em uma conexão ethernet-enp0s8, por exemplo, use ação editar:
$ nmcli connection edit ethernet-enp0s8Ele também possui uma pequena ajuda, que, no entanto, é menor que a versão para console:
===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>Se você digitar o comando print e pressionar Enter, o nmcli exibirá todas as propriedades da conexão:
===============================================================================
Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --Por exemplo, para definir a conexão como DHCP, digite goto ipv4 e clique em Entrar:
nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search,
dns-options, dns-priority, addresses, gateway, routes, route-metric,
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>Em seguida, escreva set method auto e clique Entrar:
nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:Se você quiser limpar o endereço IP estático, clique em Entrar. Caso contrário, digite não e pressione Enter. Você pode salvá-lo se achar que precisará dele no futuro. Mas mesmo com um endereço IP estático salvo, o DHCP será usado se o método estiver definido como automático.
Use o comando save para salvar suas alterações:
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>Digite quit para sair do editor interativo nmcli. Se você mudar de ideia sobre sair, use o comando voltar.
E isso não é tudo
Abra o editor interativo nmcli e veja quantas configurações existem e quantas propriedades cada configuração possui. O editor interativo é uma ótima ferramenta, mas se quiser usar nmcli em one-liners ou scripts, você precisará da versão normal da linha de comando.
Agora que você tem o básico, confira nmcli para ver de que outra forma ele pode ajudá-lo.
Como a publicidade
Servidores épicos - É ou Linux Com processadores AMD EPYC potentes e unidades Intel NVMe ultrarrápidas. Encomende já o seu!
Fonte: habr.com
