Configurando interfaces de rede
Publicado por Willian Oliveira (última atualização em 01/09/2010)
[ Hits: 16.069 ]
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
Exclusão de arquivos em massa por data
Calculadora com 4 operações e cálculo de porcentagem
Estatística dos MB's consumidos pela internet
Instalando o Token Safenet 5110 em linux base debian
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
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









