Ha összetett hálózati beállítás van, akkor bosszantó, hogy a „ Nincs útvonal a gazda felé ”Egy új felület felvetése után kezdenek megjelenni. Ennek oka gyakran az, hogy az alapértelmezett útvonalat megváltoztatták vagy elvetették.
Az alapértelmezett útvonal ellenőrzéséhez írja be
ip útvonal megjelenítése
Mint fent látható, három fizikai interfésszel rendelkezem, egy kifelé néző és két belső hálózattal. Az alapértelmezett útvonal a kapcsolat visszaállításakor a hálózatra esett, ami a hálózat többi részének normális működését okozta, csak ez a gép nem tudta, hol érje el az internetet.
Ahhoz, hogy a gép elérhesse az internetet, rendelkeznie kell egy alapértelmezett útvonallal, amelyet a következő paranccsal lehet hozzáadni
sudo ip útvonal hozzáadása alapértelmezetten keresztül 136.63.176.1
Ha ez a probléma többször vagy kétszer jelentkezik, ez kellemetlenséget okozhat, ezért írtam egy pár shell parancsfájlt a helyzet gyors orvoslására.
Az első szkript be fogja tölteni az aktuális ip-t az Ön számára. STDIN-ként állítottam be a $ INTF-et, ha az nem akarja megadni a felület nevét, akkor módosítsa az adott felületre.
Kedvenc szövegszerkesztőjével szeretem a vim-et, és van egy forrásmappám a saját könyvtáramban
mkdir ~ / src && cd ~ / src
Eljöttem a getip.sh
#! / bin / bash
#fetch ip cím beállítva az adott eszközhöz
INTF = $ {1}
PTH = (~ / src /)
nyilatkozzon a TMP_IP2-ről
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '” -f6 | cut -d “/” -f1> $ {PTH} aktuális _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | vágás -d ”” -f6 | vágás -d “/” -f1 | vágott -d ”.” -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | vágás -d ”” -f6 | vágás -d “/” -f1 | vágott -d ”.” -f1-3 | awk ’{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
nyilatkozzon a TMP_IP-ről
TMP_IP = $ (macska $ {PTH} jelenlegi _ $ {INTF} .ip)
echo „jelenlegi wan ip $ TMP_IP”
Mentés és kilépés, futtathatóvá tétel, majd tesztelés.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Feltéve, hogy ez megfelelően működött, folytassa, és másolja át a / usr / local / bin / könyvtárba, hogy globálisan futtatható legyen.
sudo cp getip.sh / usr / local / bin / getip
Most egyszerűen be tudom írni a getip eth0.2 parancsot, és az ip visszatér.
A második szkript hozzárendeli az alapértelmezett útvonalat, valamint futtatja az első szkriptet.
A setip.sh oldalról jöttem
#! / bin / bash
getip $ {1}
#fetch ip cím beállítva az adott eszközhöz
PTH = (~ / src /)
nyilvánítsa az RT_IP-t
RT_IP = $ (macska $ {PTH} gw _ $ {1} .ip)
ip útvonal megváltoztatása alapértelmezetten a $ RT_IP segítségével
ip útvonal hozzáadása alapértelmezetten keresztül $ RT_IP
echo „ip útvonal - alapértelmezés a $ RT_IP segítségével”
Mentés és kilépés. Lehet, hogy észrevette, hogy módosítom és hozzáadom az alapértelmezett útvonalat is, ez alkalmakkor fordul elő, hogy rossz átjárót adott meg.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Újra ellenőrizheti az útválasztási táblázatot, hogy még egyszer ellenőrizze, hogy minden rendben van-e.
sudo ip útvonal megjelenítése
A parancsfájlokat átmásolhatja a / usr / local / bin / könyvtárba, ha azt szeretné, hogy globálisan futtathatóak legyenek. Ehhez továbbra is sudo szükséges, mivel Ön módosítja és kezeli az interfészt.
2 perc olvasássudo cp setip.sh / usr / local / bin / setip