Como alterar o endereço IP com o comando ip no Linux.

Já falei antes sobre comandos relacionados à configuração e obtenção de informações sobre a interface de rede, no Linux.
No post substituição do ifconfig pelo ip, apresentei o comando e como obter informações sobre uma interface de rede.
Neste texto, vamos demonstrar como alterar o endereço IP de uma interface, na CLI do Linux.
Este tipo de configuração pode ser melhor feito na GUI da sua distro (com a vantagem de ser permanente).
Mas há situações em que não temos acesso a um ambiente desktop gráfico, que nos permita fazer este tipo de ajuste.

Geralmente, este método não é recomendado, para alterar o endereço IP de uma interface de rede, uma vez que ele não é persistente.
Ou seja, a configuração que você fizer perderá efeito após reiniciar a máquina.

Para realizar alterações temporárias na sua interface de rede, o comando ip provê um método bastante cômodo como solução.
Como este comando requer privilégios administrativos, sugiro usar uma máquina virtual para fazer suas experiências — caso você esteja lendo este texto apenas para aprender.
Para obter uma relação das interfaces presentes, rode o comando ip assim:


ip a

Se executada, sem privilégios administrativos, a linha acima deve retornar algo parecido com o que se vê abaixo. No meu caso, são informações básicas sobre as 3 interfaces de rede disponíveis em meu sistema:

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff
3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 4233sec preferred_lft 4233sec
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Use a opção '-c' para obter uma saída colorida
Use a opção '-c' para obter uma saída colorida

Veja um exemplo de como adicionar um endereço IP à interface enp2s0:


ip a add 10.0.2.21 dev enp2s0

O que foi feito, acima:

  • a — abreviatura de address (endereço).
  • add — indica que faremos uma adição á configuração atual.
  • 10.0.2.21 — provê o novo endereço IP.
  • dev enp2s0 — informa a que dispositivo (device) de rede as mudanças se aplicam.

Ao rodar o comando 'ip a' novamente, vai ser possível ver que um endereço foi adicionado ao dispositivo em questão.
Também dá para especificar a máscara de (sub)rede – se você souber qual é, claro.
Veja 2 exemplos de como fazer isto:


ip a add 192.168.1.101/255.255.255.0 dev eth0

ou


ip a add 192.168.1.101/24 dev eth0

Tal como no ifconfig, é possível usar 'up' e 'down' para ativar ou desativar uma interface:


ip link set dev eth0 up

ou


ip link set dev eth0 down

Se quiser remover um endereço associado a uma interface, use a opção 'del' (delete):


ip a del 10.0.2.21 dev enp2s0

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Como substituir o comando ifconfig pelo ip

Usuários tradicionais do Linux podem ter se acostumado a usar o comando ifconfig para solucionar, diagnosticar problemas ou fazer ajustes relacionados à interface de rede no seu sistema.
A ferramenta faz parte do pacote net-tools (no Debian) e vem sendo descontinuada há algum tempo — ou, pelo menos, não vinha recebendo mais atualizações.

ethernet cable
Ethernet.

Clique nos links dentro do texto e no final, para obter mais informações.
Alguns usuários ficaram surpresos com o “sumiço” da ferramenta, nas versões mais atuais de seus sistemas operacionais favoritos.
Entretanto, quem fizer questão, pode facilmente instalar o ifconfig, da seguinte forma:


sudo apt install net-tools

Por curiosidade, a opção ‘show’ mostra que o ifconfig (em destaque) ainda consta entre os pacotes do net-tools:


apt show net-tools

Package: net-tools
Version: 1.60+git20161116.90da8a0-1
Priority: optional
Section: net
Maintainer: net-tools Team 
Installed-Size: 963 kB
Depends: libc6 (>= 2.14), libselinux1 (>= 1.32)
Conflicts: ja-trans (<= 0.8-2)
Replaces: ja-trans (<= 0.8-2), netbase (<< 4.00)
Homepage: http://sourceforge.net/projects/net-tools/
Tag: admin::configuring, implemented-in::c, interface::commandline,
 network::configuration, network::routing, network::vpn, protocol::ipv6,
 role::program, scope::utility, use::routing
