Configurando manualmente o servidor DNS - raspbian

2

Eu escrevi um script simples para permitir que um usuário configure manualmente seu endereço IP e servidor DNS. Os servidores DNS são alterados criando um novo arquivo /etc/resolv.conf com as linhas que o usuário inseriu, por exemplo, o arquivo pode ficar parecido com:

nameserver 12.34.56.78
nameserver 12.34.56.79

no entanto, após uma reinicialização, essas alterações parecem não funcionar e o uso do DNS falha.

Ainda consigo fazer o ping do endereço IP, mas a tentativa de fazer ping de sites falha.

Abaixo está o script completo, deixe-nos saber o que você acha que poderia ser o problema.

#!/bin/bash

# wipes any corrent set up
> /etc/network/interfaces

echo "Automatic DHCP or Manual?,(D/M) followed by [ENTER]:"
read network

if [ $network == "D" ]; then
    echo "auto lo" >> /etc/network/interfaces

    echo "iface lo inet loopback" >> /etc/network/interfaces
    echo "iface eth0 inet dhcp" >> /etc/network/interfaces
    echo "iface default inet dhcp" >> /etc/network/interfaces
    echo "Network set up!"
    exit 0
fi

if [ $network == "M" ]; then
    echo "Enter IP address (e.g 192.168.0.7), followed by [ENTER]:"
    read address
    echo "Enter Netmask (e.g 255.255.255.0, followed by [ENTER]:"
    read mask
    echo "Enter router IP (e.g 192.168.0.1), followed by [ENTER]:"
    read router
    echo "Enter first DNS server (e.g 8.8.8.8), followed by [ENTER]:"
    read dns1
    echo "Enter second DNS server (e.g 8.8.8.8), followed by [ENTER]:"
    read dns2

    echo "auto lo" >> /etc/network/interfaces
    echo "iface lo inet loopback" >> /etc/network/interfaces

    echo "iface eth0 inet static" >> /etc/network/interfaces
    echo "  address $address" >> /etc/network/interfaces    
    echo "  netmask $mask" >> /etc/network/interfaces
    echo "  gateway $router" >> /etc/network/interfaces

    echo "iface default inet dhcp" >> /etc/network/interfaces

    > /etc/resolv.conf
    echo "nameserver $dns1" >> /etc/resolv.conf
    echo "nameserver $dns2" >> /etc/resolv.conf

    echo "Network set up!"
    exit 0

fi

echo "ERROR: you do not enter D or M";
exit 0

O script foi baseado nas informações da configuração manual encontradas aqui link

Quando o DHCP Automático é usado, o arquivo /etc/resolv.conf contém:

domain zyxel.com
search zyxel.com
nameserver 192.168.1.1
    
por Zac Powell 19.06.2013 / 21:32

1 resposta

0

O pacote padrão resolvconf faz /etc/resolv.conf em um symlink. Se você remover o link simbólico e criar um novo resolv.conf, ele ficará após a reinicialização. Você está muito próximo da linha > /etc/resolv.conf , mas aparentemente isso não substitui o symlink. Eu sugeriria primeiro excluir o link simbólico antigo com rm /etc/resolv.conf (ou melhor, fazer o backup com mv /etc/resolv.conf /etc/resolv.conf.bak ) logo antes dessa linha.

    
por 19.06.2013 / 23:25