Gerenciando Rede com mncli no Linux

Geralmente o computador que usamos em casa possui apenas uma placa de rede(interface) que fica na parte detrás  e nessa placa conectamos o cabo de rede. Uma conexão de rede que existe em muitos sistemas operacionais(Windows, Linux…) é o “loop back” ou “lo”, que serve apenas internamente e é representado pelos endereços 127.0.01,  0.0.0.0 ou ainda como “localhost”. Se dermos um comando “ping localhost” irá retornar uma resposta da nossa própria rede loop back. Alguns programas necessitam o Loop Backp para conversar entre si ou com eles mesmo. É como se você estivesse conversando sozinho 🙂

Bom, no linux, a primeira interface de rede geralmente é rotulada(renomeada) como enp0s0 ou enp0s3. Algumas outras distros ainda usam o nome eth0.   Outras ainda chamam de eno1. Nesse ambiente de teste tenho três interfaces mais a loop back:

  • enp0s3:  Conexão de rede principal
  • enp0s8: Minha segunda conexão de rede. Uma segunda placa de rede que coloquei.
  • wlx503eaa9a6809: Conexão sem fio, wifi.
  • lo:  Loop back.

NetworkManager 1.0 veröffentlicht

 

Descrição sobre nmcli

nmcli é uma ferramenta de linha de comando para gerenciar e controlar o NetworkManager.

Além de gerenciar ele também exibe(reporta) status  da rede. Quais as placas ou interfaces de rede usadas? Elas estão ativas(on) ou não ativas(off)? qual ip dessas interfaces?

Como gerenciador de rede a ferramenta nmcli pode criar, deletar, editar, ativar, desativar conexões de rede.

 

Opções da Ferramenta nmcli

 

  • -t ou –terse: O resultado apresentado é resumido, conciso. Essa opção é apropriado para scripts também.
  • -p ou –pretty: pretty significa “bonito” em inglês. Usando a opção  pretty teremos um resultado mais legível, bonito. Logicamente que essa opção serve para facilitar a nossa vida de humanos.
  • -m ou –mode:  Há dois valores para –mode: tabular ou multiline. O padrão para maioria dos comandos é tabular.
  • -f ou –fields: essa opção recebe o nome das colunas. Se executarmos “nmcli -f name…”  apenas a a coluna nome(name) irá aparacer. Outros valores são all e common.
  • -s ou –show-secrets: Quando usado essa opção nmcli irá exibir a senha e outros segredos da conexão. Por exemplo, se executarmos “nmcli –show-secrets c s redeWifi” irá aparecer a senha da rede wifi que acessamos anteriormente. Atenção: essa opção mostra senhas apenas de conexões que já foram acessadas.

 

 

Exemplos de Uso de nmcli

 

Visualizando Informações comm nmcli

 

Se executarmos apenas nmcli aparecerá informações das interfaces de rede do nosso computador.

enp0s8: conectado to Conexão cabeada 1
        "Intel 82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)"
        ethernet (e1000), 08:00:27:A9:20:8E, hw, mtu 1500
        ip4 default
        inet4 192.168.0.175/24
        route4 0.0.0.0/0
        route4 192.168.0.0/24
        inet6 fe80::7877:740a:ffed:fc77/64
        route6 ff00::/8
        route6 fe80::/64
        route6 fe80::/64

wlx503eaa9a6809: conectado to Cartorio_CLIENTES
        "Realtek 802.11n NIC"
        wifi (rtl8xxxu), 50:3E:AA:9A:68:09, hw, mtu 1500
        inet4 192.168.1.120/24
        route4 0.0.0.0/0
        route4 192.168.1.0/24
        inet6 fdfc:64b3:25cc::86d/128
        inet6 fdfc:64b3:25cc:0:5dda:e3f7:1857:af4d/64
        inet6 fdfc:64b3:25cc:0:410:73c5:48f3:e862/64
        inet6 fe80::399d:5443:f329:4ff5/64
        route6 fdfc:64b3:25cc::/48
        route6 fdfc:64b3:25cc::/64
        route6 ff00::/8
        route6 fe80::/64
        route6 fe80::/64
        route6 fdfc:64b3:25cc::86d/128

enp0s3: conectado to netplan-enp0s3
        "Intel 82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)"
        ethernet (e1000), 08:00:27:C7:75:2D, hw, mtu 1500
        inet4 192.168.0.195/24
        route4 0.0.0.0/0
        route4 192.168.0.0/24
        inet6 fe80::a00:27ff:fec7:752d/64
        route6 ff00::/8
        route6 fe80::/64

