Solució: no s'ha pogut fer cap ruta per allotjar-se a Ubuntu amb diverses xarxes



Proveu El Nostre Instrument Per Eliminar Problemes

Quan teniu una configuració de xarxa complexa, és frustrant tenir el “ No hi ha ruta per allotjar-se ”Comença a aparèixer després de crear una nova interfície. Això sovint es deu al fet que la ruta per defecte es canvia o es deixa caure.



Per comprovar la ruta predeterminada, introduïu



espectacle de ruta ip



no hi ha ruta cap a l’amfitrió-1

Com es mostra més amunt, tinc tres interfícies físiques, una orientada cap a l'exterior i dues cap a xarxes internes. La ruta predeterminada va caure a la xarxa quan es va restablir una connexió, cosa que va provocar que la resta de la xarxa funcionés amb normalitat, ja que només aquesta màquina no sabia on arribar a Internet.

Perquè la màquina pugui accedir a Internet, ha de tenir una ruta predeterminada que es pot afegir amb l'ordre següent



sudo ip route add default per 136.63.176.1

Si teniu aquest problema sorgit més d'una o dues vegades, pot convertir-se en una molèstia, de manera que he escrit un parell de scripts d'intèrpret d'ordres per corregir ràpidament la situació.

El primer script us recuperarà la vostra IP actual. Tinc $ INTF configurat com a STDIN; canvieu-lo a la vostra interfície específica si no voleu introduir el nom de la interfície.

Amb l’editor de text preferit, m’agrada vim i tinc una carpeta d’origen al meu directori inicial

mkdir ~ / src && cd ~ / src

Vaig venir getip.sh

#! / bin / bash

#fetch adreça IP establerta per a un dispositiu determinat

INTF = $ {1}

PTH = (~ / src /)

declarar TMP_IP2

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

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

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

declarar TMP_IP

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

ressò 'IP WAN actual $ TMP_IP'

Deseu i sortiu, feu-lo executable i proveu-lo.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

no hi ha ruta cap a l’amfitrió-2

Suposant que us ha funcionat correctament, continueu i copieu-lo a / usr / local / bin / per fer-lo executable globalment.

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

Ara només puc escriure getip eth0.2 i la IP es retornarà.

El segon script assignarà la ruta per defecte, així com l'execució del primer script.

Jo venia de setip.sh

#! / bin / bash

getip $ {1}

#fetch adreça IP establerta per a un dispositiu determinat

PTH = (~ / src /)

declarar RT_IP

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

predeterminat canvi de ruta ip via $ RT_IP

la ruta ip afegeix per defecte a través de $ RT_IP

echo 'ruta ip: per defecte mitjançant $ RT_IP'

Deseu i deixeu de fer-ho. És possible que us hàgiu adonat que he canviat i afegit una ruta per defecte, això és per a ocasions en què teniu la porta d’entrada incorrecta.

sudo chmod a + x setip.sh

suo setip.sh eth0.2

sense ruta cap a l’amfitrió-3

Podeu tornar a consultar la taula d’encaminament per comprovar que tot estigui bé.

sudo ip route show

Podeu copiar els scripts a / usr / local / bin / si voleu que siguin executables globalment. Encara requerirà sudo, ja que esteu modificant i interfície.

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

2 minuts de lectura