Popravak: Nije uspio put za hostiranje na Ubuntuu s više mreža



Isprobajte Naš Instrument Za Uklanjanje Problema

Kada imate složene mrežne postavke, frustrirajuće je imati ' Nema rute do domaćina ”Počinju se pojavljivati ​​nakon podizanja novog sučelja. To je često zbog promjene zadane rute ili ispuštanja.



Za provjeru zadane rute unesite



ip ruta show



nema rute do host-1

Kao što je prikazano gore, imam tri fizička sučelja, jedno prema van i dva prema unutarnjim mrežama. Zadana ruta pala je na mreži kad je veza resetirana, zbog čega je ostatak moje mreže normalno radio, samo što ovaj stroj nije znao gdje doći do Interneta.

Da bi stroj mogao pristupiti Internetu mora imati zadanu rutu koja se može dodati sljedećom naredbom



sudo ip ruta dodaj zadani putem 136.63.176.1

Ako se ovaj problem pojavi više puta ili dva puta, to može postati smetnja, pa sam napisao nekoliko skripti školjke kako bih brzo ispravio situaciju.

Prva će skripta dohvatiti vaš trenutni ip za vas. Imam $ INTF postavljen kao STDIN, promijenite ga u svoje određeno sučelje ako ne želite unijeti naziv sučelja.

Pomoću vašeg omiljenog uređivača teksta volim vim i imam izvornu mapu u svom početnom direktoriju

mkdir ~ / src && cd ~ / src

Došao sam getip.sh

#! / bin / bash

#fetch ip adresa postavljena za zadani uređaj

INTF = {1} USD

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 | izrezati -d ”” -f6 | izrezati -d “/” -f1 | izrezati -d '.' -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip

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

izjavi TMP_IP

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

odjek 'trenutni wan ip $ TMP_IP'

Spremite i zatvorite, učinite ga izvršnim, a zatim testirajte.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

nema rute do host-2

Pod pretpostavkom da je to ispravno funkcioniralo, kopirajte ga u / usr / local / bin / kako biste ga učinili globalno izvršnim.

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

Sada mogu jednostavno upisati getip eth0.2 i ip će biti vraćen.

Druga skripta dodijelit će zadanu rutu, kao i izvođenje prve skripte.

Došao sam iz setip.sh

#! / bin / bash

getip $ {1}

#fetch ip adresa postavljena za zadani uređaj

PTH = (~ / src /)

proglasiti RT_IP

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

ip zadana promjena rute putem $ RT_IP

ip route add default putem $ RT_IP

odjek 'ip ruta - zadana putem $ RT_IP'

Spremi i zatvori. Možda ste primijetili da i mijenjam i dodajem zadanu rutu, ovo je za prilike da ste postavili pogrešan pristupnik.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

nema rute do host-3

Možete ponovno provjeriti tablicu usmjeravanja da biste još jednom provjerili je li sve u redu.

sudo ip show route

Možete kopirati skripte u / usr / local / bin / ako želite da budu globalno izvršne. I dalje će biti potreban sudo, jer mijenjate i sučelje.

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

2 minute čitanja