lo: não gerenciável
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 192.168.0.21 192.168.0.31 192.168.0.32 8.8.8.8
        domains: cartorio.local
        interface: enp0s8

        servers: 192.168.0.21 192.168.0.31 192.168.0.32 8.8.8.8
        domains: cartorio.local
        interface: enp0s3

 

Se executarmos “nmcli c s” aparecerá as conexões. c é a abreviação para connection ou conn. s é a abreviação de show. Então ao invés de “nmcli c s” podemos usar também “nmcli connection show” ou “nmcli conn show”.

elder@ubuntu:~$ nmcli c s
NAME               UUID                                  TYPE      DEVICE          
MeuWifi            20894d03-e85e-42a2-94fe-ff9f39afb273  wifi      wlx503eaa9a6809 
Conexão cabeada 1  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9  ethernet  enp0s8          
netplan-enp0s3     10b0b02c-9c77-3826-867e-ef9207fc5e15  ethernet  enp0s3

 

Acima o resultado está em modo(-m) tabular. Podemos exibir  o mesmo resultado em modo multilinha(multiline).

elder@ubuntu:~$ nmcli -m multiline  c s 
NAME:                                   MeuWifi
UUID:                                   20894d03-e85e-42a2-94fe-ff9f39afb273
TYPE:                                   wifi
DEVICE:                                 wlx503eaa9a6809
NAME:                                   Conexão cabeada 1
UUID:                                   2c7dfca1-fca6-3b72-b987-b60b6aae2ee9
TYPE:                                   ethernet
DEVICE:                                 enp0s8
NAME:                                   netplan-enp0s3
UUID:                                   10b0b02c-9c77-3826-867e-ef9207fc5e15
TYPE:                                   ethernet
DEVICE:                                 enp0s3

 

Visualizando apenas conexões ativas. A conexão sem fio não foi exibida abaixo porque desativei propositadamente.

elder@ubuntu:~$ sudo nmcli connection show  --active
NAME               UUID                                  TYPE      DEVICE 
Conexão cabeada 1  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9  ethernet  enp0s8 
netplan-enp0s3     10b0b02c-9c77-3826-867e-ef9207fc5e15  ethernet  enp0s3

 

Acima alguns dispositivos de rede não apareceram, isso pode  ser porque eles não são gerenciados pelo NetworkManager ou não estão disponíveis. Vamos executar “nmcli device status” para vermos.

elder@ubuntu:~$ nmcli device status
DEVICE           TYPE      STATE            CONNECTION     
enp0s3           ethernet  conectado        netplan-enp0s3 
enp0s8           ethernet  desconectado     --             
wlx503eaa9a6809  wifi      não disponível   --             
lo               loopback  não gerenciável  -- 

 

Podemos ver detalhes de um dispositivo. Para isso passamos o nome da conexão ou o seu UUID. Abaixo não mostrei o resultado por ser extenso.

nmcli connection show  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9

 

Podemos visualizar e ordernar por: nome(name), tipo(type) e ainda pelo caminho(path) ou D-Bus. Em cada valor da ordem podemos acrescentar sinal de – ou +  para ordenar em ordem crescente(=) ou decrescente(-).

elder@ubuntu:~$ nmcli    c s  --order +name
NAME               UUID                                  TYPE      DEVICE 
Cartorio_CLIENTES  20894d03-e85e-42a2-94fe-ff9f39afb273  wifi      --     
Conexão cabeada 1  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9  ethernet  --     
netplan-enp0s3     10b0b02c-9c77-3826-867e-ef9207fc5e15  ethernet  enp0s3
elder@ubuntu:~$ nmcli    c s  --order -name
NAME               UUID                                  TYPE      DEVICE 
netplan-enp0s3     10b0b02c-9c77-3826-867e-ef9207fc5e15  ethernet  enp0s3 
Conexão cabeada 1  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9  ethernet  --     
Cartorio_CLIENTES  20894d03-e85e-42a2-94fe-ff9f39afb273  wifi      --
elder@ubuntu:~$ nmcli    c s  --order -type
NAME               UUID                                  TYPE      DEVICE 
netplan-enp0s3     10b0b02c-9c77-3826-867e-ef9207fc5e15  ethernet  enp0s3 
Conexão cabeada 1  2c7dfca1-fca6-3b72-b987-b60b6aae2ee9  ethernet  --     
Cartorio_CLIENTES  20894d03-e85e-42a2-94fe-ff9f39afb273  wifi      --

 

 

Podemos exibir informações detalhada dos dispositivos(device) de rede com o comando “nmcli device show”. O texto retornado abaixo seria imenso. Optei por ocultar.

elder@ubuntu:~$ nmcli device show
.......

 

Podemos  exibir informações detalhadas apenas de um dispositivo(device)