Download-Size: 248 kB
APT-Sources: http://ftp.br.debian.org/debian stretch/main amd64 Packages
Description: conjunto de ferramentas para rede NET-3
 Este pacote inclui as importantes ferramentas para controlar o sub-sistema
 de rede do kernel do Linux. Ele inclui: arp, ifconfig, netstat, rarp,
 nameif e route. Adicionalmente, este pacote contém utilitários relacionados
 a tipos particulares de hardware de rede (plipconfig, slattach, mii-tool) e
 aspectos avançados de configuração IP (iptunnel, ipmaddr).
 .
 No pacote original (do autor), 'hostname' e outros estão incluídos.
 Esses não são instalados por este pacote, visto que existe um pacote
 especial "hostname*.deb".

Se você usar o comando apt changelog sobre o pacote ‘net-tools’, vai ver que a última atualização (patch) do ifconfig ocorreu em 2011.
Muitas águas rolaram por baixo desta ponte.
O ip é a ferramenta de configuração da rede, que vem ganhando força.
Se estiver disposta(o) a seguir em frente e experimentar o novo, me acompanhe.

Saiba mais sobre o comando ip, para configuração de redes no Linux

É importante enfatizar que o ip não é, simplesmente, uma substituição do ifconfig.
São usados para propósitos similares, mas são diferentes entre si, em suas estruturas.
Veja o que dá para fazer com o ip:

  • Descobrir quais interfaces estão configuradas no sistema.
  • Inquirir sobre o estado de uma interface de rede.
  • Configurar as interfaces de rede — o que inclui o loop-back local e a Ethernet.
  • Ativar ou desativar uma interface.
  • Gerenciar o roteamento estático e padrão.
  • Configurar o tunelamento sobre o IP.

No próximo tópico, veremos alguns exemplos aonde o ip pode ser usado como substituto do ifconfig, para exibir o estado das interfaces de rede.
Lembre-se que a ferramenta requer privilégios administrativos, de forma que você vai ter que usar ou o su ou o sudo, para executar o comando.
Não esqueça de adequar os exemplos deste texto, à realidade da sua rede, aí.

Como obter informações da rede

Sempre usei muito o ifconfig para obter dados sobre as interfaces de rede presentes em meu hardware.
Isto pode ser feito apenas invocando o comando, sem dar qualquer parâmetro, argumento ou opção.
Esta tarefa pode ser executada com o comando ip da seguinte forma:


ip a

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff
3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 6263sec preferred_lft 6263sec
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Você sempre pode acrescentar as opções ‘-color’ (ou apenas ‘-c’) e ‘-human’ (‘-h’), para obter a saída, com destaques importantes colorizados e em formato um pouco mais legível (por humanos). Veja um exemplo:


ip -c -h a

terminal resultado do comando ip
Use a opção ‘-4’, para exibir informações sobre a rede IPv4:


ip -4 a 

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 5136sec preferred_lft 5136sec

Ou ‘-6’, para as informações de rede IPv6:


ip -6 a

1: lo:  mtu 65536 state UNKNOWN qlen 1
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: wlp1s0:  mtu 1500 state UP qlen 1000
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Quer restringir as informações a apenas uma das suas interfaces? Use o ‘show’ acompanhado do nome da interface de rede:


ip a show wlp1s0

3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global dynamic wlp1s0
       valid_lft 4818sec preferred_lft 4818sec
    inet6 fe80::8274:c9b8:688a:300a/64 scope link 
       valid_lft forever preferred_lft forever

Combine parâmetros e, sinta-se à vontade para incluir o comando grep, para filtrar melhor as informações exibidas:

ip -4 -c -h a show wlp1s0 | grep --color state

3: wlp1s0:  mtu 1500 qdisc mq state UP group default qlen 1000

Para ver apenas as interfaces de rede ativas, use o comando da seguinte forma:


ip -c link ls up

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0:  mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff
3: wlp1s0:  mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff

Como deixar sempre colorida a saída do comando ip

Note que gosto de acrescentar a opção ‘-c’, para colorizar a saída do comando — o que torna mais fácil a sua leitura.
Isto é opcional, claro.
Você pode incluir esta e outras opções automaticamente a cada nova entrada do comando, usando o alias:


alias ip='ip -c'

Se quiser torná-lo permanente, inclua esta linha ao final do arquivo .bashrc (do superusuário).

Referências

https://www.linux.com/learn/replacing-ifconfig-ip.

https://linuxconfig.org/how-to-install-missing-ifconfig-command-on-debian-linux.

Como instalar a interface de linha de comando do WordPress

Alguns usuários podem ter utilidade para uma interface de linha de comando, para realizar atividades administrativas relacionadas ao WordPress.
Para estes, existe o wp-cli — WordPress Command Line Interface, ou “interface de linha de comando do WordPress”.

Sua instalação é simples e leva menos de 30 segundos (verdade!).
Veja quais são os prerequisitos para baixar, instalar e usar o wp-cli:

  1. Ambiente UNIX-like, o que inclui o OSX, sua distro Linux favorita, FreeBSD e Cygwin (para usuários Windows). No ambiente Windows, há suporte limitado do aplicativo, mas é possível usá-lo.
  2. PHP — a versão 5.3.29 é requerida, mas as atuais distribuições GNU/Linux já estão usando versões superiores à 7.0.
  3. WordPress 3.7 ou superior.

Por fim, use o comando wget (ou o curl) para fazer o download do wp-cli.phar:


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Se preferir usar o curl, faça assim:


curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Verifique se aplicativo já está funcionando adequadamente:


php wp-cli.phar --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Para tornar o uso do aplicativo mais simplificado, vamos torná-lo executável:


chmod +x wp-cli.phar 

… e movê-lo para um diretório mais apropriado.


sudo mv wp-cli.phar /usr/local/bin/wp

Agora já será possível executá-lo, sem digitar “PHP” no começo:


wp --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Se preferir, na hora de baixar o programa, é possível optar pela versão nightly (a versão dos desenvolvedores). Ela tem os recursos mais atuais, porém é menos testada do que a versão estável.


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar

Feito o download, basta repetir os procedimentos acima — tendo o cuidado de trocar o nome da versão estável pelo da nightly.


Sempre que quiser atualizar o wp-cli, use a opção ‘update’:


sudo wp cli update
[sudo] senha para justincase: 
Success: WP-CLI is at the latest version.

Se quiser passar a usar a versão nightly, é possível fazer a troca também através do ‘update’. Veja:


sudo wp cli update --nightly

Como configuração adicional, torne o aplicativo amigável ao recurso de autocompletar:


wget https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash

Use o source, para incluir o recurso no BASH, inclua a seguinte linha no seu .bashrc:


source /caminho/para/wp-completion.bash 

… ou seja, se este arquivo estiver no seu diretório home, use “source ~/wp-completion.bash” (sem as aspas).
Para que a alteração tenha efeito imediato, rode o comando:


source ~/.bash_profile

Agora, é só usar!

Assine este site

Todo dia eu aprendo alguma coisa nova sobre administração de servidores, WordPress, bancos de dados, Android etc.
Desde o começo, este site existe para compartilhar o que sei com outras pessoas.
Se quiser ser avisado(a) quando houver post novo no blog, inscreva-se abaixo!

Referências

https://make.wordpress.org/cli/handbook/installing/.
Leia mais sobre WordPress, neste site.

Como criar rapidamente uma nova partição emergencial para SWAP.

Criar e começar a usar uma nova partição ou arquivo de SWAP pode ser feito muito rapidamente no Linux.
O procedimento é seguro e pode ser realizado em menos de 2 minutos.
Contudo, aconselho a ir com calma.
redimensionar reparticionar disco
Outro conselho útil para estas ocasiões é aproveitar para fazer um backup.
O contexto deste post é um notebook que me chegou às mãos e, após abrir dezenas e dezenas de novas abas e janelas no Firefox, a máquina começou a ficar insuportavelmente lenta.
Nenhum vídeo era reproduzido (nem no Facebook, nem no YouTube)
Chegou ao ponto em que eu tinha que ver o que estava acontecendo:


free -h

                    total        used            free      shared  buff/cache   available
Mem:           7,5G        6,0G        557M        565M        3,0G        700M
Swap:            0B          0B          0B

Observe o meu resultado, acima.
Há 557 Mb de memória RAM livres — ou seja, estamos chegando a um limite… e absolutamente nenhum SWAP (nem arquivo, nem partição) presente.
Não há muita esperança de que o SWAP possa desafogar o uso do navegador Firefox, nestas circunstâncias, mas outros programas, em uso no sistema, bem que poderiam se beneficiar do seu uso e ajudar a “desespremer” a memória RAM — o que seria benéfico, por extensão, para o navegador.

