Oplossing: Mislukt Geen route naar host op Ubuntu met meerdere netwerken

Wanneer u een complexe netwerkconfiguratie hebt, is het frustrerend om de No Route to Host- start te laten verschijnen nadat u een nieuwe interface hebt opgehaald. Dit komt vaak doordat de standaardroute wordt gewijzigd of verwijderd.

Om uw standaardroute in te voeren, voert u in

ip route show

Zoals hierboven getoond, heb ik drie fysieke interfaces, één naar buiten gericht en twee naar interne netwerken. De standaardroute die op het netwerk is gevallen toen een verbinding werd gereset, waardoor de rest van mijn netwerk normaal werkt, waarbij alleen deze machine niet weet waar hij het internet kan bereiken.

Om ervoor te zorgen dat de machine het internet kan bereiken, moet het een standaardroute hebben die kan worden toegevoegd met de volgende opdracht

sudo ip route voeg standaard toe via 136.63.176.1

Als dit probleem zich vaker dan een of twee keer voordoet, kan het een overlast worden, dus ik heb een paar shell-scripts geschreven om de situatie snel te verhelpen.

Het eerste script haalt je huidige IP voor je op. Ik heb $ INTF ingesteld als STDIN, je verandert het in je specifieke interface als je de interfacenaam niet wilt invoeren.

Met behulp van je favoriete teksteditor hou ik van vim en heb ik een bronmap in mijn thuismap

mkdir ~ / src && cd ~ / src

vim getip.sh

#! / bin / bash

# haal ip-adres op dat is ingesteld voor een bepaald apparaat

INTF = $ {1}

PTH = (~ / src /)

declareer TMP_IP2

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

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

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

verklaren TMP_IP

TMP_IP = $ (cat $ {PTH} huidige _ $ {INTF} .ip)

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

echo huidige wan ip $ TMP_IP

Sla op en sluit af, maak het uitvoerbaar en test het vervolgens.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

Ervan uitgaande dat dat goed werkt, ga je gang en kopieer het naar / usr / local / bin / om het wereldwijd uitvoerbaar te maken.

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

Nu kan ik gewoon getip eth0.2 typen en het ip wordt teruggestuurd.

Het tweede script zal de standaardroute toewijzen, evenals het eerste script uitvoeren.

vim setip.sh

#! / bin / bash

getip $ {1}

# haal ip-adres op dat is ingesteld voor een bepaald apparaat

PTH = (~ / src /)

verklaren RT_IP

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

ip routewijziging standaard via $ RT_IP

ip route voeg standaard toe via $ RT_IP

echo ip-route - standaard via $ RT_IP

Opslaan en afsluiten. Het is u misschien opgevallen dat ik beide wijzigingen aanbreng en een standaardroute toevoeg, dit is voor gelegenheden waarbij u de verkeerde gateway hebt ingesteld.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

U kunt de routingtabel opnieuw controleren om te controleren of alles goed is.

sudo ip-route show

U kunt de scripts kopiëren naar / usr / local / bin / als u wilt dat ze wereldwijd uitvoerbaar zijn. Het vereist nog steeds sudo, omdat je aan het wijzigen bent en de interface gebruikt.

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

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

Facebook Twitter Google Plus Pinterest