Como configurar sua interface de rede com o ifconfig

O comando ifconfig é usado para configurar interfaces de rede. No Linux, ele é muito usado tanto para obter informações sobre uma interface específica, como para alterar suas configurações.
network-switches-hot
O nome ifconfig quer dizer interface configurator.
O comando está presente no Android e, em aparelhos não rooteados, ele também pode ser usado, com algumas limitações.
Neste texto, vou mostrar, através de exemplos, alguns dos usos básicos do comando no Linux.
Embora o Android tenha sido mencionado e possua a ferramenta no seu leque de aplicativos de linha de comando, este tutorial se baseia em uma máquina Trisquel GNU/Linux Belenos — ou seja, você pode aplicar em qualquer distro Linux para PCs, sem problemas.

Como obter informações da configuração de uma interface de rede

Ao omitir opções ou parâmetro de execução, o ifconfig vai dar informações básicas sobre todas as interfaces de rede ativas no seu sistema:

ifconfig

A informação é disposta em 2 colunas. Na primeira, o nome da interface de rede (eth0, wlan0 etc) e, à direita, os dados referentes a ela:

eth0      Link encap:Ethernet  Endereço de HW 50:b7:c3:22:da:48  
          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
          pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  Endereço de HW c4:85:08:22:0a:aa  
          inet end.: 192.168.0.112  Bcast:192.168.0.255  Masc:255.255.255.0
          endereço inet6: fe80::c685:8ff:fea5:aaa/64 Escopo:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
          pacotes RX:1166677 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:763557 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:1664854788 (1.6 GB) TX bytes:74341794 (74.3 MB)

Para as informações sobre todas as interfaces de rede (ativas e inativas), use a opção -a:

ifconfig -a

Para obter informações específicas de uma determinada interface, basta citá-la na linha de comando:

ifconfig lo
lo        Link encap:Loopback Local  
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina
          UP LOOPBACK RUNNING  MTU:65536  Métrica:1
          pacotes RX:15175 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:15175 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:0 
          RX bytes:1264323 (1.2 MB) TX bytes:1264323 (1.2 MB)

O “lo” se refere ao “loopback interface” — uma interface de rede especial que o sistema usa para se comunicar consigo mesmo.

Como desligar ou ligar uma interface de rede com o ifconfig

Para fazer algumas configurações numa interface de rede (alterar o endereço de hardware MAC, por exemplo), pode ser necessário desligar a interface do dispositivo.
Para isto, use a cláusula down:

sudo ifconfig eth0 down

Note que, para efetuar esta operação, é necessário ter privilégios administrativos no sistema (sudo).
Para ativar uma interface desabilitada, use a opção up:

sudo ifconfig eth0 up

Se quiser, use ifup ou ifdown para obter o mesmo efeito. Veja um exemplo:

sudo ifup eth0

Mais simples, não é?

Como atribuir um endereço IP a uma interface de rede com ifconfig

Para atribuir ou alterar o endereço de rede IPv4, basta informar o novo endereço IP após o nome da interface:

sudo ifconfig eth0 192.168.0.100

Para alterar a máscara da subrede use a opção netmask:

sudo ifconfig eth0 netmask 255.255.255.0

Você pode alterar vários itens de uma só vez:

sudo ifconfig eth0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255
ifconfig eth0
eth0      Link encap:Ethernet  Endereço de HW 50:b7:c3:04:da:48  
          inet end.: 192.168.2.2  Bcast:192.168.2.255  Masc:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
          pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Se você quiser saber como alterar o endereço de hardware MAC, leia este artigo.

Como alterar o endereço IPv6 da placa de rede

O princípio é o mesmo usado anteriormente — só que você precisa especificar o tipo de endereço IPv6.
Veja um exemplo:

sudo ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64 

Para remover o mesmo endereço IPv6, use a opção del:

ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64

Como alterar a MTU da interface de rede

Uma taxa de MTU mais larga pode proporcionar mais eficiência — por que cada pacote que transita na rede poderá levar mais dados do usuário.
Aumentar o valor da MTU permite ao sistema processar menor quantidade de pacotes ao transmitir a mesma quantidade de dados.

A MTU corresponde a unidade de transmissão máxima — ou Maximum Transmission Unit — do protocolo de comunicação de uma camada. Seu tamanho é definido pela maior quantidade de bytes que a camada consegue repassar.

Em alguns sistemas, o processamento-por-pacote pode ser um limitador crítico da performance.
O ganho obtido com o aumento da taxa MTU traz consequências negativas.
Pacotes maiores ocupam links mais lentos por mais tempo do que pacotes menores — o que pode causar gargalos ou demoras para passar dados.
De forma resumida: aumento do lag e latência mínima.
Pacotes mais volumosos também são problemáticos na presença de erros de comunicação: uma pequena corrupção em um único bit, requer que todo o pacote seja retransmitido.
Se você quer alterar o valor do MTU, contudo, você provavelmente sabe o que está fazendo (não é?).
A interface de rede Ethernet tem um valor padrão de unidade de transmissão de 1500. Para alterar este valor para 1400, siga o exemplo abaixo:

ifconfig eth0 mtu 1400

Uma outra forma de ver o valor da MTU de cada interface é através do uso do comando ip:

ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1400 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: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff

Eventualmente, use o comando grep, para ver apenas as informações que te interessam.

Como ativar o modo promíscuo na sua interface de rede

O modo promíscuo ou promiscuous/promisc mode é comumente usado para diagnosticar problemas de conectividade em uma rede.
No Linux, você precisa ter privilégios administrativos para ativar este modo em uma interface de rede.
Quando este modo está ativado, você pode usar programas que fazem uso deste recurso para mostrar todos os dados em trânsito dentro da rede.

Alguns protocolos, como o FTP e o Telnet fazem transferência de dados em modo texto puro, sem encriptação e, portanto, podem ter seus dados expostos através de um programa scanner de rede — que faça uso do modo promíscuo para sondar o tráfego.

Para ativar o modo promíscuo da sua interface wifi wlan0, use o exemplo:

sudo ifconfig wlan0 promisc

Para voltar ao modo normal (não-promíscuo), use a opção -promisc:

sudo ifconfig wlan0 -promisc

Como adicionar interfaces alias de rede

O ifconfig pemite configurar interfaces de rede adicionais através do recurso alias.
Veja como adicionar uma interface de rede alias.
Se o endereço IP da sua interface eth0 é 192.168.0.125, então o alias tem que ser 192.168.0.127:

sudo ifconfig eth0:0 192.168.0.127

Agora verifique a nova interface:

ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:01:6C:99:14:68
          inet addr:192.168.0.127  Bcast:192.168.0.63  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:17

Para desativar a interface alias, use a opção down:

ifconfig eth0:0 down

Referências

http://en.wikipedia.org/wiki/Maximum_transmission_unit
http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/x1050.html

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

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