elder@ubuntu:~$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:A9:20:8E
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (conectado)
GENERAL.CONNECTION:                     Conexão cabeada 1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               ligado
IP4.ADDRESS[1]:                         192.168.0.175/24
IP4.GATEWAY:                            192.168.0.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 101
IP4.ROUTE[2]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 101
IP4.DNS[1]:                             192.168.0.21
IP4.DNS[2]:                             192.168.0.31
IP4.DNS[3]:                             192.168.0.32
IP4.DNS[4]:                             8.8.8.8
IP4.DOMAIN[1]:                          cartorio.local
IP6.ADDRESS[1]:                         fe80::7877:740a:ffed:fc77/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]:                           dst = fe80::/64, nh = ::, mt = 10

 

 

 

Habilitando ou Desabilitando NetworkManager

Usando “nmcli networking… ”  podemos ativar(on), desativar(off) o gerenciamento feito pelo NetworkManager. Muita gente prefere desabilitar o NetworkManager e acabam configurando a rede na unha.  Além de habilitar ou desatgivar também podemos verificar conectividade(connectivity). A conectividade pode ser: none, portal, limited, full e unknown.

Atenção: Ao desativar o NetworkManger todas os dispositivos que eram gerenciados por ele também serão desativados, ou seja, se estiver acessando via ssh você perderá o acesso.  

Desativando o Networkmanager

elder@ubuntu:~$ sudo nmcli  networking off

Ativando novamente

elder@ubuntu:~$ sudo nmcli  networking on

Vendo Conectividade

elder@ubuntu:~$ sudo nmcli  networking connectivity
full

 

Podemos desabilitar(off) apenas conexão sem fio e habilitar(on) novamente

elder@ubuntu:~$ sudo nmcli radio wifi off

Vejamos Status. Em seguida habilitamos novamente

elder@ubuntu:~$ sudo nmcli radio  all
WIFI-HW     WIFI          WWAN-HW     WWAN       
habilitado  desabilitado  habilitado  habilitado
elder@ubuntu:~$ sudo nmcli radio wifi on

 

Gerenciando Conexões(Connextion) e Dispositivos(Devices)

Vamos gerenciar conexões(connection ou conn ou ainda apenas c).  Lembra do bom e velho ifup e ifdown? Podemos ativar(up) ou desativar(down) uma conexão. Ainda podemos modificar(modigy), adicionar(add), editar(edit), clonar(clone), monitorar(monitor), recarregar(reload).

 

Desconectando enp0s3. Podemos usar o nome “netplan-enp0s3” ou sei uuid “10b0b02c-9c77-3826-867e-ef9207fc5e15”

elder@ubuntu:~$ sudo nmcli connection down 10b0b02c-9c77-3826-867e-ef9207fc5e15

 

Reativando usando o nome da conexão: netplan-enp0s3

elder@ubuntu:~$ sudo nmcli connection up netplan-enp0s3

 

Desativando  e Vendo o status da conexão enp0s8

elder@ubuntu:~$ sudo nmcli connection down "Conexão cabeada 1"

 

Acima desativamos usando “nmcli connection up” agora vamos fazer o mesmo mas ao invés de usarmos a conexão(connection) iremos usar um dispositivo(device) que pode ser, no caso do meu pc, enp0s3, enp0s8 ou outra gerenciável pelo NetworkManager.

elder@ubuntu:~$ sudo nmcli device connect enp0s8
elder@ubuntu:~$ nmcli device status
DEVICE           TYPE      STATE            CONNECTION        
enp0s3           ethernet  conectado        netplan-enp0s3    
enp0s8           ethernet  conectado        Conexão cabeada 1 
wlx503eaa9a6809  wifi      não disponível   --                
lo               loopback  não gerenciável  --

Obs.: Acima, poderíamos executar somente “nmcli device”  ao invés de “nmcli device status“. Ainda podemos usar dev no lugar de device.

Podemos desconectar(disconnect) um dispositivo(device).

elder@ubuntu:~$ sudo nmcli device disconnect enp0s8
Dispositivo "enp0s8" desconectado com sucesso.

 

Podemos monitorar

elder@ubuntu:~$ sudo nmcli device monitor

Ver dispositivos wifi.  No meu caso não está disponível, conforme vimos acima.  Uso um  dispositivo USB para sinal Wifi.

elder@ubuntu:~$ sudo nmcli device wifi
IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY

 

elder@ubuntu:~$ sudo nmcli device
DEVICE           TYPE      STATE            CONNECTION     
enp0s3           ethernet  conectado        netplan-enp0s3 
enp0s8           ethernet  desconectado     --             
wlx503eaa9a6809  wifi      desconectado     --             
lo               loopback  não gerenciável  -- 

Removi o dispositivo Wifi USB  e conectei novamente. Tive que remover pois às vezes, na vm, ele  se desconecta.

