No Ubuntu: “service networking restart” e “resolvconf restart” não entram em vigor até a reinicialização

4

Eu tenho uma situação em que estou usando dois ISPs, eu tenho um programa que periodicamente pinga um endereço e se está baixo assume que o ISP tem um problema e altera a rota padrão e as entradas do servidor DNS em / etc / network / interfaces e arquivos /etc/resolvconf/resolv.conf.d/tail, respectivamente. Ele altera essas configurações para serem apontadas para o ISP de backup. Eu então corro

sudo service networking restart 
sudo /etc/init.d/resolvconf restart. 

No entanto, isso não altera a rota padrão (conforme exibida pelo ip route ls) ou os servidores DNS no /etc/resolv.conf. Requer uma reinicialização. Como posso obter essas configurações ativadas sem reiniciar?

    
por Sunny 17.12.2015 / 13:43

1 resposta

3

Nada do que estou prestes a dizer é persistente nas reinicializações, o que eu presumo é o que você deseja, porque, aparentemente, você tem uma situação instável. Se não, me avise.

Eu assumo que você não tem um IP estático (novamente, se for o caso, pls me avise). O servidor DHCP do Provedor 1 permanece ligado quando a linha está inativa? Se não , então

 sudo ifdown eth0
 sudo ifup   eth0

lhe dará a nova configuração. Mas, se, em vez disso, o servidor DHCP do Provedor 1 permanecer , você terá que fazê-lo manualmente.

  1. Alterar rota:

    sudo ip route del default 
    sudo ip route add default via 192.168.1.121 dev eth0
    

    onde eu assumi que você está conectado via ethernet, e que o endereço IP do segundo modem é 192.168.1.121, se não for alterado de acordo.

  2. Altere o DNS, o mais simples é: edit (como sudo) /etc/resolv.conf , exclua as linhas com os DNS anteriores e adicione as duas linhas a seguir:

    nameserver 1.2.3.4
    nameserver 9.8.7.6
    

(substitua por seus valores).

Se você achar isso irritante, você pode automatizá-lo da seguinte forma: crie um arquivo executável (!), chame-o de line2 , com o seguinte conteúdo:

#!/bin/bash
sudo ip route del default 
sudo ip route add default via 192.168.1.121 dev eth0
sed -i --follow-symlinks 's/First.Old.DNS.IP./First.New.DNS.IP/' /etc/resolv.conf
sed -i --follow-symlinks 's/Second.Old.DNS.IP./Second.New.DNS.IP/' /etc/resolv.conf

e agora executando line2 , você terá a nova conexão.

Existem outras maneiras mais elegantes de alterar os DNSs (usando resolvconf , escrevendo para /etc/resolvconf.d ), mas como você parece ter um problema freqüente, nada é tão fácil quanto isso.

    
por 17.12.2015 / 14:33