すべてのデフォルトゲートウェイを削除する方法

すべてのデフォルトゲートウェイを削除する方法

私はカスタムLinuxボックスを実行しています。すべてのLinuxコマンドを使用できるわけではありません。
ネットワーク関連のコマンドを実行するので必要です。デフォルトゲートウェイ設定コマンドを実行する前にゲートウェイをすぐに削除します。

これを行うには、すべてのコマンドを1行で実行します。

/sbin/route add default gw 10.10.10.10;my command;/sbin/route del default gw 10.10.10.10;

問題は、何らかの理由で同じコンピュータで2つのデフォルトゲートウェイを見つけたことで、すべてのコマンドが失敗したことです。これは、テストを実行する前にデフォルトゲートウェイを設定しても問題があり、テストが実行されていないためです。

それでは方法はありませんか1つのコマンドですべてのデフォルトゲートウェイを削除する?私はますます多くのコンピュータを持っており、すべてのコンピュータにスクリプトを配置することは非現実的です。次のコマンドが必要です。シンプル次のように:

/sbin/route del all default;set my default gw;mycommand;/sbin/route del all default;

これまで私が見つけたのは削除コマンドだけです。デフォルトゲートウェイですが、すべてではありませんが、 /sbin/route del defaultこれは私には機能しません。

/sbin/routeヘルプには以下が表示されます。

/sbin/route --help

Usage: route [{add|del|delete}]

Edit the kernel's routing tables

Options:
        -n      Don't resolve names
        -e      Display other/more information
        -A inet Select address family

答え1

ip代わりに使用する場合は、route単に以下を実行できます。

ip route del 0/0

私はそれがすべての基本的なルートをキャプチャすると信じています。

答え2

すべてのデフォルトゲートウェイを削除するには、次を使用します。ip

ip route flush 0/0

答え3

すべての回答は良いですが、別のアプローチを使用してこの問題を解決しました。コマンドを使用してデフォルトゲートウェイのみを追加しましたが、デフォルトゲートウェイがすでに存在する場合は失敗しました。したがって、コマンドが終了すると、最終的に無効なゲートウェイが削除されます。これは2回目でも機能します。

ip route add default via my-gateway
ip route del default

答え4

解決しました
https://github.com/hub4ops/vagrant/blob/main/Vagrantfile

Vagrant.configure("2") do |config|    
  config.vm.box = "ubuntu/trusty64"    
  config.vm.network "public_network", bridge: "Intel(R) Dual Band Wireless-AC 7265"    
  config.vm.provision "shell", inline: <<-SHELL    
    ip route del 0/0
    ip route add 0.0.0.0/0 via 192.168.1.1
    echo "nameserver 8.8.8.8" > /etc/resolv.conf
  SHELL
end

関連情報