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.
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
Observação Importante
As alterações de ip acima são temporárias. Serão apagadas após reinício do sistema. Para deixar as configurações permanentes temos que alterar os arquivos dentro de “/etc/NetworkManager/system-connections“. Após editado execute o comando: nmcli device reapply.
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
Conclusão
Vimos um pouco sobre a ferramenta nmcli que gerencia, em linha de comando, o NetworkManager.
Segue abaixo uma simples tabela com abreviações:
Comando nmcli | Abreviação | |
---|---|---|
nmcli general status | nmcli g | |
nmcli general logging | nmcli g log | |
nmcli connection show | nmcli con show | |
nmcli connection show active | nmcli con show -a | |
nmcli device status | nmcli dev |
2 Comments to “Gerenciando Rede com a Ferramenta mncli do NetworkManager no Linux”