Fix: Misslyckades ingen rutt för att vara värd för Ubuntu med flera nätverk

När du har en komplicerad nätverksinstallation är det frustrerande att ingen rutt till värd börjar visas efter att du har hämtat ett nytt gränssnitt. Detta beror ofta på att standardrutten antingen har ändrats eller tappats.

För att kontrollera din standardrutt, skriv in

ip ruttshow

Som ovan visas har jag tre fysiska gränssnitt, en utåtvänd och två till interna nätverk. Standardrutten släpptes på nätverket när en anslutning återställdes, vilket gjorde att resten av mitt nätverk fungerade normalt, endast den här maskinen vet inte var man ska nå Internet.

För att maskinen ska kunna nå Internet måste den ha en standardrutt som kan läggas till med följande kommando

sudo ip-rutt lägg till standard via 136.63.176.1

Om du har detta problem uppstår mer än en eller två gånger kan det bli ett problem, så jag har skrivit ett par skalskript för att snabbt rätta till situationen.

Det första skriptet hämtar din nuvarande ip för dig. Jag har $ INTF inställd som STDIN, du ändrar den till ditt specifika gränssnitt om du inte vill ange gränssnittsnamnet.

Med din favorittextredigerare gillar jag vim och har en källmapp i min hemkatalog

mkdir ~ / src && cd ~ / src

vim getip.sh

#! / bin / bash

#fetch ip-adressuppsättning för given enhet

Intf = $ {1}

PTH = (~ / src /)

deklarera TMP_IP2

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

ip a | grep $ {INTF} | grep inet | cut -d -f6 | cut -d / -f1 | skära -d. -f1-3 | awk '{print $ 0 ".0 / 24"}'> $ {PTH} netto _ $ {INTF} .ip

ip a | grep $ {INTF} | grep inet | cut -d -f6 | cut -d / -f1 | skära -d. -f1-3 | awk '{print $ 0 ".1"}'> $ {PTH} gw _ $ {INTF} .ip

deklarera TMP_IP

TMP_IP = $ (katt $ {PTH} nuvarande _ $ {INTF} .ip)

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

echo current wan ip $ TMP_IP

Spara och avsluta, gör den körbar och test sedan den.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

Förutsatt att det fungerade ordentligt för dig, fortsätt och kopiera det till / usr / local / bin / för att göra det globalt körbart.

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

Nu kan jag helt enkelt skriva getip eth0.2 och ip kommer att returneras.

Det andra skriptet kommer att tilldela standardrutten, liksom att köra det första skriptet.

vim setip.sh

#! / bin / bash

getip $ {1}

#fetch ip-adressuppsättning för given enhet

PTH = (~ / src /)

deklarera RT_IP

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

IP-ruttbyte standard via $ RT_IP

IP-rutt lägger till standard via $ RT_IP

echo ip route - standard via $ RT_IP

Spara och avsluta. Du kanske har märkt att jag har båda ändringar och lägg till standardrutt, det här är för tillfällen att du har fel gateway-uppsättning.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

Du kan kolla rutningstabellen igen för att dubbelklicka på att allt är bra.

sudo ip ruteshow

Du kan kopiera skripten till / usr / local / bin / om du vill att de ska kunna köras globalt. Det kommer fortfarande att krävas sudo, eftersom du ändrar och gränssnitt.

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

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Facebook Twitter Google Plus Pinterest