Kui teil on keeruline võrgu häälestus, on masendav, kui teil on Hostini pole marsruuti ”Hakkavad ilmuma pärast uue liidese tõstmist. Selle põhjuseks on vaikemarsruudi kas muutmine või mahajätmine.
Vaikimisi marsruudi kontrollimiseks sisestage
ip marsruudi saade
Nagu eespool näidatud, on mul kolm füüsilist liidest, üks väljapoole suunatud ja kaks sisevõrkudega. Vaikimisi marsruut langes ühenduse taastamisel võrku, mistõttu ülejäänud mu võrk toimis normaalselt, ainult see masin ei teadnud, kuhu Internetti jõuda.
Selleks, et masin saaks Internetti pääseda, peab sellel olema vaikimisi marsruut, mille saab lisada järgmise käsuga
sudo ip marsruut lisab vaikimisi 136.63.176.1 kaudu
Kui teil tekib selline probleem rohkem kui üks või kaks korda, võib see osutuda häirivaks, nii et mul on kirjutatud paar shelliskripti, et olukorda kiiresti parandada.
Esimene skript toob teie jaoks teie praeguse ip-i. Mul on $ INTF seatud STDIN-iks. Kui te ei soovi liidese nime sisestada, muutke see oma konkreetseks liideseks.
Teie lemmiktekstiredaktorit kasutades meeldib mulle vim ja minu kodukataloogis on allikakaust
mkdir ~ / src && cd ~ / src
Tulin getip.sh
#! / bin / bash
#fetch ip-aadress määratud seadmele
INTF = $ {1}
PTH = (~ / src /)
deklareerige TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '” -f6 | cut -d “/” -f1> $ {PTH} praegune _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | lõika -d ”” -f6 | lõika -d “/” -f1 | lõika -d ”.” -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | lõika -d ”” -f6 | lõika -d “/” -f1 | lõika -d ”.” -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
deklareerige TMP_IP
TMP_IP = $ (kass $ {PTH} praegune _ $ {INTF} .ip)
kaja 'praegune wan ip $ TMP_IP'
Salvestage ja väljuge, muutke see käivitatavaks ja testige seda.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Eeldades, et see teie jaoks korralikult töötas, kopeerige see globaalselt käivitatavaks muutmiseks kataloogi / usr / local / bin /.
sudo cp getip.sh / usr / local / bin / getip
Nüüd saan lihtsalt kirjutada getip eth0.2 ja ip tagastatakse.
Teise skripti abil määratakse vaikimisi marsruut, samuti käivitatakse esimene skript.
Tulin aadressilt setip.sh
#! / bin / bash
saada $ {1}
#fetch ip-aadress määratud seadmele
PTH = (~ / src /)
deklareerida RT_IP
RT_IP = $ (kass $ {PTH} gw _ $ {1} .ip)
ip marsruudi muutmine vaikimisi $ RT_IP kaudu
ip marsruut lisab vaikimisi $ RT_IP kaudu
kaja 'ip marsruut - vaikimisi $ RT_IP kaudu'
Salvestage ja lõpetage. Võib-olla olete märganud, et mul on nii vaikemarsruut muutmine kui ka lisamine, see on juhuks, kui teil on vale lüüs määratud.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Võite uuesti kontrollida marsruutimistabelit, et kontrollida, kas kõik on korras.
sudo ip marsruudi saade
Skriptid saate kopeerida kataloogi / usr / local / bin /, kui soovite, et need oleksid ülemaailmselt käivitatavad. See nõuab endiselt sudot, kuna muudate ja liidestate.
2 minutit loetudsudo cp setip.sh / usr / local / bin / setip