Gerenciar conexões de rede em Linux usando o utilitário de console nmcli

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

Gerenciar conexões de rede em Linux usando o utilitário de console nmcli

Utilitário nmcli 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 ifconfig. 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  enabled

O 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  enp0s9

Este 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  enp0s9

Foi 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 manual

Nã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/ActiveC

Se, pelo contrário, você precisar instalar o DHCP, use auto em vez de manual:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Trabalhar 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=255

Há 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-enp0s8

Ele 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 página de manual nmcli para ver de que outra forma ele pode ajudá-lo.

Como a publicidade

Servidores épicos - É servidores virtuais em Windows ou Linux Com processadores AMD EPYC potentes e unidades Intel NVMe ultrarrápidas. Encomende já o seu!

Gerenciar conexões de rede em Linux usando o utilitário de console nmcli

Fonte: habr.com

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster