Tomamos as interfaces gráficas (GUIs) como garantidas. Elas geralmente “simplesmente funcionam” e podemos, em grande parte, seguir com os nossos afazeres sem pensar muito. A GUI de rede do Linux agora faz parte desse grupo. Estávamos lá quando configurar redes no Linux era uma tarefa árdua, lembramo-nos de configurar o PPP para nos ligarmos à Internet via modem, no Linux!
O que acontece quando algo corre mal? A GUI falha ou ficamos apenas com um terminal Linux? Talvez estejamos a instalar Linux num servidor sem GUI? Nessas circunstâncias, precisamos de entender como criar, romper e configurar conexões usando o comando ip.
O comando ip é o substituto do comando ifconfig e podemos usá-lo para controlar todos os aspetos da rede. Neste tutorial, mostramos como usar o comando para muitas tarefas de rede básicas, mas essenciais.
As interfaces são os nossos pontos de conexão. Podem ser físicas, como Ethernet, ou baseadas em rádio, como Wi-Fi. Cada interface tem um nome único, para identificar se é Ethernet ou Wi-Fi. No passado, esses nomes eram genéricos, como eth0 para a primeira conexão Ethernet e wlan0 para Wi-Fi.
A nossa primeira tarefa é identificar as interfaces disponíveis.
- Abra um terminal e liste todas as interfaces disponíveis. O comando ip pode receber apenas uma letra (a) ou uma palavra-chave (address) como argumento. As interfaces são numeradas e normalmente começam com a interface loopback (lo).
ip a
ou
ip address
- A saída do comando anterior mostrará todas as interfaces. Para retornar apenas as interfaces ativas (up), use este comando.
ip link ls up
- Use este comando para obter os detalhes de uma interface específica. Lembre-se de alterar wlp3s0 para corresponder a uma das interfaces na sua saída. Pode também canalizar a saída do comando usando grep para obter detalhes específicos.
ip a show wlp3s0
- Use este comando para determinar o gateway padrão da sua conexão. O gateway padrão é tipicamente o nosso router doméstico, o hardware que nos permite conectar à Internet.
ip r
- Para desativar uma interface (desconectar), use este comando. Isto desconectará o seu dispositivo Linux da rede. Lembre-se de substituir o nome da interface pelo nome da sua interface.
sudo ip link set wlp3s0 down
- Liste as interfaces ativas, isso mostrará que o seu dispositivo não está mais conectado à rede. No nosso caso, desconectámos Ethernet e Wi-Fi.
ip link ls up
- Ative uma interface usando este comando. Escolhemos ativar nosso Wi-Fi (wlp3s0) para que nosso laptop pudesse conectar-se à Internet. Lembre-se de alterar o nome da interface para o seu.
sudo ip link set wlp3s0 up
Para muitos de nós, um endereço de IP atribuído dinamicamente pelo nosso router é tudo o que precisamos para nos conectarmos. E se quisermos criar um servidor? Um servidor precisará de um endereço de IP estático para permitir que dispositivos conectados o encontrem.
Usando o que aprendemos com o comando ip, podemos ver os nomes das interfaces no nosso sistema de teste, wlp3s0 (Wi-Fi) e enp0s25 (Ethernet). Então, vamos definir um endereço IP estático para a porta Ethernet.
Estamos a usar um sistema baseado em Debian, mas as instruções também funcionarão num Raspberry Pi com Raspberry Pi OS.
- Abra um terminal e faça um backup do seu arquivo de configuração de interfaces de rede existente para o seu diretório home. Isso é essencial, dá-nos um plano de backup caso a configuração falhe. O ~/ é uma abreviação para o diretório home do utilizador atual.
sudo cp /etc/network/interfaces ~/
- Abra o arquivo de configuração das interfaces de rede usando sudo e nano. O arquivo não pode ser editado por um utilizador sem privilégios usando o nano. Usando sudo, podemos temporariamente elevar nossa conta de utilizador para que possamos editar o arquivo.
sudo nano /etc/network/interfaces
- Role até o final do arquivo e adicione as seguintes linhas ao seu arquivo de configuração. Lembre-se de alterar os valores para corresponder à sua rede doméstica e interface. As duas primeiras linhas são para a nossa interface loopback. A linha auto enp0s25 iniciará a interface Ethernet na inicialização do sistema. A linha iface é onde configuramos a interface para usar um endereço IP estático.
Nas linhas subsequentes, definimos o nosso endereço de IP desejado, a máscara de rede (para dividir o endereço de IP em sub-redes, tipicamente 255.255.255.0), gateway (o nosso router) e o domínio DNS e nameserver. Para DNS, usamos o servidor DNS da Cloudflare 1.1.1.1, mas pode usar qualquer outro serviço DNS ou o seu router.
auto lo
iface lo inet loopback
auto enp0s25
iface enp0s25 inet static
address 192.168.0.180
netmask 255.255.255.0
gateway 192.168.0.1
dns-domain homeserver.pt
dns-nameservers 1.1.1.1
- Salve e saia do nano pressionando CTRL+X, depois Y e Enter.
- Reinicie a rede no seu servidor para que as alterações entrem em vigor.
sudo systemctl restart networking
- Usando o comando ip, verifique se a sua interface está ativa e se tem uma conexão. Listar as interfaces ativas e canalizar a saída para grep, depois procurar por “inet” provará que a interface está ativa e estamos online.
ip a ls up | grep inet
- Finalmente, faça um ping a um endereço IP para garantir que o seu servidor pode alcançar o mundo exterior. Deve ver pings a serem enviados dentro de alguns milissegundos, se houver um problema, o comando dará erro. Pressione CTRL + C para terminar o comando de ping. Normalmente, usamos o endereço IP do servidor DNS do Google 8.8.8.8, mas também pode usar o 1.1.1.1 da CloudFlare ou o 208.67.222.123 da OpenDNS.
ping 8.8.8.8