A máquina estava ligada há uns 5 dias e o reboot não costuma ser minha primeira uma opção.

Criar um arquivo para o SWAP é completamente indolor e rápido, no Linux.
O que inviabiliza esta solução é que o sistema de arquivos, aqui, é 100% BTRFS.
Não é possível criar um arquivo de troca em cima do BTRFS.


Havendo espaço e sem reiniciar o computador, seria possível redimensionar uma das partições, para criar uma exclusiva para SWAP, como reza a tradição?
Esta foi a minha aposta. Veja o resultado…

Nunca é demais avisar que o procedimento pode danificar seu sistema de arquivos e causar perda irreversível de dados.
— Portanto, verifique se seu backup está em dia, antes de prosseguir.

Instale o gparted:


sudo apt install gparted

Em seguida, rode o programa e selecione a partição que deseja redimensionar.
Se tiver dúvidas quanto ao tamanho mais adequado, o artigo Perguntas e respostas sobre SWAP tem uma tabela que simplifica o assunto.
Siga o procedimento abaixo:

  1. Clique com o botão direito do mouse/touchpad sobre a partição cujo tamanho deseja alterar e selecione “Redimensionar”.
    gparted redimensionar partição
  2. Agora, indique o tamanho da nova partição em “Espaço livre após (MB)”.
    gparted redimensionar
    Em seguida, marque a opção “formatar para Linux swap”.
    gparted redimensionar partição
  3. Aplique as alterações feitas.
  4. Clique com o botão direito sobre a nova partição SWAP e selecione “Ativar o swap”.
    gparted ativar swap

Com isto, o problema estará resolvido.
Rode novamente o free, no terminal, para ver que o SWAP já está lá, pronto para ser usado.


free -h

              total        used        free      shared  buff/cache   available
Mem:           7,5G        2,5G        270M        589M        4,8G        4,2G
Swap:          8,8G          0B        8,8G

Como resultado (pra mim), o Firefox voltou a ganhar agilidade, sem precisar ser fechado ou reiniciado — e os vídeos voltaram a ser reproduzidos dos sites.
Novamente, vale a advertência: não aconselho realizar este procedimento em máquinas de produção, sem fazer um backup antes.
Há risco de perda de dados.
No meu caso, tratava-se de uma máquina de testes e, portanto, fazia sentido prosseguir nesta aventura.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Instalação de multifuncional HP via USB no Linux

As impressoras e multifuncionais, bem como os digitalizadores de mesa da marca HP, há um bom tempo são (em geral) amigáveis com o sistema operacional Linux.
De tal forma que você provavelmente vai conseguir usar o seu equipamento logo depois de desembalá-lo.
Para contextualizar este post, fiz uso de uma multifuncional HP DeskJet Ink Advantage 3635, conectada a um notebook rodando Debian 9 Stretch.

Você tem outro modelo de impressora ou multifuncional? Usa outra distro Linux?
Conte para a gente como foi a sua experiência nos comentários.

Multifuncional HP DeskJet Ink Advantage 3635
Multifuncional HP DeskJet Ink Advantage 3635

Não esqueça de seguir as seguintes recomendações gerais da HP, antes ligar a impressora:

  • Se você acabou de tirar a impressora de dentro da caixa, deve desembalar e instalar os cartuchos com ela ainda desligada.
  • Depois de instalar os cartuchos conecte-a via USB ao seu PC de mesa ou notebook, ligue o cabo de força e toque no botão Power da impressora.

Segue o procedimento para instalar e imprimir sua primeira página de testes:

  1. No computador, pressione a tecla Super, para abrir o Dash e comece a digitar “impressora”. Selecione o item “Configurações de impressoras”.
  2. Ao abrir, o painel já deve estar mostrando o ícone referente ao equipamento. E, sim, já está pronta para uso.
  3. Clique no ícone para ver as configurações específicas.
  4. Agora clique sobre o botão “Imprimir página de teste”.

página de testes debian de impressão
Instalar impressoras no Linux, em muitos casos, é simples assim. 😉