web-dev-qa-db-ja.com

Ubuntuの場合:「service networking restart」と「resolvconf restart」は再起動するまで有効になりません

2つのISPを使用している状況で、アドレスに定期的にpingを実行するプログラムがあり、アドレスがダウンしている場合、ISPに問題があり、/ etc/network/interfacesおよび/ etc/resolvconf/resolv.conf.d/tailファイル。バックアップISPを指すようにこれらの設定を変更します。次に走る

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

ただし、これによってデフォルトルート(ip route lsで表示される)または/etc/resolv.conf内のDNSサーバーは変更されません。再起動が必要です。再起動せずにこれらの設定をアクティブにするにはどうすればよいですか?

4
Sunny

私があなたに伝えようとしていることは、再起動後も持続するものは何もありません。どうやら、あなたは不安定な状況にあるので、それはあなたが望むものだと思います。そうでない場合は、お知らせください。

私はあなたがそうしていると思いますnot静的IPを持っています(もしそうなら、plsは私に知らせます)。回線がダウンしてもプロバイダー1のDHCPサーバーはオンのままですか? notの場合、

 Sudo ifdown eth0
 Sudo ifup   eth0

新しい設定が表示されます。ただし、代わりにプロバイダー1のDHCPサーバーdoesがオンのままである場合は、手動で行う必要があります。

  1. ルートを変更:

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

    ここでは、イーサネット経由で接続しており、2番目のモデムのIPアドレスは192.168.1.121であると想定しています。

  2. DNSの変更、最も簡単なのは、(Sudoとして)/etc/resolv.confを編集し、以前のDNSの行を削除してから、次の2行を追加します。

    nameserver 1.2.3.4
    nameserver 9.8.7.6
    

(自分の値で置き換えてください)。

この煩わしい場合は、次のように自動化できます。executable(!)ファイルを作成し、line2と呼びます。コンテンツ:

#!/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

line2を実行すると、新しい接続が提供されます。

DNSを変更する他のより洗練された方法があります(resolvconfを使用し、/etc/resolvconf.dに書き込みます)。しかし、頻繁に問題が発生するようなので、これほど簡単なことはありません。

5
MariusMatutiae