Fix: Mislyktes ingen rute for å hoste på Ubuntu med flere nettverk

Når du har et komplekst nettverksoppsett, er det frustrerende å få ingen rute til vertsbasert start etter at du har hevet et nytt grensesnitt. Dette skyldes ofte at standardruten enten er endret eller tapt.

For å sjekke standard rute, skriv inn

ip ruteplan

Som vist ovenfor har jeg tre fysiske grensesnitt, en utovervendt og to til interne nettverk. Standardruten droppet på nettverket når en tilkobling ble tilbakestilt, slik at resten av nettverket mitt fungerte normalt, med bare denne maskinen ikke vite hvor du skal komme til Internett.

For at maskinen skal kunne nå Internett må den ha en standard rute som kan legges til med følgende kommando

sudo ip-ruten legger til standard via 136.63.176.1

Hvis du har dette problemet oppstår mer enn en eller to ganger, kan det bli et ordensforstyrrelser, så jeg har skrevet et par skallskript for å raskt rette opp situasjonen.

Det første skriptet henter din nåværende ip for deg. Jeg har $ INTF satt som STDIN, du endrer den til ditt spesifikke grensesnitt hvis du ikke vil angi grensesnittnavnet.

Ved hjelp av din favoritt tekstredigerer, liker jeg vim og har en kildemappe i min hjemmekatalog

mkdir ~ / src && cd ~ / src

vim getip.sh

#! / bin / bash

#fetch ip adresse sett for gitt enhet

INTF = $ {1}

PTH = (~ / src /)

erklære TMP_IP2

TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d -f6 | cut -d / -f1> $ {PTH} nåværende _ $ {INTF} .ip)

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

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

erklære TMP_IP

TMP_IP = $ (katt $ {PTH} nåværende _ $ {INTF} .ip)

PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her

ekko gjeldende wan ip $ TMP_IP

Lagre og avslutt, gjør det kjørbart, og test det deretter.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

Forutsatt at det fungerte riktig for deg, fortsett og kopier det til / usr / local / bin / for å gjøre det globalt kjørbart.

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

Nå kan jeg bare skrive opp etip.2 og ip vil bli returnert.

Det andre skriptet vil tilordne standard ruten, så vel som å kjøre det første skriptet.

vim setip.sh

#! / bin / bash

tipp $ {1}

#fetch ip adresse sett for gitt enhet

PTH = (~ / src /)

erklære RT_IP

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

IP-rute endrer standard via $ RT_IP

IP-ruten legger til standard via $ RT_IP

ekko ip-rute - standard via $ RT_IP

Lagre og avslutt. Du har kanskje lagt merke til at jeg har begge endringer og legg til standardrute, dette er for anledninger at du har feil gateway-sett.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

Du kan sjekke rutetabellen på nytt for å dobbeltsjekke at alt er bra.

sudo ip ruteshow

Du kan kopiere skriptene til / usr / local / bin / hvis du vil at de skal kunne kjøres globalt. Det vil fortsatt kreve sudo, siden du endrer og grensesnitt.

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

PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her

Facebook Twitter Google Plus Pinterest