Ko imate zapleteno omrežno nastavitev, je neprijetno, če imate Ni poti do gostitelja ”Se začne pojavljati po dvigu novega vmesnika. To je pogosto posledica spremembe ali spuščanja privzete poti.
Če želite preveriti privzeto pot, vnesite
ip show show
Kot je prikazano zgoraj, imam tri fizične vmesnike, enega navzven in dva za notranja omrežja. Privzeta pot je padla v omrežje, ko je bila povezava ponastavljena, zaradi česar je ostalo moje omrežje normalno delovalo, le da ta naprava ni vedela, kje najti internet.
Da lahko naprava doseže internet, mora imeti privzeto pot, ki jo lahko dodate z naslednjim ukazom
sudo ip route add default prek 136.63.176.1
Če imate to težavo več kot enkrat ali dvakrat, lahko postane moteča, zato sem napisal nekaj skriptov lupine, da hitro odpravim situacijo.
Prvi skript bo za vas prinesel vaš trenutni ip. $ INTF imam nastavljen kot STDIN, če ga ne želite vnesti, ga spremenite v svoj vmesnik.
Z vašim najljubšim urejevalnikom besedil mi je všeč vim in v domačem imeniku imam izvorno mapo
mkdir ~ / src && cd ~ / src
Prišel sem getip.sh
#! / bin / bash
#fetch ip address set for a device
INTF = {1} $
PTH = (~ / src /)
izjavi TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '' -f6 | cut -d '/' -f1> $ {PTH} trenutno _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | cut -d ”” -f6 | cut -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | cut -d ”” -f6 | cut -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
izjavi TMP_IP
TMP_IP = $ (mačka $ {PTH} trenutno _ $ {INTF} .ip)
echo “trenutni wan ip $ TMP_IP”
Shranite in zapustite, naredite jo izvedljivo in jo nato preizkusite.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Če predpostavimo, da je delovalo pravilno, ga nadaljujte in kopirajte v / usr / local / bin /, da bo globalno izvedljiv.
sudo cp getip.sh / usr / local / bin / getip
Zdaj lahko preprosto vtipkam getip eth0.2 in ip bo vrnjen.
Drugi skript bo določil privzeto pot in zagon prvega skripta.
Prišel sem iz setip.sh
#! / bin / bash
getip $ {1}
#fetch ip address set for a device
PTH = (~ / src /)
prijavi RT_IP
RT_IP = $ (mačka $ {PTH} gw _ $ {1} .ip)
ip privzeta sprememba poti prek $ RT_IP
ip route dodaj privzeto prek $ RT_IP
echo “ip route - privzeto prek $ RT_IP”
Shrani in prenehaj. Morda ste opazili, da privzeto pot spremenim in dodam, to je v primerih, ko ste nastavili napačen prehod.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Znova lahko preverite usmerjevalno tabelo, da še enkrat preverite, ali je vse v redu.
sudo ip route show
Skripte lahko kopirate v / usr / local / bin /, če želite, da so globalno izvedljivi. Še vedno bo zahteval sudo, saj spreminjate in vmesnik.
2 minuti branjasudo cp setip.sh / usr / local / bin / setip