NUSTATYTI: Nepavyko paleisti keliu į pagrindinį kompiuterį „Ubuntu“ su keliais tinklais



Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas

Kai turite sudėtingą tinklo sąranką, apmaudu turėti „ Nėra kelio į pagrindinį kompiuterį “Pradeda rodytis iškėlus naują sąsają. Dažnai taip yra dėl to, kad numatytasis maršrutas yra pakeistas arba atmestas.



Norėdami patikrinti numatytąjį maršrutą, įveskite



ip maršruto šou



nėra maršruto į šeimininką-1

Kaip parodyta aukščiau, aš turiu tris fizines sąsajas, vieną į išorę ir dvi prie vidinių tinklų. Numatytasis maršrutas sumažėjo tinkle, kai ryšys buvo atstatytas, todėl likęs mano tinklas veikė normaliai, tik ši mašina nežinojo, kur pasiekti internetą.

Kad mašina galėtų pasiekti internetą, reikia numatytojo maršruto, kurį galima pridėti naudojant šią komandą



sudo ip maršrutas pridėkite numatytąjį nustatymą per 136.63.176.1

Jei turite šią problemą daugiau nei vieną ar du kartus, tai gali tapti nemalonu, todėl aš parašiau keletą „shell“ scenarijų, kad greitai ištaisyčiau situaciją.

Pirmasis scenarijus atims jūsų dabartinį ip. Turiu $ INTF nustatytas kaip STDIN, jūs pakeisite jį į savo konkrečią sąsają, jei nenorite įvesti sąsajos pavadinimo.

Naudojant mėgstamą teksto rengyklę, man patinka „VIM“ ir mano namų kataloge yra šaltinio aplankas

mkdir ~ / src && cd ~ / src

Aš atėjau getip.sh

#! / bin / bash

#fetch ip adresas nustatytas tam tikram įrenginiui

INTF = $ {1}

PTH = (~ / src /)

paskelbti TMP_IP2

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

ip a | grep $ {INTF} | grep inet | supjaustyti -d ”” -f6 | supjaustyti -d “/” -f1 | supjaustyti -d “.“ -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} neto _ $ {INTF} .ip

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

paskelbti TMP_IP

TMP_IP = $ (katė $ {PTH} dabartinė _ $ {INTF} .ip)

aidas „dabartinis wan ip $ TMP_IP“

Išsaugokite ir išeikite, padarykite ją vykdomą ir išbandykite.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

nėra maršruto į šeimininką-2

Darant prielaidą, kad tai tinkamai veikė, eikite į priekį ir nukopijuokite jį į / usr / local / bin /, kad jis būtų vykdomas visame pasaulyje.

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

Dabar galiu tiesiog įvesti getip eth0.2 ir ip bus grąžintas.

Antrasis scenarijus priskirs numatytąjį maršrutą, taip pat paleis pirmąjį scenarijų.

Aš atėjau iš setip.sh

#! / bin / bash

gauti $ {1}

#fetch ip adresas nustatytas tam tikram įrenginiui

PTH = (~ / src /)

paskelbti RT_IP

RT_IP = $ (katė $ {PTH} gw _ $ {1} .ip)

ip maršruto numatytasis pakeitimas per $ RT_IP

ip maršrutas pridėkite numatytąjį nustatymą per $ RT_IP

echo „ip route - default by $ RT_IP“

Išsaugokite ir meskite. Galbūt pastebėjote, kad pakeičiau ir pridėjau numatytąjį maršrutą, tai yra kartais, kai nustatėte neteisingą šliuzą.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

nėra maršruto į šeimininką-3

Galite dar kartą patikrinti maršruto lentelę ir dar kartą patikrinti, ar viskas gerai.

sudo ip maršruto šou

Galite nukopijuoti scenarijus į / usr / local / bin /, jei norite, kad jie būtų vykdomi visame pasaulyje. Tam vis tiek reikės sudo, nes jūs modifikuojate ir sąsaja.

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

2 minutės perskaityta