Popravek: neuspešna pot do gostovanja v Ubuntuju z več omrežji



Preizkusite Naš Instrument Za Odpravo Težav

Ko imate zapleteno omrežno nastavitev, je neprijetno, če imate Ni poti do gostitelja ”Se začne pojavljati po dvigu novega vmesnika. To je pogosto posledica spremembe ali spuščanja privzete poti.



Če želite preveriti privzeto pot, vnesite



ip show show



ni poti do gostitelja-1

Kot je prikazano zgoraj, imam tri fizične vmesnike, enega navzven in dva za notranja omrežja. Privzeta pot je padla v omrežje, ko je bila povezava ponastavljena, zaradi česar je ostalo moje omrežje normalno delovalo, le da ta naprava ni vedela, kje najti internet.

Da lahko naprava doseže internet, mora imeti privzeto pot, ki jo lahko dodate z naslednjim ukazom



sudo ip route add default prek 136.63.176.1

Če imate to težavo več kot enkrat ali dvakrat, lahko postane moteča, zato sem napisal nekaj skriptov lupine, da hitro odpravim situacijo.

Prvi skript bo za vas prinesel vaš trenutni ip. $ INTF imam nastavljen kot STDIN, če ga ne želite vnesti, ga spremenite v svoj vmesnik.

Z vašim najljubšim urejevalnikom besedil mi je všeč vim in v domačem imeniku imam izvorno mapo

mkdir ~ / src && cd ~ / src

Prišel sem getip.sh

#! / bin / bash

#fetch ip address set for a device

INTF = {1} $

PTH = (~ / src /)

izjavi TMP_IP2

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

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

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

izjavi TMP_IP

TMP_IP = $ (mačka $ {PTH} trenutno _ $ {INTF} .ip)

echo “trenutni wan ip $ TMP_IP”

Shranite in zapustite, naredite jo izvedljivo in jo nato preizkusite.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

ni poti do gostitelja-2

Če predpostavimo, da je delovalo pravilno, ga nadaljujte in kopirajte v / usr / local / bin /, da bo globalno izvedljiv.

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

Zdaj lahko preprosto vtipkam getip eth0.2 in ip bo vrnjen.

Drugi skript bo določil privzeto pot in zagon prvega skripta.

Prišel sem iz setip.sh

#! / bin / bash

getip $ {1}

#fetch ip address set for a device

PTH = (~ / src /)

prijavi RT_IP

RT_IP = $ (mačka $ {PTH} gw _ $ {1} .ip)

ip privzeta sprememba poti prek $ RT_IP

ip route dodaj privzeto prek $ RT_IP

echo “ip route - privzeto prek $ RT_IP”

Shrani in prenehaj. Morda ste opazili, da privzeto pot spremenim in dodam, to je v primerih, ko ste nastavili napačen prehod.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

ni poti do gostitelja-3

Znova lahko preverite usmerjevalno tabelo, da še enkrat preverite, ali je vse v redu.

sudo ip route show

Skripte lahko kopirate v / usr / local / bin /, če želite, da so globalno izvedljivi. Še vedno bo zahteval sudo, saj spreminjate in vmesnik.

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

2 minuti branja