Când aveți o configurare complexă a rețelei, este frustrant să aveți „ Niciun traseu către gazdă ”Începe să apară după creșterea unei noi interfețe. Acest lucru se datorează frecvent schimbării sau eliminării rutei implicite.
Pentru a verifica ruta implicită, introduceți
spectacol de traseu ip
După cum se arată mai sus, am trei interfețe fizice, una orientată spre exterior și două către rețelele interne. Ruta implicită a căzut în rețea atunci când a fost resetată o conexiune, ceea ce a făcut ca restul rețelei mele să funcționeze normal, doar această mașină neștiind unde să ajungă la Internet.
Pentru ca aparatul să poată ajunge la Internet, trebuie să aibă un traseu implicit care poate fi adăugat cu următoarea comandă
sudo ip route add default prin 136.63.176.1
Dacă aveți această problemă, apare mai mult de o dată sau de două ori, aceasta poate deveni o pacoste, așa că am scris câteva scripturi shell pentru a corecta rapid situația.
Primul script vă va prelua ip-ul curent pentru dvs. Am setat $ INTF ca STDIN, îl schimbați la interfața dvs. specifică dacă nu doriți să introduceți numele interfeței.
Folosind editorul de text preferat, îmi place vim și am un director sursă în directorul meu de acasă
mkdir ~ / src && cd ~ / src
Am venit getip.sh
#! / bin / bash
#fetch adresa IP setată pentru dispozitivul dat
INTF = $ {1}
PTH = (~ / src /)
declarați 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 | tăiat -d ”” -f6 | tăiat -d „/” -f1 | tăiat -d ”.” -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | tăiat -d ”” -f6 | tăiat -d „/” -f1 | tăiat -d ”.” -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
declarați TMP_IP
TMP_IP = $ (cat $ {PTH} curent _ $ {INTF} .ip)
ecou „ip actual wan $ TMP_IP”
Salvați și ieșiți, faceți executabil, apoi testați-l.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Presupunând că a funcționat corect pentru dvs., mergeți mai departe și copiați-l în / usr / local / bin / pentru ao face executabil la nivel global.
sudo cp getip.sh / usr / local / bin / getip
Acum pot tasta pur și simplu getip eth0.2 și ip-ul va fi returnat.
Al doilea script va atribui ruta implicită, precum și rularea primului script.
Am venit de la setip.sh
#! / bin / bash
obține $ {1}
#fetch adresa IP setată pentru dispozitivul dat
PTH = (~ / src /)
declara RT_IP
RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)
schimbarea traseului ip implicit prin $ RT_IP
ip route add default prin $ RT_IP
ecou „ruta ip - implicit prin $ RT_IP”
Salvează și închide. S-ar putea să fi observat că am modificat și adăugat ruta implicită, aceasta este pentru ocazii în care aveți un gateway setat greșit.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Puteți verifica din nou tabelul de rutare pentru a verifica dacă totul este bine.
sudo ip route show
Puteți copia scripturile în / usr / local / bin / dacă doriți ca acestea să fie executabile la nivel global. Va necesita în continuare sudo, pe măsură ce modificați și interfața.
2 minute cititesudo cp setip.sh / usr / local / bin / setip