修正:複数のネットワークを持つUbuntuでホストへのルートが失敗しました



INTF = $ {1}

PTH =(〜/ src /)



TMP_IP2を宣言します



TMP_IP2 = $(ip a | grep $ {INTF} | grep inet | cut -d”” -f6 | cut -d“ /” -f1> $ {PTH} current _ $ {INTF} .ip)



ip a | grep $ {INTF} | grep inet |カット-d”” -f6 |カット-d“ /” -f1 |カット-d」。」 -f1-3 | awk ‘{print $ 0″ .0 / 24″}’> $ {PTH} net _ $ {INTF} .ip

ip a | grep $ {INTF} | grep inet |カット-d”” -f6 |カット-d“ /” -f1 |カット-d」。」 -f1-3 | awk ‘{print $ 0″ .1″}’> $ {PTH} gw _ $ {INTF} .ip

TMP_IPを宣言する



TMP_IP = $(cat $ {PTH} current _ $ {INTF} .ip)

エコー「現在のWANIP $ TMP_IP」

保存して終了し、実行可能にしてからテストします。

sudo chmod a + x getip.sh

bash getip.sh eth0.2

ホスト2へのルートがありません

それが適切に機能したと仮定して、先に進み、それを/ usr / local / bin /にコピーして、グローバルに実行可能にします。

sudo cp getip.sh / usr / local / bin / getip

これで、getip eth0.2と入力するだけで、IPが返されます。

2番目のスクリプトは、最初のスクリプトを実行するだけでなく、デフォルトルートを割り当てます。

私はsetip.shから来ました

#!/ bin / bash

getip $ {1}

特定のデバイスに設定された#fetchIPアドレス

PTH =(〜/ src /)

RT_IPを宣言する

RT_IP = $(cat $ {PTH} gw_ $ {1} .ip)

$ RT_IPを介したIPルート変更のデフォルト

ip route add default via $ RT_IP

echo“ ip route —デフォルトは$ RT_IP経由”

保存して終了します。デフォルトルートの変更と追加の両方があることに気付いたかもしれません。これは、ゲートウェイが間違って設定されている場合に使用します。

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

ホスト3へのルートがありません

ルーティングテーブルをもう一度チェックして、すべてが正常であることを再確認できます。

sudo ip route show

スクリプトをグローバルに実行可能にする場合は、スクリプトを/ usr / local / bin /にコピーできます。変更とインターフェースを行うため、sudoが必要です。

sudo cp setip.sh / usr / local / bin / setip

読んだ2分