Configurando interfaces de rede
Publicado por Willian Oliveira (última atualização em 01/09/2010)
[ Hits: 16.071 ]
Olá pessoal,
Eu sei que é muito fácil configurar interfaces de rede, mas eu acabei de criar um Shell-Script para fazer isso de uma forma mais interativa. Só tem algumas funcionalidades por enquanto, mas está bem funcional!
Por enquanto só tem isso:
* Ele cria e configura a interface de rede de forma que você não precisa saber muita coisa (estático e DHCP)
* Coloca IP automaticamente (se não colocado - como estático)
* Cria arquivos de configurações diferentes
* Une arquivos de configurações distintos
Esse script funciona bem no Debian Lenny 5.0.5, não testei em outras distribuições.
Para quem não sabe:
Ao baixar o arquivo, abra o terminal, e digite:
$ cd ~ (para ir para a pasta do seu usuário normal)
$ cd Downloads (ou outro diretório que o seu navegado salva os downloads)
$ sudo chmod 755 interfaces (dê permissões para o arquivo)
$ sudo ./interfaces (para executar o script)
Mas, cuidado!!! Esse script pode ajudar ou atrapalhar, use com consciência, pois o mesmo pode desconfigurar todas as suas interfaces de rede.
Eu acho que ele não funciona com interfaces wireless (pois não testei com a rede sem fio), quem testar e quiser compartilhar pode fica a vontade! =D
Desculpe qualquer erro de português do script, é que eu me preocupei com a parte funcional... xD
Abraços, até mais....
=D
Obs.: Não deixem de comentar.
#!/bin/bash
#Pergunta se deseja sair
sair()
{
echo -n "Você deseja sair ? [s/n] "
read sairfun
if [ $sairfun = "n" ]
then
$funcao
else
exit
fi
}
#Fazer configuração estática
estatico()
{
echo "" >> /etc/network/interfaces
#Verifica se foi digitado algo nas variáveis, se não, ele preenche ou ignora
if [ -z $ip ]
then
ip="192.168.0.2"
echo "address $ip" >> /etc/network/interfaces
else
echo "address $ip" >> /etc/network/interfaces
fi
if [ -z $mascara ]
then
mascara="255.255.255.0"
echo "netmask $mascara" >> /etc/network/interfaces
else
echo "netmask $mascara" >> /etc/network/interfaces
fi
if [ -z $rede ]
then
echo "#network $rede" >> /etc/network/interfaces
else
echo "network $rede" >> /etc/network/interfaces
fi
if [ -z $broadcast ]
then
echo "#broadcast $broadcast" >> /etc/network/interfaces
else
echo "broadcast $broadcast" >> /etc/network/interfaces
fi
if [ -z $gateway ]
then
echo "#gateway $gateway" >> /etc/network/interfaces
else
echo "gateway $gateway" >> /etc/network/interfaces
fi
if [ -z $mac ]
then
echo "#hwaddress ether $mac" >> /etc/network/interfaces
else
echo "hwaddress ether $mac" >> /etc/network/interfaces
fi
}
#Fim do estático
nova()
{
clear
funcao="nova"
#Verifica se existe uma pasta de configuração
if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação
echo "============================================================"
echo "| Nova configuração |"
echo "============================================================"
echo -n " Escreva o nome da configuração: [sem espaço] "
read nome
echo "============================================================"
echo ""
mii-tool
echo ""
echo "============================================================"
echo -n " Escreva o nome da interface: [eth0] "
read interface
if [ -z $interface]
then
interface="eth0"
fi
echo "============================================================"
echo -n " Escreva como deseja usar a interface: [dhcp/static] "
read modo
echo "============================================================"
case $modo in
static)
echo -n "Digite o endereço IP (ex. 192.168.0.2): "
read ip
echo -n "Digite a mascara (ex. 255.255.255.0): "
read mascara
echo -n "Digite a rede (não necessário): "
read rede
echo -n "Digite o endereço broadcast (não obrigatório): "
read broadcast
echo -n "Digite o gateway (não obrigatório): "
read gateway
echo -n "Digite o mac (não obrigatório): "
read mac
;;
dhcp)
echo "Usando configuração DHCP"
;;
*)
echo "Esse modo não é válido"
echo "Usando DHCP"
modo="dhcp"
;;
esac
echo "============================================================"
echo -n "Apagar todo arquivo de configuração? [s/n] "
read apagar
#Você não deseja apagar o arquivo todo
if [ $apagar = "n" -o $apagar = "não" ]
then
apagar=""
echo "" >> /etc/network/interfaces
echo "#Configuração: $nome" >> /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto $interface" >> /etc/network/interfaces
echo "iface $interface inet $modo" >> /etc/network/interfaces
if [ $modo = "static" ]
then
estatico
fi
/etc/init.d/networking restart
echo ""
cat /etc/network/interfaces
echo ""
echo -n "Salvar a configuração como está [s/n] "
read salvar
if [ $salvar = "s" ]
then
cp /etc/network/interfaces /interfaces/$nome
echo "Salvo"
exit
else
echo "Não salvo"
exit
fi
fi
#Se for diferente de "n" ou "não" o script aparagá o arquivo
if [ $apagar="s" ]
then
apagar=""
echo "#Configuração: $nome" > /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto $interface" >> /etc/network/interfaces
echo "iface $interface inet $modo" >> /etc/network/interfaces
if [ $modo = "static" ]
then
estatico
fi
/etc/init.d/networking restart
echo ""
cat /etc/network/interfaces
echo ""
echo -n "Salvar a configuração como está [s/n] "
read guardar
if [ $guardar = "s" ]
then
guardar=""
cp /etc/network/interfaces /interfaces/$nome
echo "Salvo"
sair
else
echo "Não salvo"
sair
fi
fi
}
#Função para usar unir uma interface salva com a atual
unir()
{
clear
funcao="unir"
#Verifica se a pasta existe, se não ele cria uma
if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação da pasta
#Menu da função unir
echo "==================================================="
echo "| Escolha o arquivo para unir |"
echo "==================================================="
echo ""
ls /interfaces | more
echo ""
echo "==================================================="
echo ""
echo -n "Escolha: "
read escolha
if [ -e /interfaces/$escolha ]
then
echo "" >> /etc/network/interfaces
cat /interfaces/$escolha >> /etc/network/interfaces
cat /etc/network/interfaces
/etc/init.d/networking restart
else
echo "Arquivo não existe"
sleep 2
$funcao
fi
}
#Função para usar as interfaces configuradas
configurada()
{
clear
funcao="configurada"
#Verifica se a pasta existe, se não ele cria
if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação da pasta
#Menu da fução configurada
echo "==================================================="
echo "| Usar uma interface configurada |"
echo "==================================================="
echo "| Qual configuração você deseja usar: |"
echo "==================================================="
echo ""
ls /interfaces | more
echo ""
echo "==================================================="
echo -n "Escolha: "
read escolha
if [ -e /interfaces/$escolha ]
then
cp /interfaces/$escolha /etc/network/interfaces
/etc/init.d/networking restart
sair
else
echo "Essa configuração não existe!"
sleep 2
$funcao
fi
}
menu()
{
clear
funcao="menu"
#Menu principal
clear
echo "==================================================="
echo "| O que você deseja fazer: |"
echo "==================================================="
echo "| 1) Nova configuração |"
echo "| 2) Usar configuração |"
echo "| 3) Unir aquivo salvo com a configuração |"
echo "==================================================="
echo "| q) Sair |"
echo "==================================================="
echo ""
echo -n "Opção escolhida: "
read fazer
case $fazer in
1)
clear
nova
;;
2)
clear
configurada
;;
3)
clear
unir
;;
q)
clear
exit
;;
*)
echo -n "Opção inválida"
sleep 2
menu
esac
}
#Iniciar a função do menu principal
menu
Script para calcular o valor fatorial de um numero
Script para verificação do JAVA configurado no PATH
Script para monitorar memória do servidor
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