elder@ubuntu:~$ sudo nmcli device connect wlx503eaa9a6809
Dispositivo "wlx503eaa9a6809" ativado com sucesso com "20894d03-e85e-42a2-94fe-ff9f39afb273".

Vamos conectar também o enp0s8

elder@ubuntu:~$ sudo nmcli device connect enp0s8
Dispositivo "enp0s8" ativado com sucesso com "2c7dfca1-fca6-3b72-b987-b60b6aae2ee9".
elder@ubuntu:~$ sudo nmcli device 
DEVICE           TYPE      STATE            CONNECTION        
enp0s3           ethernet  conectado        netplan-enp0s3    
wlx503eaa9a6809  wifi      conectado        empresa_CLIENTES 
enp0s8           ethernet  conectado        Conexão cabeada 1 
lo               loopback  não gerenciável  -- 

 

Podemos listar todas redes wifi disponíveis com  “nmcli device wifi list”. Por ser uma lista longa acabei suprimindo o resultado. Abaixo também poderíamos usar apenas  “nmcli device wifi

elder@ubuntu:~$ sudo nmcli device wifi list
......

Podemos conectar em uma rede sem fio. Por exemplo, acima estou conectado em empresa_CLIENTES, se não  estivesse conectado poderia fazer assim:

elder@ubuntu:~$ sudo nmcli device wifi connect empresa_CLIENTES  password digite_senha_aqui

 

 

Alterando Endereço IP com nmcli

Podemos alterar o endereço ip.

Vamos ver o endereço atual do nosso dispositivo(device) enp0s8. Como a lista é um pouco grande filtrei(grep) apenas as linhas que contém ADDRESS

elder@ubuntu:~$ sudo nmcli dev show  enp0s8 | grep ADDRESS
IP4.ADDRESS[1]:                         192.168.0.175/24
IP6.ADDRESS[1]:                         fe80::7877:740a:ffed:fc77/64

Vamos adicionar o endereço 192.168.20.50. Essa alteração é temporária. Ao reiniciar o computador desaparecerá.

elder@ubuntu:~$ sudo nmcli dev modify  enp0s8  ipv4.address  192.168.20.50
Conexão reaplicada com sucesso no dispositivo "enp0s8"
elder@ubuntu:~$ nmcli dev show  enp0s8 | grep ADDRESS
IP4.ADDRESS[1]:                         192.168.0.175/24
IP4.ADDRESS[2]:                         192.168.20.50/32
IP6.ADDRESS[1]:                         fe80::d699:1bcf:7107:451f/64

 

 

Outros Exemplos Retirados do Manual  do Comando nmcli

 

Aqui não terá explicação. Para maiores detalhes visitar o manual da ferramenta: “man nmcli”

 

nmcli -t -f RUNNING general
nmcli -t -f STATE general
  nmcli radio wifi off
nmcli connection show
nmcli -p -m multiline -f all con show
nmcli connection show --active
nmcli -f name,autoconnect c s
 nmcli -p connection show "My default em1"
 nmcli --show-secrets connection show "My Home WiFi"
nmcli -f active connection show "My default em1"
nmcli -f profile con s "My wired connection"
nmcli -p con up "My wired connection" ifname eth0
nmcli con up 6b028a27-6dc9-4411-9886-e9ad1dd43761 ap 00:3A:98:7C:42:D3
nmcli device status
nmcli dev disconnect em2
nmcli -f GENERAL,WIFI-PROPERTIES dev show wlan0
nmcli -f CONNECTIONS device show wlp3s0
nmcli dev wifi
nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"
 nmcli -s dev wifi hotspot con-name QuickHotspot
nmcli dev modify em1 ipv4.method shared
nmcli dev modify em1 ipv6.address 2001:db8::a:bad:c0de
nmcli connection add type ethernet autoconnect no ifname eth0
nmcli c a ifname Maxipes-fik type vlan dev eth0 id 55
nmcli c a ifname eth0 type ethernet ipv4.method disabled ipv6.method link-local
nmcli connection edit ethernet-em1-2
nmcli connection edit type ethernet con-name "yet another Ethernet connection"
nmcli con mod ethernet-2 connection.autoconnect no
nmcli con mod "Home Wi-Fi" wifi.mtu 1350
 nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.23/24 192.168.1.1, 10.10.1.5/8,
       10.0.0.11"
 nmcli con modify ABC +ipv4.dns 8.8.8.8
nmcli con modify ABC -ipv4.addresses "192.168.100.25/24 192.168.1.1"
nmcli con import type openvpn file ~/Downloads/frootvpn.ovpn
nmcli con export corp-vpnc /home/joe/corpvpn.conf

 

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “Gerenciando Rede com mncli no Linux”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *